MemoryOS 2.0.6__tar.gz → 2.0.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {memoryos-2.0.6 → memoryos-2.0.8}/PKG-INFO +41 -25
- {memoryos-2.0.6 → memoryos-2.0.8}/README.md +40 -25
- {memoryos-2.0.6 → memoryos-2.0.8}/pyproject.toml +1 -1
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/__init__.py +1 -1
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/config.py +13 -1
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/handlers/__init__.py +0 -2
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/handlers/add_handler.py +2 -2
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/handlers/component_init.py +2 -83
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/handlers/formatters_handler.py +20 -37
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/handlers/memory_handler.py +53 -172
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/handlers/search_handler.py +59 -20
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/middleware/__init__.py +5 -4
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/product_models.py +7 -7
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/routers/server_router.py +2 -9
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/utils/api_keys.py +1 -1
- memoryos-2.0.8/src/memos/chunkers/base.py +65 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/chunkers/charactertext_chunker.py +3 -1
- memoryos-2.0.8/src/memos/chunkers/markdown_chunker.py +159 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/chunkers/sentence_chunker.py +3 -1
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/chunkers/simple_chunker.py +9 -6
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/graph_db.py +27 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/mem_scheduler.py +6 -2
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/embedders/universal_api.py +17 -1
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/graph_dbs/base.py +31 -1
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/graph_dbs/neo4j.py +45 -2
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/graph_dbs/neo4j_community.py +100 -9
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/graph_dbs/polardb.py +585 -1071
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_cube/navie.py +10 -29
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_feedback/feedback.py +21 -83
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_feedback/simple_feedback.py +0 -3
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_os/utils/default_config.py +32 -26
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/multi_modal_struct.py +32 -16
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/read_multi_modal/file_content_parser.py +248 -58
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/read_multi_modal/image_parser.py +4 -3
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/read_multi_modal/utils.py +22 -2
- memoryos-2.0.8/src/memos/mem_reader/read_pref_memory/process_preference_memory.py +296 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/read_skill_memory/process_skill_memory.py +3 -1
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/general_modules/init_components_for_scheduler.py +1 -106
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/handlers/add_handler.py +21 -19
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_read_handler.py +50 -17
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/item.py +1 -2
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/prefer_text_memory/retrievers.py +36 -16
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/preference.py +1 -1
- memoryos-2.0.8/src/memos/memories/textual/simple_preference.py +36 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree.py +12 -6
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/organize/handler.py +46 -18
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/organize/history_manager.py +3 -1
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/organize/manager.py +31 -12
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/organize/reorganizer.py +57 -20
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/recall.py +1 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/searcher.py +141 -25
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/task_goal_parser.py +1 -1
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memos_tools/thread_safe_dict_segment.py +1 -1
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/multi_mem_cube/single_cube.py +14 -188
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/search/search_service.py +2 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/mem_reader_prompts.py +30 -12
- memoryos-2.0.6/src/memos/chunkers/base.py +0 -24
- memoryos-2.0.6/src/memos/chunkers/markdown_chunker.py +0 -62
- memoryos-2.0.6/src/memos/memories/textual/simple_preference.py +0 -162
- {memoryos-2.0.6 → memoryos-2.0.8}/LICENSE +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/README_api.md +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/client.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/context/dependencies.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/exceptions.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/handlers/base_handler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/handlers/chat_handler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/handlers/config_builders.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/handlers/feedback_handler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/handlers/scheduler_handler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/handlers/suggestion_handler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/mcp_serve.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/middleware/auth.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/middleware/rate_limit.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/middleware/request_context.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/product_api.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/routers/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/routers/admin_router.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/routers/product_router.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/server_api.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/server_api_ext.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/start_api.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/api/utils/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/chunkers/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/chunkers/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/cli.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/chunker.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/embedder.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/internet_retriever.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/llm.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/mem_agent.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/mem_chat.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/mem_cube.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/mem_os.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/mem_reader.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/mem_user.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/memory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/parser.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/reranker.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/configs/vec_db.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/context/context.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/dependency.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/deprecation.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/embedders/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/embedders/ark.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/embedders/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/embedders/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/embedders/ollama.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/embedders/sentence_transformer.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/exceptions.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/extras/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/extras/nli_model/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/extras/nli_model/client.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/extras/nli_model/server/README.md +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/extras/nli_model/server/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/extras/nli_model/server/config.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/extras/nli_model/server/handler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/extras/nli_model/server/serve.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/extras/nli_model/types.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/graph_dbs/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/graph_dbs/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/graph_dbs/item.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/graph_dbs/nebular.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/graph_dbs/postgres.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/hello_world.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/llms/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/llms/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/llms/deepseek.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/llms/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/llms/hf.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/llms/hf_singleton.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/llms/ollama.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/llms/openai.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/llms/openai_new.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/llms/qwen.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/llms/utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/llms/vllm.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/log.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_agent/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_agent/deepsearch_agent.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_agent/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_chat/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_chat/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_chat/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_chat/simple.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_cube/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_cube/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_cube/general.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_cube/utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_feedback/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_feedback/utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_os/client.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_os/core.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_os/main.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_os/product.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_os/product_server.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_os/utils/format_utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_os/utils/reference_utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/memory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/read_multi_modal/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/read_multi_modal/assistant_parser.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/read_multi_modal/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/read_multi_modal/multi_modal_parser.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/read_multi_modal/string_parser.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/read_multi_modal/system_parser.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/read_multi_modal/text_content_parser.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/read_multi_modal/tool_parser.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/read_multi_modal/user_parser.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/simple_struct.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/strategy_struct.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_reader/utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/analyzer/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/analyzer/api_analyzer.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/analyzer/eval_analyzer.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/analyzer/mos_for_test_scheduler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/analyzer/scheduler_for_eval.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/base_mixins/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/base_mixins/memory_ops.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/base_mixins/queue_ops.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/base_mixins/web_log_ops.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/base_scheduler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/general_modules/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/general_modules/api_misc.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/general_modules/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/general_modules/misc.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/general_modules/scheduler_logger.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/general_modules/task_threads.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/general_scheduler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/memory_manage_modules/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/memory_manage_modules/activation_memory_manager.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/memory_manage_modules/enhancement_pipeline.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/memory_manage_modules/filter_pipeline.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/memory_manage_modules/memory_filter.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/memory_manage_modules/post_processor.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/memory_manage_modules/rerank_pipeline.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/memory_manage_modules/retriever.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/memory_manage_modules/search_pipeline.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/memory_manage_modules/search_service.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/monitors/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/monitors/dispatcher_monitor.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/monitors/general_monitor.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/monitors/task_schedule_monitor.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/optimized_scheduler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/orm_modules/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/orm_modules/api_redis_model.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/orm_modules/base_model.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/orm_modules/monitor_models.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/orm_modules/redis_model.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/scheduler_factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/schemas/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/schemas/analyzer_schemas.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/schemas/api_schemas.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/schemas/general_schemas.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/schemas/message_schemas.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/schemas/monitor_schemas.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/schemas/task_schemas.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/base_handler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/context.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/dispatcher.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/handlers/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/handlers/answer_handler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/handlers/feedback_handler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_reorganize_handler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/handlers/memory_update_handler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/handlers/pref_add_handler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/handlers/query_handler.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/local_queue.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/orchestrator.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/redis_queue.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/registry.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/task_schedule_modules/task_queue.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/utils/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/utils/api_utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/utils/config_utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/utils/db_utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/utils/filter_utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/utils/metrics.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/utils/misc_utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/utils/monitor_event_utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/utils/status_tracker.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/webservice_modules/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_scheduler/webservice_modules/redis_service.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_user/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_user/mysql_persistent_user_manager.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_user/mysql_user_manager.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_user/persistent_factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_user/persistent_user_manager.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_user/redis_persistent_user_manager.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/mem_user/user_manager.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/activation/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/activation/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/activation/item.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/activation/kv.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/activation/vllmkv.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/parametric/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/parametric/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/parametric/item.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/parametric/lora.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/general.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/naive.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/prefer_text_memory/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/prefer_text_memory/adder.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/prefer_text_memory/config.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/prefer_text_memory/extractor.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/prefer_text_memory/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/prefer_text_memory/spliter.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/prefer_text_memory/utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/simple_tree.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/organize/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/organize/relation_reason_detector.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/advanced_searcher.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/bm25_util.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/bochasearch.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever_factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/pre_update.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/reasoner.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/reranker.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/retrieval_mid_structs.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/retrieve_utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memos_tools/dinding_report_bot.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memos_tools/lockfree_dict.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memos_tools/notification_service.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memos_tools/notification_utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memos_tools/singleton.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/memos_tools/thread_safe_dict.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/multi_mem_cube/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/multi_mem_cube/composite_cube.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/multi_mem_cube/views.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/parsers/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/parsers/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/parsers/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/parsers/markitdown.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/concat.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/cosine_local.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/http_bge.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/http_bge_strategy.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/noop.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/strategies/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/strategies/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/strategies/concat_background.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/strategies/concat_docsource.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/strategies/dialogue_common.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/strategies/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/strategies/single_turn.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/reranker/strategies/singleturn_outmem.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/search/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/settings.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/advanced_search_prompts.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/cloud_service_prompt.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/instruction_completion.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/mem_agent_prompts.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/mem_feedback_prompts.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/mem_reader_strategy_prompts.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/mem_scheduler_prompts.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/mem_search_prompts.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/mos_prompts.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/prefer_complete_prompt.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/skill_mem_prompt.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/tool_mem_prompts.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/templates/tree_reorganize_prompts.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/general_types.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/chat_completion_assistant_message_param.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_image_param.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_input_audio_param.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_param.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_refusal_param.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_text_param.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/chat_completion_message_custom_tool_call_param.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/chat_completion_message_function_tool_call_param.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/chat_completion_message_param.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/chat_completion_message_tool_call_union_param.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/chat_completion_system_message_param.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/chat_completion_tool_message_param.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/types/openai_chat_completion_types/chat_completion_user_message_param.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/utils.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/vec_dbs/__init__.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/vec_dbs/base.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/vec_dbs/factory.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/vec_dbs/item.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/vec_dbs/milvus.py +0 -0
- {memoryos-2.0.6 → memoryos-2.0.8}/src/memos/vec_dbs/qdrant.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: MemoryOS
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.8
|
|
4
4
|
Summary: Intelligence Begins with Memory
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
License-File: LICENSE
|
|
@@ -123,7 +123,7 @@ Description-Content-Type: text/markdown
|
|
|
123
123
|
</a>
|
|
124
124
|
<a href="https://github.com/IAAR-Shanghai/Awesome-AI-Memory">
|
|
125
125
|
<img alt="Awesome AI Memory" src="https://img.shields.io/badge/Resources-Awesome--AI--Memory-8A2BE2">
|
|
126
|
-
</a>
|
|
126
|
+
</a>
|
|
127
127
|
</p>
|
|
128
128
|
|
|
129
129
|
<p align="center">
|
|
@@ -131,30 +131,42 @@ Description-Content-Type: text/markdown
|
|
|
131
131
|
<strong>🏆 Top-tier long-term memory + personalization</strong><br/>
|
|
132
132
|
<strong>💰 Saves 35.24% memory tokens</strong><br/>
|
|
133
133
|
<sub>LoCoMo 75.80 • LongMemEval +40.43% • PrefEval-10 +2568% • PersonaMem +40.75%</sub>
|
|
134
|
-
<a href="https://memos.openmem.net/">
|
|
134
|
+
<!-- <a href="https://memos.openmem.net/">
|
|
135
135
|
<img src="https://statics.memtensor.com.cn/memos/github_api_free_banner.gif" alt="MemOS Free API Banner">
|
|
136
|
-
</a>
|
|
136
|
+
</a> -->
|
|
137
137
|
|
|
138
138
|
</p>
|
|
139
|
-
|
|
139
|
+
|
|
140
140
|
</div>
|
|
141
141
|
|
|
142
|
-
Get Free API: [Try API](https://memos-dashboard.openmem.net/quickstart/?source=github)
|
|
142
|
+
<!-- Get Free API: [Try API](https://memos-dashboard.openmem.net/quickstart/?source=github) -->
|
|
143
143
|
|
|
144
|
-
---
|
|
144
|
+
<!-- --- -->
|
|
145
145
|
|
|
146
|
-
<br>
|
|
146
|
+
<!-- <br> -->
|
|
147
147
|
|
|
148
148
|
## 🦞 Enhanced OpenClaw with MemOS Plugin
|
|
149
|
+
|
|
149
150
|

|
|
150
151
|
|
|
151
|
-
|
|
152
|
-
- [**Multi-agent memory sharing**](https://x.com/MemOS_dev/status/2020538135487062094) – multi-instance agents share memory via same user_id. Automatic context handoff.
|
|
152
|
+
🦞 Your lobster now has a working memory system — choose **Cloud** or **Local** to get started.
|
|
153
153
|
|
|
154
|
-
|
|
154
|
+
### ☁️ Cloud Plugin — Hosted Memory Service
|
|
155
|
+
|
|
156
|
+
- [**72% lower token usage**](https://x.com/MemOS_dev/status/2020854044583924111) — intelligent memory retrieval instead of loading full chat history
|
|
157
|
+
- [**Multi-agent memory sharing**](https://x.com/MemOS_dev/status/2020538135487062094) — multi-instance agents share memory via same user_id, automatic context handoff
|
|
155
158
|
|
|
156
159
|
Get your API key: [MemOS Dashboard](https://memos-dashboard.openmem.net/cn/login/)
|
|
157
|
-
|
|
160
|
+
Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)
|
|
161
|
+
|
|
162
|
+
### 🧠 Local Plugin — 100% On-Device Memory
|
|
163
|
+
|
|
164
|
+
- **Zero cloud dependency** — all data stays on your machine, persistent local SQLite storage
|
|
165
|
+
- **Hybrid search + task & skill evolution** — FTS5 + vector search, auto task summarization, reusable skills that self-upgrade
|
|
166
|
+
- **Multi-agent collaboration + Memory Viewer** — memory isolation, skill sharing, full web dashboard with 7 management pages
|
|
167
|
+
|
|
168
|
+
🌐 [Homepage](https://memos-claw.openmem.net) ·
|
|
169
|
+
📖 [Documentation](https://memos-claw.openmem.net/docs/index.html) · 📦 [NPM](https://www.npmjs.com/package/@memtensor/memos-local-openclaw-plugin)
|
|
158
170
|
|
|
159
171
|
## 📌 MemOS: Memory Operating System for AI Agents
|
|
160
172
|
|
|
@@ -173,6 +185,9 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
173
185
|
|
|
174
186
|
### News
|
|
175
187
|
|
|
188
|
+
- **2026-03-08** · 🦞 **MemOS OpenClaw Plugin — Cloud & Local**
|
|
189
|
+
Official OpenClaw memory plugins launched. **Cloud Plugin**: hosted memory service with 72% lower token usage and multi-agent memory sharing ([MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)). **Local Plugin** (`v1.0.0`): 100% on-device memory with persistent SQLite, hybrid search (FTS5 + vector), task summarization & skill evolution, multi-agent collaboration, and a full Memory Viewer dashboard.
|
|
190
|
+
|
|
176
191
|
- **2025-12-24** · 🎉 **MemOS v2.0: Stardust (星尘) Release**
|
|
177
192
|
Comprehensive KB (doc/URL parsing + cross-project sharing), memory feedback & precise deletion, multi-modal memory (images/charts), tool memory for agent planning, Redis Streams scheduling + DB optimizations, streaming/non-streaming chat, MCP upgrade, and lightweight quick/full deployment.
|
|
178
193
|
<details>
|
|
@@ -220,7 +235,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
220
235
|
|
|
221
236
|
</details>
|
|
222
237
|
|
|
223
|
-
- **2025-08-07** · 🎉 **MemOS v1.0.0 (MemCube) Release**
|
|
238
|
+
- **2025-08-07** · 🎉 **MemOS v1.0.0 (MemCube) Release**
|
|
224
239
|
First MemCube release with a word-game demo, LongMemEval evaluation, BochaAISearchRetriever integration, NebulaGraph support, improved search capabilities, and the official Playground launch.
|
|
225
240
|
|
|
226
241
|
<details>
|
|
@@ -258,11 +273,11 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
258
273
|
|
|
259
274
|
</details>
|
|
260
275
|
|
|
261
|
-
- **2025-07-07** · 🎉 **MemOS v1.0: Stellar (星河) Preview Release**
|
|
276
|
+
- **2025-07-07** · 🎉 **MemOS v1.0: Stellar (星河) Preview Release**
|
|
262
277
|
A SOTA Memory OS for LLMs is now open-sourced.
|
|
263
|
-
- **2025-07-04** · 🎉 **MemOS Paper Release**
|
|
278
|
+
- **2025-07-04** · 🎉 **MemOS Paper Release**
|
|
264
279
|
[MemOS: A Memory OS for AI System](https://arxiv.org/abs/2507.03724) is available on arXiv.
|
|
265
|
-
- **2024-07-04** · 🎉 **Memory3 Model Release at WAIC 2024**
|
|
280
|
+
- **2024-07-04** · 🎉 **Memory3 Model Release at WAIC 2024**
|
|
266
281
|
The Memory3 model, featuring a memory-layered architecture, was unveiled at the 2024 World Artificial Intelligence Conference.
|
|
267
282
|
|
|
268
283
|
<br>
|
|
@@ -275,9 +290,9 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
275
290
|
- Go to **API Keys** and copy your key
|
|
276
291
|
|
|
277
292
|
#### Next Steps
|
|
278
|
-
- [MemOS Cloud Getting Started](https://memos-docs.openmem.net/memos_cloud/quick_start/)
|
|
293
|
+
- [MemOS Cloud Getting Started](https://memos-docs.openmem.net/memos_cloud/quick_start/)
|
|
279
294
|
Connect to MemOS Cloud and enable memory in minutes.
|
|
280
|
-
- [MemOS Cloud Platform](https://memos.openmem.net/?from=/quickstart/)
|
|
295
|
+
- [MemOS Cloud Platform](https://memos.openmem.net/?from=/quickstart/)
|
|
281
296
|
Explore the Cloud dashboard, features, and workflows.
|
|
282
297
|
|
|
283
298
|
### 🖥️ 2、Self-Hosted (Local/Private)
|
|
@@ -315,7 +330,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
315
330
|
```python
|
|
316
331
|
import requests
|
|
317
332
|
import json
|
|
318
|
-
|
|
333
|
+
|
|
319
334
|
data = {
|
|
320
335
|
"user_id": "8736b16e-1d20-4163-980b-a5063c3facdc",
|
|
321
336
|
"mem_cube_id": "b32d0977-435d-4828-a86f-4f47f8b55bca",
|
|
@@ -331,7 +346,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
331
346
|
"Content-Type": "application/json"
|
|
332
347
|
}
|
|
333
348
|
url = "http://localhost:8000/product/add"
|
|
334
|
-
|
|
349
|
+
|
|
335
350
|
res = requests.post(url=url, headers=headers, data=json.dumps(data))
|
|
336
351
|
print(f"result: {res.json()}")
|
|
337
352
|
```
|
|
@@ -339,7 +354,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
339
354
|
```python
|
|
340
355
|
import requests
|
|
341
356
|
import json
|
|
342
|
-
|
|
357
|
+
|
|
343
358
|
data = {
|
|
344
359
|
"query": "What do I like",
|
|
345
360
|
"user_id": "8736b16e-1d20-4163-980b-a5063c3facdc",
|
|
@@ -349,7 +364,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
349
364
|
"Content-Type": "application/json"
|
|
350
365
|
}
|
|
351
366
|
url = "http://localhost:8000/product/search"
|
|
352
|
-
|
|
367
|
+
|
|
353
368
|
res = requests.post(url=url, headers=headers, data=json.dumps(data))
|
|
354
369
|
print(f"result: {res.json()}")
|
|
355
370
|
```
|
|
@@ -358,8 +373,8 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
358
373
|
|
|
359
374
|
## 📚 Resources
|
|
360
375
|
|
|
361
|
-
- **Awesome-AI-Memory**
|
|
362
|
-
This is a curated repository dedicated to resources on memory and memory systems for large language models. It systematically collects relevant research papers, frameworks, tools, and practical insights. The repository aims to organize and present the rapidly evolving research landscape of LLM memory, bridging multiple research directions including natural language processing, information retrieval, agentic systems, and cognitive science.
|
|
376
|
+
- **Awesome-AI-Memory**
|
|
377
|
+
This is a curated repository dedicated to resources on memory and memory systems for large language models. It systematically collects relevant research papers, frameworks, tools, and practical insights. The repository aims to organize and present the rapidly evolving research landscape of LLM memory, bridging multiple research directions including natural language processing, information retrieval, agentic systems, and cognitive science.
|
|
363
378
|
- **Get started** 👉 [IAAR-Shanghai/Awesome-AI-Memory](https://github.com/IAAR-Shanghai/Awesome-AI-Memory)
|
|
364
379
|
- **MemOS Cloud OpenClaw Plugin**
|
|
365
380
|
Official OpenClaw lifecycle plugin for MemOS Cloud. It automatically recalls context from MemOS before the agent starts and saves the conversation back to MemOS after the agent finishes.
|
|
@@ -426,10 +441,11 @@ url = {https://global-sci.com/article/91443/memory3-language-modeling-with-expli
|
|
|
426
441
|
|
|
427
442
|
## 🙌 Contributing
|
|
428
443
|
|
|
429
|
-
We welcome contributions from the community! Please read our [contribution guidelines](https://memos-docs.openmem.net/contribution/overview) to get started.
|
|
444
|
+
We welcome contributions from the community! Please read our [contribution guidelines](https://memos-docs.openmem.net/open_source/contribution/overview/) to get started.
|
|
430
445
|
|
|
431
446
|
<br>
|
|
432
447
|
|
|
433
448
|
## 📄 License
|
|
434
449
|
|
|
435
450
|
MemOS is licensed under the [Apache 2.0 License](./LICENSE).
|
|
451
|
+
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
</a>
|
|
43
43
|
<a href="https://github.com/IAAR-Shanghai/Awesome-AI-Memory">
|
|
44
44
|
<img alt="Awesome AI Memory" src="https://img.shields.io/badge/Resources-Awesome--AI--Memory-8A2BE2">
|
|
45
|
-
</a>
|
|
45
|
+
</a>
|
|
46
46
|
</p>
|
|
47
47
|
|
|
48
48
|
<p align="center">
|
|
@@ -50,30 +50,42 @@
|
|
|
50
50
|
<strong>🏆 Top-tier long-term memory + personalization</strong><br/>
|
|
51
51
|
<strong>💰 Saves 35.24% memory tokens</strong><br/>
|
|
52
52
|
<sub>LoCoMo 75.80 • LongMemEval +40.43% • PrefEval-10 +2568% • PersonaMem +40.75%</sub>
|
|
53
|
-
<a href="https://memos.openmem.net/">
|
|
53
|
+
<!-- <a href="https://memos.openmem.net/">
|
|
54
54
|
<img src="https://statics.memtensor.com.cn/memos/github_api_free_banner.gif" alt="MemOS Free API Banner">
|
|
55
|
-
</a>
|
|
55
|
+
</a> -->
|
|
56
56
|
|
|
57
57
|
</p>
|
|
58
|
-
|
|
58
|
+
|
|
59
59
|
</div>
|
|
60
60
|
|
|
61
|
-
Get Free API: [Try API](https://memos-dashboard.openmem.net/quickstart/?source=github)
|
|
61
|
+
<!-- Get Free API: [Try API](https://memos-dashboard.openmem.net/quickstart/?source=github) -->
|
|
62
62
|
|
|
63
|
-
---
|
|
63
|
+
<!-- --- -->
|
|
64
64
|
|
|
65
|
-
<br>
|
|
65
|
+
<!-- <br> -->
|
|
66
66
|
|
|
67
67
|
## 🦞 Enhanced OpenClaw with MemOS Plugin
|
|
68
|
+
|
|
68
69
|

|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
- [**Multi-agent memory sharing**](https://x.com/MemOS_dev/status/2020538135487062094) – multi-instance agents share memory via same user_id. Automatic context handoff.
|
|
71
|
+
🦞 Your lobster now has a working memory system — choose **Cloud** or **Local** to get started.
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
### ☁️ Cloud Plugin — Hosted Memory Service
|
|
74
|
+
|
|
75
|
+
- [**72% lower token usage**](https://x.com/MemOS_dev/status/2020854044583924111) — intelligent memory retrieval instead of loading full chat history
|
|
76
|
+
- [**Multi-agent memory sharing**](https://x.com/MemOS_dev/status/2020538135487062094) — multi-instance agents share memory via same user_id, automatic context handoff
|
|
74
77
|
|
|
75
78
|
Get your API key: [MemOS Dashboard](https://memos-dashboard.openmem.net/cn/login/)
|
|
76
|
-
|
|
79
|
+
Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)
|
|
80
|
+
|
|
81
|
+
### 🧠 Local Plugin — 100% On-Device Memory
|
|
82
|
+
|
|
83
|
+
- **Zero cloud dependency** — all data stays on your machine, persistent local SQLite storage
|
|
84
|
+
- **Hybrid search + task & skill evolution** — FTS5 + vector search, auto task summarization, reusable skills that self-upgrade
|
|
85
|
+
- **Multi-agent collaboration + Memory Viewer** — memory isolation, skill sharing, full web dashboard with 7 management pages
|
|
86
|
+
|
|
87
|
+
🌐 [Homepage](https://memos-claw.openmem.net) ·
|
|
88
|
+
📖 [Documentation](https://memos-claw.openmem.net/docs/index.html) · 📦 [NPM](https://www.npmjs.com/package/@memtensor/memos-local-openclaw-plugin)
|
|
77
89
|
|
|
78
90
|
## 📌 MemOS: Memory Operating System for AI Agents
|
|
79
91
|
|
|
@@ -92,6 +104,9 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
92
104
|
|
|
93
105
|
### News
|
|
94
106
|
|
|
107
|
+
- **2026-03-08** · 🦞 **MemOS OpenClaw Plugin — Cloud & Local**
|
|
108
|
+
Official OpenClaw memory plugins launched. **Cloud Plugin**: hosted memory service with 72% lower token usage and multi-agent memory sharing ([MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)). **Local Plugin** (`v1.0.0`): 100% on-device memory with persistent SQLite, hybrid search (FTS5 + vector), task summarization & skill evolution, multi-agent collaboration, and a full Memory Viewer dashboard.
|
|
109
|
+
|
|
95
110
|
- **2025-12-24** · 🎉 **MemOS v2.0: Stardust (星尘) Release**
|
|
96
111
|
Comprehensive KB (doc/URL parsing + cross-project sharing), memory feedback & precise deletion, multi-modal memory (images/charts), tool memory for agent planning, Redis Streams scheduling + DB optimizations, streaming/non-streaming chat, MCP upgrade, and lightweight quick/full deployment.
|
|
97
112
|
<details>
|
|
@@ -139,7 +154,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
139
154
|
|
|
140
155
|
</details>
|
|
141
156
|
|
|
142
|
-
- **2025-08-07** · 🎉 **MemOS v1.0.0 (MemCube) Release**
|
|
157
|
+
- **2025-08-07** · 🎉 **MemOS v1.0.0 (MemCube) Release**
|
|
143
158
|
First MemCube release with a word-game demo, LongMemEval evaluation, BochaAISearchRetriever integration, NebulaGraph support, improved search capabilities, and the official Playground launch.
|
|
144
159
|
|
|
145
160
|
<details>
|
|
@@ -177,11 +192,11 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
177
192
|
|
|
178
193
|
</details>
|
|
179
194
|
|
|
180
|
-
- **2025-07-07** · 🎉 **MemOS v1.0: Stellar (星河) Preview Release**
|
|
195
|
+
- **2025-07-07** · 🎉 **MemOS v1.0: Stellar (星河) Preview Release**
|
|
181
196
|
A SOTA Memory OS for LLMs is now open-sourced.
|
|
182
|
-
- **2025-07-04** · 🎉 **MemOS Paper Release**
|
|
197
|
+
- **2025-07-04** · 🎉 **MemOS Paper Release**
|
|
183
198
|
[MemOS: A Memory OS for AI System](https://arxiv.org/abs/2507.03724) is available on arXiv.
|
|
184
|
-
- **2024-07-04** · 🎉 **Memory3 Model Release at WAIC 2024**
|
|
199
|
+
- **2024-07-04** · 🎉 **Memory3 Model Release at WAIC 2024**
|
|
185
200
|
The Memory3 model, featuring a memory-layered architecture, was unveiled at the 2024 World Artificial Intelligence Conference.
|
|
186
201
|
|
|
187
202
|
<br>
|
|
@@ -194,9 +209,9 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
194
209
|
- Go to **API Keys** and copy your key
|
|
195
210
|
|
|
196
211
|
#### Next Steps
|
|
197
|
-
- [MemOS Cloud Getting Started](https://memos-docs.openmem.net/memos_cloud/quick_start/)
|
|
212
|
+
- [MemOS Cloud Getting Started](https://memos-docs.openmem.net/memos_cloud/quick_start/)
|
|
198
213
|
Connect to MemOS Cloud and enable memory in minutes.
|
|
199
|
-
- [MemOS Cloud Platform](https://memos.openmem.net/?from=/quickstart/)
|
|
214
|
+
- [MemOS Cloud Platform](https://memos.openmem.net/?from=/quickstart/)
|
|
200
215
|
Explore the Cloud dashboard, features, and workflows.
|
|
201
216
|
|
|
202
217
|
### 🖥️ 2、Self-Hosted (Local/Private)
|
|
@@ -234,7 +249,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
234
249
|
```python
|
|
235
250
|
import requests
|
|
236
251
|
import json
|
|
237
|
-
|
|
252
|
+
|
|
238
253
|
data = {
|
|
239
254
|
"user_id": "8736b16e-1d20-4163-980b-a5063c3facdc",
|
|
240
255
|
"mem_cube_id": "b32d0977-435d-4828-a86f-4f47f8b55bca",
|
|
@@ -250,7 +265,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
250
265
|
"Content-Type": "application/json"
|
|
251
266
|
}
|
|
252
267
|
url = "http://localhost:8000/product/add"
|
|
253
|
-
|
|
268
|
+
|
|
254
269
|
res = requests.post(url=url, headers=headers, data=json.dumps(data))
|
|
255
270
|
print(f"result: {res.json()}")
|
|
256
271
|
```
|
|
@@ -258,7 +273,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
258
273
|
```python
|
|
259
274
|
import requests
|
|
260
275
|
import json
|
|
261
|
-
|
|
276
|
+
|
|
262
277
|
data = {
|
|
263
278
|
"query": "What do I like",
|
|
264
279
|
"user_id": "8736b16e-1d20-4163-980b-a5063c3facdc",
|
|
@@ -268,7 +283,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
268
283
|
"Content-Type": "application/json"
|
|
269
284
|
}
|
|
270
285
|
url = "http://localhost:8000/product/search"
|
|
271
|
-
|
|
286
|
+
|
|
272
287
|
res = requests.post(url=url, headers=headers, data=json.dumps(data))
|
|
273
288
|
print(f"result: {res.json()}")
|
|
274
289
|
```
|
|
@@ -277,8 +292,8 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
|
|
|
277
292
|
|
|
278
293
|
## 📚 Resources
|
|
279
294
|
|
|
280
|
-
- **Awesome-AI-Memory**
|
|
281
|
-
This is a curated repository dedicated to resources on memory and memory systems for large language models. It systematically collects relevant research papers, frameworks, tools, and practical insights. The repository aims to organize and present the rapidly evolving research landscape of LLM memory, bridging multiple research directions including natural language processing, information retrieval, agentic systems, and cognitive science.
|
|
295
|
+
- **Awesome-AI-Memory**
|
|
296
|
+
This is a curated repository dedicated to resources on memory and memory systems for large language models. It systematically collects relevant research papers, frameworks, tools, and practical insights. The repository aims to organize and present the rapidly evolving research landscape of LLM memory, bridging multiple research directions including natural language processing, information retrieval, agentic systems, and cognitive science.
|
|
282
297
|
- **Get started** 👉 [IAAR-Shanghai/Awesome-AI-Memory](https://github.com/IAAR-Shanghai/Awesome-AI-Memory)
|
|
283
298
|
- **MemOS Cloud OpenClaw Plugin**
|
|
284
299
|
Official OpenClaw lifecycle plugin for MemOS Cloud. It automatically recalls context from MemOS before the agent starts and saves the conversation back to MemOS after the agent finishes.
|
|
@@ -345,10 +360,10 @@ url = {https://global-sci.com/article/91443/memory3-language-modeling-with-expli
|
|
|
345
360
|
|
|
346
361
|
## 🙌 Contributing
|
|
347
362
|
|
|
348
|
-
We welcome contributions from the community! Please read our [contribution guidelines](https://memos-docs.openmem.net/contribution/overview) to get started.
|
|
363
|
+
We welcome contributions from the community! Please read our [contribution guidelines](https://memos-docs.openmem.net/open_source/contribution/overview/) to get started.
|
|
349
364
|
|
|
350
365
|
<br>
|
|
351
366
|
|
|
352
367
|
## 📄 License
|
|
353
368
|
|
|
354
|
-
MemOS is licensed under the [Apache 2.0 License](./LICENSE).
|
|
369
|
+
MemOS is licensed under the [Apache 2.0 License](./LICENSE).
|
|
@@ -675,7 +675,17 @@ class APIConfig:
|
|
|
675
675
|
"user_name": user_name,
|
|
676
676
|
"use_multi_db": use_multi_db,
|
|
677
677
|
"auto_create": True,
|
|
678
|
-
"embedding_dimension": int(os.getenv("EMBEDDING_DIMENSION", 1024)),
|
|
678
|
+
"embedding_dimension": int(os.getenv("EMBEDDING_DIMENSION", "1024")),
|
|
679
|
+
# .env: CONNECTION_WAIT_TIMEOUT, SKIP_CONNECTION_HEALTH_CHECK, WARM_UP_ON_STARTUP_BY_FULL, WARM_UP_ON_STARTUP_BY_ALL
|
|
680
|
+
"connection_wait_timeout": int(os.getenv("CONNECTION_WAIT_TIMEOUT", "60")),
|
|
681
|
+
"skip_connection_health_check": os.getenv(
|
|
682
|
+
"SKIP_CONNECTION_HEALTH_CHECK", "false"
|
|
683
|
+
).lower()
|
|
684
|
+
== "true",
|
|
685
|
+
"warm_up_on_startup_by_full": os.getenv("WARM_UP_ON_STARTUP_BY_FULL", "false").lower()
|
|
686
|
+
== "true",
|
|
687
|
+
"warm_up_on_startup_by_all": os.getenv("WARM_UP_ON_STARTUP_BY_ALL", "false").lower()
|
|
688
|
+
== "true",
|
|
679
689
|
}
|
|
680
690
|
|
|
681
691
|
@staticmethod
|
|
@@ -1014,6 +1024,7 @@ class APIConfig:
|
|
|
1014
1024
|
"fast_graph": bool(os.getenv("FAST_GRAPH", "false") == "true"),
|
|
1015
1025
|
"bm25": bool(os.getenv("BM25_CALL", "false") == "true"),
|
|
1016
1026
|
"cot": bool(os.getenv("VEC_COT_CALL", "false") == "true"),
|
|
1027
|
+
"fulltext": bool(os.getenv("FULLTEXT_CALL", "false") == "true"),
|
|
1017
1028
|
},
|
|
1018
1029
|
"include_embedding": bool(
|
|
1019
1030
|
os.getenv("INCLUDE_EMBEDDING", "false") == "true"
|
|
@@ -1096,6 +1107,7 @@ class APIConfig:
|
|
|
1096
1107
|
"fast_graph": bool(os.getenv("FAST_GRAPH", "false") == "true"),
|
|
1097
1108
|
"bm25": bool(os.getenv("BM25_CALL", "false") == "true"),
|
|
1098
1109
|
"cot": bool(os.getenv("VEC_COT_CALL", "false") == "true"),
|
|
1110
|
+
"fulltext": bool(os.getenv("FULLTEXT_CALL", "false") == "true"),
|
|
1099
1111
|
},
|
|
1100
1112
|
"mode": os.getenv("ASYNC_MODE", "sync"),
|
|
1101
1113
|
"include_embedding": bool(
|
|
@@ -32,7 +32,6 @@ from memos.api.handlers.config_builders import (
|
|
|
32
32
|
)
|
|
33
33
|
from memos.api.handlers.formatters_handler import (
|
|
34
34
|
format_memory_item,
|
|
35
|
-
post_process_pref_mem,
|
|
36
35
|
to_iter,
|
|
37
36
|
)
|
|
38
37
|
|
|
@@ -54,7 +53,6 @@ __all__ = [
|
|
|
54
53
|
"formatters_handler",
|
|
55
54
|
"init_server",
|
|
56
55
|
"memory_handler",
|
|
57
|
-
"post_process_pref_mem",
|
|
58
56
|
"scheduler_handler",
|
|
59
57
|
"search_handler",
|
|
60
58
|
"suggestion_handler",
|
|
@@ -22,7 +22,7 @@ class AddHandler(BaseHandler):
|
|
|
22
22
|
"""
|
|
23
23
|
Handler for memory addition operations.
|
|
24
24
|
|
|
25
|
-
Handles
|
|
25
|
+
Handles text memory additions with sync/async support.
|
|
26
26
|
"""
|
|
27
27
|
|
|
28
28
|
def __init__(self, dependencies: HandlerDependencies):
|
|
@@ -41,7 +41,7 @@ class AddHandler(BaseHandler):
|
|
|
41
41
|
"""
|
|
42
42
|
Main handler for add memories endpoint.
|
|
43
43
|
|
|
44
|
-
Orchestrates the addition of
|
|
44
|
+
Orchestrates the addition of text memories,
|
|
45
45
|
supporting concurrent processing.
|
|
46
46
|
|
|
47
47
|
Args:
|
|
@@ -19,11 +19,7 @@ from memos.api.handlers.config_builders import (
|
|
|
19
19
|
build_llm_config,
|
|
20
20
|
build_mem_reader_config,
|
|
21
21
|
build_nli_client_config,
|
|
22
|
-
build_pref_adder_config,
|
|
23
|
-
build_pref_extractor_config,
|
|
24
|
-
build_pref_retriever_config,
|
|
25
22
|
build_reranker_config,
|
|
26
|
-
build_vec_db_config,
|
|
27
23
|
)
|
|
28
24
|
from memos.configs.mem_scheduler import SchedulerConfigFactory
|
|
29
25
|
from memos.embedders.factory import EmbedderFactory
|
|
@@ -36,12 +32,6 @@ from memos.mem_os.product_server import MOSServer
|
|
|
36
32
|
from memos.mem_reader.factory import MemReaderFactory
|
|
37
33
|
from memos.mem_scheduler.orm_modules.base_model import BaseDBManager
|
|
38
34
|
from memos.mem_scheduler.scheduler_factory import SchedulerFactory
|
|
39
|
-
from memos.memories.textual.prefer_text_memory.factory import (
|
|
40
|
-
AdderFactory,
|
|
41
|
-
ExtractorFactory,
|
|
42
|
-
RetrieverFactory,
|
|
43
|
-
)
|
|
44
|
-
from memos.memories.textual.simple_preference import SimplePreferenceTextMemory
|
|
45
35
|
from memos.memories.textual.simple_tree import SimpleTreeTextMemory
|
|
46
36
|
from memos.memories.textual.tree_text_memory.organize.history_manager import MemoryHistoryManager
|
|
47
37
|
from memos.memories.textual.tree_text_memory.organize.manager import MemoryManager
|
|
@@ -56,7 +46,6 @@ from memos.memories.textual.tree_text_memory.retrieve.internet_retriever_factory
|
|
|
56
46
|
InternetRetrieverFactory,
|
|
57
47
|
)
|
|
58
48
|
from memos.reranker.factory import RerankerFactory
|
|
59
|
-
from memos.vec_dbs.factory import VecDBFactory
|
|
60
49
|
|
|
61
50
|
|
|
62
51
|
if TYPE_CHECKING:
|
|
@@ -125,7 +114,7 @@ def init_server() -> dict[str, Any]:
|
|
|
125
114
|
required by the MemOS server, including:
|
|
126
115
|
- Database connections (graph DB, vector DB)
|
|
127
116
|
- Language models and embedders
|
|
128
|
-
- Memory systems (text
|
|
117
|
+
- Memory systems (text)
|
|
129
118
|
- Scheduler and related modules
|
|
130
119
|
|
|
131
120
|
Returns:
|
|
@@ -169,20 +158,11 @@ def init_server() -> dict[str, Any]:
|
|
|
169
158
|
reranker_config = build_reranker_config()
|
|
170
159
|
feedback_reranker_config = build_feedback_reranker_config()
|
|
171
160
|
internet_retriever_config = build_internet_retriever_config()
|
|
172
|
-
vector_db_config = build_vec_db_config()
|
|
173
|
-
pref_extractor_config = build_pref_extractor_config()
|
|
174
|
-
pref_adder_config = build_pref_adder_config()
|
|
175
|
-
pref_retriever_config = build_pref_retriever_config()
|
|
176
161
|
|
|
177
162
|
logger.debug("Component configurations built successfully")
|
|
178
163
|
|
|
179
164
|
# Create component instances
|
|
180
165
|
graph_db = GraphStoreFactory.from_config(graph_db_config)
|
|
181
|
-
vector_db = (
|
|
182
|
-
VecDBFactory.from_config(vector_db_config)
|
|
183
|
-
if os.getenv("ENABLE_PREFERENCE_MEMORY", "false") == "true"
|
|
184
|
-
else None
|
|
185
|
-
)
|
|
186
166
|
llm = LLMFactory.from_config(llm_config)
|
|
187
167
|
chat_llms = (
|
|
188
168
|
_init_chat_llms(chat_llm_config)
|
|
@@ -231,61 +211,6 @@ def init_server() -> dict[str, Any]:
|
|
|
231
211
|
|
|
232
212
|
logger.debug("Text memory initialized")
|
|
233
213
|
|
|
234
|
-
# Initialize preference memory components
|
|
235
|
-
pref_extractor = (
|
|
236
|
-
ExtractorFactory.from_config(
|
|
237
|
-
config_factory=pref_extractor_config,
|
|
238
|
-
llm_provider=llm,
|
|
239
|
-
embedder=embedder,
|
|
240
|
-
vector_db=vector_db,
|
|
241
|
-
)
|
|
242
|
-
if os.getenv("ENABLE_PREFERENCE_MEMORY", "false") == "true"
|
|
243
|
-
else None
|
|
244
|
-
)
|
|
245
|
-
|
|
246
|
-
pref_adder = (
|
|
247
|
-
AdderFactory.from_config(
|
|
248
|
-
config_factory=pref_adder_config,
|
|
249
|
-
llm_provider=llm,
|
|
250
|
-
embedder=embedder,
|
|
251
|
-
vector_db=vector_db,
|
|
252
|
-
text_mem=text_mem,
|
|
253
|
-
)
|
|
254
|
-
if os.getenv("ENABLE_PREFERENCE_MEMORY", "false") == "true"
|
|
255
|
-
else None
|
|
256
|
-
)
|
|
257
|
-
|
|
258
|
-
pref_retriever = (
|
|
259
|
-
RetrieverFactory.from_config(
|
|
260
|
-
config_factory=pref_retriever_config,
|
|
261
|
-
llm_provider=llm,
|
|
262
|
-
embedder=embedder,
|
|
263
|
-
reranker=feedback_reranker,
|
|
264
|
-
vector_db=vector_db,
|
|
265
|
-
)
|
|
266
|
-
if os.getenv("ENABLE_PREFERENCE_MEMORY", "false") == "true"
|
|
267
|
-
else None
|
|
268
|
-
)
|
|
269
|
-
|
|
270
|
-
logger.debug("Preference memory components initialized")
|
|
271
|
-
|
|
272
|
-
# Initialize preference memory
|
|
273
|
-
pref_mem = (
|
|
274
|
-
SimplePreferenceTextMemory(
|
|
275
|
-
extractor_llm=llm,
|
|
276
|
-
vector_db=vector_db,
|
|
277
|
-
embedder=embedder,
|
|
278
|
-
reranker=feedback_reranker,
|
|
279
|
-
extractor=pref_extractor,
|
|
280
|
-
adder=pref_adder,
|
|
281
|
-
retriever=pref_retriever,
|
|
282
|
-
)
|
|
283
|
-
if os.getenv("ENABLE_PREFERENCE_MEMORY", "false") == "true"
|
|
284
|
-
else None
|
|
285
|
-
)
|
|
286
|
-
|
|
287
|
-
logger.debug("Preference memory initialized")
|
|
288
|
-
|
|
289
214
|
# Initialize MOS Server
|
|
290
215
|
mos_server = MOSServer(
|
|
291
216
|
mem_reader=mem_reader,
|
|
@@ -298,7 +223,6 @@ def init_server() -> dict[str, Any]:
|
|
|
298
223
|
# Create MemCube with pre-initialized memory instances
|
|
299
224
|
naive_mem_cube = NaiveMemCube(
|
|
300
225
|
text_mem=text_mem,
|
|
301
|
-
pref_mem=pref_mem,
|
|
302
226
|
act_mem=None,
|
|
303
227
|
para_mem=None,
|
|
304
228
|
)
|
|
@@ -325,7 +249,7 @@ def init_server() -> dict[str, Any]:
|
|
|
325
249
|
mem_reader=mem_reader,
|
|
326
250
|
searcher=searcher,
|
|
327
251
|
reranker=feedback_reranker,
|
|
328
|
-
|
|
252
|
+
pref_feedback=True,
|
|
329
253
|
)
|
|
330
254
|
|
|
331
255
|
# Initialize Scheduler
|
|
@@ -384,12 +308,7 @@ def init_server() -> dict[str, Any]:
|
|
|
384
308
|
"naive_mem_cube": naive_mem_cube,
|
|
385
309
|
"searcher": searcher,
|
|
386
310
|
"api_module": api_module,
|
|
387
|
-
"vector_db": vector_db,
|
|
388
|
-
"pref_extractor": pref_extractor,
|
|
389
|
-
"pref_adder": pref_adder,
|
|
390
|
-
"pref_retriever": pref_retriever,
|
|
391
311
|
"text_mem": text_mem,
|
|
392
|
-
"pref_mem": pref_mem,
|
|
393
312
|
"online_bot": online_bot,
|
|
394
313
|
"feedback_server": feedback_server,
|
|
395
314
|
"redis_client": redis_client,
|
|
@@ -65,49 +65,14 @@ def format_memory_item(
|
|
|
65
65
|
return memory
|
|
66
66
|
|
|
67
67
|
|
|
68
|
-
def post_process_pref_mem(
|
|
69
|
-
memories_result: dict[str, Any],
|
|
70
|
-
pref_formatted_mem: list[dict[str, Any]],
|
|
71
|
-
mem_cube_id: str,
|
|
72
|
-
include_preference: bool,
|
|
73
|
-
) -> dict[str, Any]:
|
|
74
|
-
"""
|
|
75
|
-
Post-process preference memory results.
|
|
76
|
-
|
|
77
|
-
Adds formatted preference memories to the result dictionary and generates
|
|
78
|
-
instruction completion strings if preferences are included.
|
|
79
|
-
|
|
80
|
-
Args:
|
|
81
|
-
memories_result: Result dictionary to update
|
|
82
|
-
pref_formatted_mem: List of formatted preference memories
|
|
83
|
-
mem_cube_id: Memory cube ID
|
|
84
|
-
include_preference: Whether to include preferences in result
|
|
85
|
-
|
|
86
|
-
Returns:
|
|
87
|
-
Updated memories_result dictionary
|
|
88
|
-
"""
|
|
89
|
-
if include_preference:
|
|
90
|
-
memories_result["pref_mem"].append(
|
|
91
|
-
{
|
|
92
|
-
"cube_id": mem_cube_id,
|
|
93
|
-
"memories": pref_formatted_mem,
|
|
94
|
-
"total_nodes": len(pref_formatted_mem),
|
|
95
|
-
}
|
|
96
|
-
)
|
|
97
|
-
pref_instruction, pref_note = instruct_completion(pref_formatted_mem)
|
|
98
|
-
memories_result["pref_string"] = pref_instruction
|
|
99
|
-
memories_result["pref_note"] = pref_note
|
|
100
|
-
|
|
101
|
-
return memories_result
|
|
102
|
-
|
|
103
|
-
|
|
104
68
|
def post_process_textual_mem(
|
|
105
69
|
memories_result: dict[str, Any],
|
|
106
70
|
text_formatted_mem: list[dict[str, Any]],
|
|
107
71
|
mem_cube_id: str,
|
|
108
72
|
) -> dict[str, Any]:
|
|
109
73
|
"""
|
|
110
|
-
Post-process text and
|
|
74
|
+
Post-process text, tool, skill and preference memory results.
|
|
75
|
+
Now automatically handles preference memories.
|
|
111
76
|
"""
|
|
112
77
|
fact_mem = [
|
|
113
78
|
mem
|
|
@@ -124,6 +89,11 @@ def post_process_textual_mem(
|
|
|
124
89
|
mem for mem in text_formatted_mem if mem["metadata"]["memory_type"] == "SkillMemory"
|
|
125
90
|
]
|
|
126
91
|
|
|
92
|
+
# Extract preference memories
|
|
93
|
+
pref_mem = [
|
|
94
|
+
mem for mem in text_formatted_mem if mem["metadata"]["memory_type"] == "PreferenceMemory"
|
|
95
|
+
]
|
|
96
|
+
|
|
127
97
|
memories_result["text_mem"].append(
|
|
128
98
|
{
|
|
129
99
|
"cube_id": mem_cube_id,
|
|
@@ -145,6 +115,19 @@ def post_process_textual_mem(
|
|
|
145
115
|
"total_nodes": len(skill_mem),
|
|
146
116
|
}
|
|
147
117
|
)
|
|
118
|
+
|
|
119
|
+
memories_result["pref_mem"].append(
|
|
120
|
+
{
|
|
121
|
+
"cube_id": mem_cube_id,
|
|
122
|
+
"memories": pref_mem,
|
|
123
|
+
"total_nodes": len(pref_mem),
|
|
124
|
+
}
|
|
125
|
+
)
|
|
126
|
+
if pref_mem:
|
|
127
|
+
pref_instruction, pref_note = instruct_completion(pref_mem)
|
|
128
|
+
memories_result["pref_string"] = pref_instruction
|
|
129
|
+
memories_result["pref_note"] = pref_note
|
|
130
|
+
|
|
148
131
|
return memories_result
|
|
149
132
|
|
|
150
133
|
|