MemoryOS 2.0.13__tar.gz → 2.0.15__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.13 → memoryos-2.0.15}/PKG-INFO +39 -67
- {memoryos-2.0.13 → memoryos-2.0.15}/README.md +38 -66
- {memoryos-2.0.13 → memoryos-2.0.15}/pyproject.toml +1 -1
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/__init__.py +1 -1
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/config.py +26 -2
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/handlers/add_handler.py +2 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/handlers/component_init.py +33 -7
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/handlers/formatters_handler.py +1 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/server_api.py +10 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/chunkers/sentence_chunker.py +1 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/mem_reader.py +8 -1
- memoryos-2.0.15/src/memos/dream/README.md +246 -0
- memoryos-2.0.15/src/memos/dream/README_ZH.md +243 -0
- memoryos-2.0.15/src/memos/dream/__init__.py +11 -0
- memoryos-2.0.15/src/memos/dream/hook_defs.py +25 -0
- memoryos-2.0.15/src/memos/dream/hooks.py +88 -0
- memoryos-2.0.15/src/memos/dream/maintenance.py +56 -0
- memoryos-2.0.15/src/memos/dream/pipeline/__init__.py +16 -0
- memoryos-2.0.15/src/memos/dream/pipeline/base.py +88 -0
- memoryos-2.0.15/src/memos/dream/pipeline/diary.py +148 -0
- memoryos-2.0.15/src/memos/dream/pipeline/motive.py +119 -0
- memoryos-2.0.15/src/memos/dream/pipeline/persistence.py +350 -0
- memoryos-2.0.15/src/memos/dream/pipeline/reasoning.py +189 -0
- memoryos-2.0.15/src/memos/dream/pipeline/recall.py +112 -0
- memoryos-2.0.15/src/memos/dream/plugin.py +99 -0
- memoryos-2.0.15/src/memos/dream/prompts/__init__.py +8 -0
- memoryos-2.0.15/src/memos/dream/prompts/motive_prompt.py +74 -0
- memoryos-2.0.15/src/memos/dream/prompts/reasoning_prompt.py +80 -0
- memoryos-2.0.15/src/memos/dream/routers/__init__.py +5 -0
- memoryos-2.0.15/src/memos/dream/routers/diary_router.py +92 -0
- memoryos-2.0.15/src/memos/dream/routers/trigger_router.py +42 -0
- memoryos-2.0.15/src/memos/dream/routes.py +21 -0
- memoryos-2.0.15/src/memos/dream/signal_store.py +85 -0
- memoryos-2.0.15/src/memos/dream/types.py +152 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/graph_dbs/polardb.py +6 -20
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_feedback/feedback.py +135 -31
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_os/utils/format_utils.py +13 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/multi_modal_struct.py +189 -215
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_skill_memory/process_skill_memory.py +1 -2
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/simple_struct.py +10 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/general_modules/init_components_for_scheduler.py +27 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/schemas/task_schemas.py +22 -2
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/dispatcher.py +3 -0
- memoryos-2.0.15/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_dream_handler.py +156 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_read_handler.py +112 -42
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/local_queue.py +6 -4
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/redis_queue.py +105 -32
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/registry.py +4 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/task_queue.py +6 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/item.py +11 -7
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree.py +38 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/organize/manager.py +8 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/multi_mem_cube/composite_cube.py +13 -7
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/multi_mem_cube/single_cube.py +116 -77
- memoryos-2.0.15/src/memos/plugins/__init__.py +20 -0
- memoryos-2.0.15/src/memos/plugins/base.py +80 -0
- memoryos-2.0.15/src/memos/plugins/component_bootstrap.py +35 -0
- memoryos-2.0.15/src/memos/plugins/hook_defs.py +148 -0
- memoryos-2.0.15/src/memos/plugins/hooks.py +150 -0
- memoryos-2.0.15/src/memos/plugins/manager.py +149 -0
- memoryos-2.0.15/src/memos/utils.py +249 -0
- memoryos-2.0.13/src/memos/extras/nli_model/client.py +0 -61
- memoryos-2.0.13/src/memos/extras/nli_model/server/README.md +0 -69
- memoryos-2.0.13/src/memos/extras/nli_model/server/config.py +0 -23
- memoryos-2.0.13/src/memos/extras/nli_model/server/handler.py +0 -186
- memoryos-2.0.13/src/memos/extras/nli_model/server/serve.py +0 -44
- memoryos-2.0.13/src/memos/extras/nli_model/types.py +0 -18
- memoryos-2.0.13/src/memos/memories/textual/tree_text_memory/organize/history_manager.py +0 -168
- memoryos-2.0.13/src/memos/memories/textual/tree_text_memory/retrieve/pre_update.py +0 -264
- memoryos-2.0.13/src/memos/templates/__init__.py +0 -0
- memoryos-2.0.13/src/memos/utils.py +0 -123
- memoryos-2.0.13/src/memos/vec_dbs/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/LICENSE +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/README_api.md +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/client.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/context/dependencies.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/exceptions.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/handlers/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/handlers/base_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/handlers/chat_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/handlers/config_builders.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/handlers/feedback_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/handlers/memory_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/handlers/scheduler_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/handlers/search_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/handlers/suggestion_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/mcp_serve.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/middleware/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/middleware/auth.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/middleware/rate_limit.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/middleware/request_context.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/product_models.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/routers/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/routers/admin_router.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/routers/server_router.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/server_api_ext.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/utils/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/api/utils/api_keys.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/chunkers/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/chunkers/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/chunkers/charactertext_chunker.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/chunkers/factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/chunkers/markdown_chunker.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/chunkers/simple_chunker.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/cli.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/chunker.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/embedder.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/graph_db.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/internet_retriever.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/llm.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/mem_agent.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/mem_chat.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/mem_cube.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/mem_os.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/mem_scheduler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/mem_user.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/memory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/parser.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/reranker.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/configs/vec_db.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/context/context.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/dependency.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/deprecation.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/embedders/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/embedders/ark.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/embedders/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/embedders/factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/embedders/ollama.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/embedders/sentence_transformer.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/embedders/universal_api.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/exceptions.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/extras/__init__.py +0 -0
- {memoryos-2.0.13/src/memos/extras/nli_model → memoryos-2.0.15/src/memos/graph_dbs}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/graph_dbs/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/graph_dbs/factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/graph_dbs/item.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/graph_dbs/neo4j.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/graph_dbs/neo4j_community.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/graph_dbs/postgres.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/hello_world.py +0 -0
- {memoryos-2.0.13/src/memos/extras/nli_model/server → memoryos-2.0.15/src/memos/llms}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/llms/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/llms/deepseek.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/llms/factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/llms/hf.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/llms/hf_singleton.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/llms/minimax.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/llms/ollama.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/llms/openai.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/llms/openai_new.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/llms/qwen.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/llms/utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/llms/vllm.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/log.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_agent/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_agent/deepsearch_agent.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_agent/factory.py +0 -0
- {memoryos-2.0.13/src/memos/graph_dbs → memoryos-2.0.15/src/memos/mem_chat}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_chat/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_chat/factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_chat/simple.py +0 -0
- {memoryos-2.0.13/src/memos/llms → memoryos-2.0.15/src/memos/mem_cube}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_cube/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_cube/general.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_cube/navie.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_cube/utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_feedback/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_feedback/simple_feedback.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_feedback/utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_os/core.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_os/main.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_os/utils/default_config.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_os/utils/reference_utils.py +0 -0
- {memoryos-2.0.13/src/memos/mem_chat → memoryos-2.0.15/src/memos/mem_reader}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/memory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/assistant_parser.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/file_content_parser.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/image_parser.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/multi_modal_parser.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/string_parser.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/system_parser.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/text_content_parser.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/tool_parser.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/user_parser.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/read_pref_memory/process_preference_memory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/strategy_struct.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_reader/utils.py +0 -0
- {memoryos-2.0.13/src/memos/mem_cube → memoryos-2.0.15/src/memos/mem_scheduler}/__init__.py +0 -0
- {memoryos-2.0.13/src/memos/mem_reader → memoryos-2.0.15/src/memos/mem_scheduler/analyzer}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/analyzer/api_analyzer.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/analyzer/eval_analyzer.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/analyzer/mos_for_test_scheduler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/analyzer/scheduler_for_eval.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/base_mixins/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/base_mixins/memory_ops.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/base_mixins/queue_ops.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/base_mixins/web_log_ops.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/base_scheduler.py +0 -0
- {memoryos-2.0.13/src/memos/mem_scheduler → memoryos-2.0.15/src/memos/mem_scheduler/general_modules}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/general_modules/api_misc.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/general_modules/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/general_modules/misc.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/general_modules/scheduler_logger.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/general_modules/task_threads.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/general_scheduler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/activation_memory_manager.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/enhancement_pipeline.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/filter_pipeline.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/memory_filter.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/post_processor.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/rerank_pipeline.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/retriever.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/search_pipeline.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/search_service.py +0 -0
- {memoryos-2.0.13/src/memos/mem_scheduler/analyzer → memoryos-2.0.15/src/memos/mem_scheduler/monitors}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/monitors/dispatcher_monitor.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/monitors/general_monitor.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/monitors/task_schedule_monitor.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/optimized_scheduler.py +0 -0
- {memoryos-2.0.13/src/memos/mem_scheduler/general_modules → memoryos-2.0.15/src/memos/mem_scheduler/orm_modules}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/orm_modules/api_redis_model.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/orm_modules/base_model.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/orm_modules/monitor_models.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/orm_modules/redis_model.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/scheduler_factory.py +0 -0
- {memoryos-2.0.13/src/memos/mem_scheduler/monitors → memoryos-2.0.15/src/memos/mem_scheduler/schemas}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/schemas/analyzer_schemas.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/schemas/api_schemas.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/schemas/general_schemas.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/schemas/message_schemas.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/schemas/monitor_schemas.py +0 -0
- {memoryos-2.0.13/src/memos/mem_scheduler/orm_modules → memoryos-2.0.15/src/memos/mem_scheduler/task_schedule_modules}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/base_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/context.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/add_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/answer_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/feedback_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_reorganize_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/memory_update_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/pref_add_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/query_handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/orchestrator.py +0 -0
- {memoryos-2.0.13/src/memos/mem_scheduler/schemas → memoryos-2.0.15/src/memos/mem_scheduler/utils}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/api_utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/config_utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/db_utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/filter_utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/metrics.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/misc_utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/monitor_event_utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/status_tracker.py +0 -0
- {memoryos-2.0.13/src/memos/mem_scheduler/task_schedule_modules → memoryos-2.0.15/src/memos/mem_scheduler/webservice_modules}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_scheduler/webservice_modules/redis_service.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_user/factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_user/mysql_persistent_user_manager.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_user/mysql_user_manager.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_user/persistent_factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_user/persistent_user_manager.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_user/redis_persistent_user_manager.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/mem_user/user_manager.py +0 -0
- {memoryos-2.0.13/src/memos/mem_scheduler/utils → memoryos-2.0.15/src/memos/memories}/__init__.py +0 -0
- {memoryos-2.0.13/src/memos/mem_scheduler/webservice_modules → memoryos-2.0.15/src/memos/memories/activation}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/activation/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/activation/item.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/activation/kv.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/activation/vllmkv.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/factory.py +0 -0
- {memoryos-2.0.13/src/memos/memories → memoryos-2.0.15/src/memos/memories/parametric}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/parametric/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/parametric/item.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/parametric/lora.py +0 -0
- {memoryos-2.0.13/src/memos/memories/activation → memoryos-2.0.15/src/memos/memories/textual}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/general.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/naive.py +0 -0
- {memoryos-2.0.13/src/memos/memories/parametric → memoryos-2.0.15/src/memos/memories/textual/prefer_text_memory}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/adder.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/config.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/extractor.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/retrievers.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/spliter.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/preference.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/simple_preference.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/simple_tree.py +0 -0
- {memoryos-2.0.13/src/memos/memories/textual → memoryos-2.0.15/src/memos/memories/textual/tree_text_memory}/__init__.py +0 -0
- {memoryos-2.0.13/src/memos/memories/textual/prefer_text_memory → memoryos-2.0.15/src/memos/memories/textual/tree_text_memory/organize}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/organize/handler.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/organize/relation_reason_detector.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/organize/reorganizer.py +0 -0
- {memoryos-2.0.13/src/memos/memories/textual/tree_text_memory → memoryos-2.0.15/src/memos/memories/textual/tree_text_memory/retrieve}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/advanced_searcher.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/bm25_util.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/bochasearch.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever_factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/reasoner.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/recall.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/reranker.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/retrieval_mid_structs.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/retrieve_utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/searcher.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/task_goal_parser.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/tavilysearch.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memos_tools/dinding_report_bot.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memos_tools/lockfree_dict.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memos_tools/notification_service.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memos_tools/notification_utils.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memos_tools/singleton.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memos_tools/thread_safe_dict.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/memos_tools/thread_safe_dict_segment.py +0 -0
- {memoryos-2.0.13/src/memos/memories/textual/tree_text_memory/organize → memoryos-2.0.15/src/memos/multi_mem_cube}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/multi_mem_cube/views.py +0 -0
- {memoryos-2.0.13/src/memos/memories/textual/tree_text_memory/retrieve → memoryos-2.0.15/src/memos/parsers}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/parsers/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/parsers/factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/parsers/markitdown.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/concat.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/cosine_local.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/http_bge.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/http_bge_strategy.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/noop.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/strategies/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/strategies/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/strategies/concat_background.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/strategies/concat_docsource.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/strategies/dialogue_common.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/strategies/factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/strategies/single_turn.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/reranker/strategies/singleturn_outmem.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/search/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/search/search_service.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/settings.py +0 -0
- {memoryos-2.0.13/src/memos/multi_mem_cube → memoryos-2.0.15/src/memos/templates}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/advanced_search_prompts.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/cloud_service_prompt.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/instruction_completion.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/mem_agent_prompts.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/mem_feedback_prompts.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/mem_reader_prompts.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/mem_reader_strategy_prompts.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/mem_scheduler_prompts.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/mem_search_prompts.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/mos_prompts.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/prefer_complete_prompt.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/skill_mem_prompt.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/tool_mem_prompts.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/templates/tree_reorganize_prompts.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/general_types.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_assistant_message_param.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_image_param.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_input_audio_param.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_param.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_refusal_param.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_text_param.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_message_custom_tool_call_param.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_message_function_tool_call_param.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_message_param.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_message_tool_call_union_param.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_system_message_param.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_tool_message_param.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_user_message_param.py +0 -0
- {memoryos-2.0.13/src/memos/parsers → memoryos-2.0.15/src/memos/vec_dbs}/__init__.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/vec_dbs/base.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/vec_dbs/factory.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/vec_dbs/item.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/src/memos/vec_dbs/milvus.py +0 -0
- {memoryos-2.0.13 → memoryos-2.0.15}/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.15
|
|
4
4
|
Summary: Intelligence Begins with Memory
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
License-File: LICENSE
|
|
@@ -88,51 +88,24 @@ Description-Content-Type: text/markdown
|
|
|
88
88
|
</a>
|
|
89
89
|
|
|
90
90
|
<h1 align="center">
|
|
91
|
-
<img src="https://statics.memtensor.com.cn/logo/memos_color_m.png" alt="MemOS Logo" width="
|
|
92
|
-
MemOS 2.0
|
|
93
|
-
|
|
91
|
+
<img src="https://statics.memtensor.com.cn/logo/memos_color_m.png" alt="MemOS Logo" width="48"/>
|
|
92
|
+
MemOS 2.0 Stardust(星尘)
|
|
93
|
+
|
|
94
94
|
</h1>
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
<img src="https://img.shields.io/pypi/pyversions/MemoryOS.svg" alt="Supported Python versions">
|
|
105
|
-
</a>
|
|
106
|
-
<a href="https://pypi.org/project/MemoryOS">
|
|
107
|
-
<img src="https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey" alt="Supported Platforms">
|
|
108
|
-
</a>
|
|
109
|
-
<a href="https://memos-docs.openmem.net/home/overview/">
|
|
110
|
-
<img src="https://img.shields.io/badge/Documentation-view-blue.svg" alt="Documentation">
|
|
111
|
-
</a>
|
|
112
|
-
<a href="https://arxiv.org/abs/2507.03724">
|
|
113
|
-
<img src="https://img.shields.io/badge/arXiv-2507.03724-b31b1b.svg" alt="ArXiv Paper">
|
|
114
|
-
</a>
|
|
115
|
-
<a href="https://github.com/MemTensor/MemOS/discussions">
|
|
116
|
-
<img src="https://img.shields.io/badge/GitHub-Discussions-181717.svg?logo=github" alt="GitHub Discussions">
|
|
117
|
-
</a>
|
|
118
|
-
<a href="https://discord.gg/Txbx3gebZR">
|
|
119
|
-
<img src="https://img.shields.io/badge/Discord-join%20chat-7289DA.svg?logo=discord" alt="Discord">
|
|
120
|
-
</a>
|
|
121
|
-
<a href="https://statics.memtensor.com.cn/memos/qr-code.png">
|
|
122
|
-
<img src="https://img.shields.io/badge/WeChat-Group-07C160.svg?logo=wechat" alt="WeChat Group">
|
|
123
|
-
</a>
|
|
124
|
-
<a href="https://opensource.org/license/apache-2-0/">
|
|
125
|
-
<img src="https://img.shields.io/badge/License-Apache_2.0-green.svg?logo=apache" alt="License">
|
|
126
|
-
</a>
|
|
127
|
-
<a href="https://github.com/IAAR-Shanghai/Awesome-AI-Memory">
|
|
128
|
-
<img alt="Awesome AI Memory" src="https://img.shields.io/badge/Resources-Awesome--AI--Memory-8A2BE2">
|
|
129
|
-
</a>
|
|
130
|
-
</p>
|
|
96
|
+
<p align="center">
|
|
97
|
+
<br>
|
|
98
|
+
<a href="https://memos-docs.openmem.net/home/overview/"><img src="https://img.shields.io/badge/Docs-Get--Start-002FA7?labelColor=gray&style=for-the-badge&logo=googledocs&logoColor=white" alt="Docs"></a>
|
|
99
|
+
<a href="https://arxiv.org/abs/2507.03724"><img src="https://img.shields.io/badge/ArXiv-2507.03724-B31B1B?labelColor=gray&style=for-the-badge&logo=arxiv&logoColor=white" alt="ArXiv"></a>
|
|
100
|
+
<a href="https://x.com/MemOS_dev"><img src="https://img.shields.io/badge/Follow-MemOS-000000?labelColor=gray&style=for-the-badge&logo=x&logoColor=white" alt="X"></a>
|
|
101
|
+
<a href="https://discord.gg/Txbx3gebZR"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdiscord.com%2Fapi%2Fv10%2Finvites%2FTxbx3gebZR%3Fwith_counts%3Dtrue&query=%24.approximate_presence_count&suffix=%20online&label=Discord&color=404EED&labelColor=gray&style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
|
|
102
|
+
<a href="https://github.com/IAAR-Shanghai/Awesome-AI-Memory"><img src="https://img.shields.io/badge/Resources-Awesome--AI--Memory-8A2BE2?labelColor=gray&style=for-the-badge&logo=awesomelists&logoColor=white" alt="Resources"></a>
|
|
103
|
+
</p>
|
|
131
104
|
|
|
132
105
|
<p align="center">
|
|
133
106
|
<strong>🎯 +43.70% Accuracy vs. OpenAI Memory</strong><br/>
|
|
134
|
-
<strong>🏆 Top-tier
|
|
135
|
-
<strong>💰 Saves 35.24%
|
|
107
|
+
<strong>🏆 Top-tier Long-term Memory + Personalization</strong><br/>
|
|
108
|
+
<strong>💰 Saves 35.24% Memory Tokens</strong><br/>
|
|
136
109
|
<sub>LoCoMo 75.80 • LongMemEval +40.43% • PrefEval-10 +2568% • PersonaMem +40.75%</sub>
|
|
137
110
|
<!-- <a href="https://memos.openmem.net/">
|
|
138
111
|
<img src="https://statics.memtensor.com.cn/memos/github_api_free_banner.gif" alt="MemOS Free API Banner">
|
|
@@ -148,35 +121,27 @@ Description-Content-Type: text/markdown
|
|
|
148
121
|
|
|
149
122
|
<!-- <br> -->
|
|
150
123
|
|
|
151
|
-
##
|
|
152
|
-
|
|
153
|
-

|
|
154
|
-
|
|
155
|
-
🦞 Your lobster now has a working memory system — choose **Cloud** or **Local** to get started.
|
|
156
|
-
|
|
157
|
-
### ☁️ Cloud Plugin — Hosted Memory Service
|
|
158
|
-
|
|
159
|
-
- [**72% lower token usage**](https://x.com/MemOS_dev/status/2020854044583924111) — intelligent memory retrieval instead of loading full chat history
|
|
160
|
-
- [**Multi-agent memory sharing**](https://x.com/MemOS_dev/status/2020538135487062094) — multi-instance agents share memory via same user_id, automatic context handoff
|
|
124
|
+
## 🧠 MemOS Plugin: Persistent Memory for Your AI Agents ✨
|
|
161
125
|
|
|
162
|
-
|
|
163
|
-
|
|
126
|
+
<div align="center">
|
|
127
|
+
|
|
128
|
+
<img width="1660" height="664" alt="MemOS Plugin Banner" src="https://github.com/user-attachments/assets/9d15dde2-196e-4f71-a364-dd5a33062117" />
|
|
164
129
|
|
|
165
|
-
|
|
130
|
+
Your lobsters and Hermes Agents now have **the best** memory system — choose ***Cloud Service*** or ***Self-hosted*** to get started 🏃🏻
|
|
166
131
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
- **
|
|
132
|
+
| 🔌 Plugin | <div align="center"> 💡 Core Features </div> | 🧩 Resources |
|
|
133
|
+
| :----: | :--- | :---: |
|
|
134
|
+
| 🧠 [**memos-local-plugin 2.0**](https://github.com/hijzy/MemOS/tree/main/apps/memos-local-plugin) | <ul><li>One local-first memory core for **Hermes Agent** and **OpenClaw**.</li><li>Self-evolving memory: L1 trace, L2 policy, L3 world model,<br>and crystallized Skills driven by feedback.</li></ul> | 🐙 [GitHub](https://github.com/hijzy/MemOS/tree/main/apps/memos-local-plugin) · 📦 [NPM](https://www.npmjs.com/package/@memtensor/memos-local-plugin) |
|
|
135
|
+
| ☁️ [**OpenClaw Cloud Plugin**](https://x.com/MemOS_dev/status/2019254160919769171?s=20) | <ul><li>[Reduces token usage by 72%.](https://x.com/MemOS_dev/status/2020854044583924111)</li><li>[Multi-agent memory sharing by `user_id`.](https://x.com/MemOS_dev/status/2020538135487062094)</li></ul> | 🖥️ [MemOS Dashboard](https://memos-dashboard.openmem.net/login/) · 📖 [Full Tutorial](https://memos-docs.openmem.net/openclaw/guide#_4-update-plugin) |
|
|
170
136
|
|
|
171
|
-
|
|
172
|
-
|
|
137
|
+
</div>
|
|
138
|
+
<br>
|
|
173
139
|
|
|
174
|
-
##
|
|
140
|
+
## 👾 MemOS: Memory Operating System for LLM & AI Agents
|
|
175
141
|
|
|
176
142
|
**MemOS** is a Memory Operating System for LLMs and AI agents that unifies **store / retrieve / manage** for long-term memory, enabling **context-aware and personalized** interactions with **KB**, **multi-modal**, **tool memory**, and **enterprise-grade** optimizations built in.
|
|
177
143
|
|
|
178
144
|
|
|
179
|
-
|
|
180
145
|
### Key Features
|
|
181
146
|
|
|
182
147
|
- **Unified Memory API**: A single API to add, retrieve, edit, and delete memory—structured as a graph, inspectable and editable by design, not a black-box embedding store.
|
|
@@ -188,6 +153,12 @@ Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/Mem
|
|
|
188
153
|
|
|
189
154
|
### News
|
|
190
155
|
|
|
156
|
+
- **2026-05-09** · 🧠 **memos-local-plugin 2.0**
|
|
157
|
+
Official local memory plugin for **Hermes Agent** and **OpenClaw**. One core powers self-evolving memory across L1 traces, L2 policies, L3 world models, and crystallized Skills, with local-first storage and feedback-driven retrieval.
|
|
158
|
+
|
|
159
|
+
- **2026-04-10** · 👧🏻 **MemOS Hermes Agent Local Plugin**
|
|
160
|
+
Official Hermes Agent memory plugins launched: Hybrid retrieval (FTS5 + vector), smart dedup, tiered skill evolution, multi-agent collaboration. 100% local, zero cloud dependency.
|
|
161
|
+
|
|
191
162
|
- **2026-03-08** · 🦞 **MemOS OpenClaw Plugin — Cloud & Local**
|
|
192
163
|
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.
|
|
193
164
|
|
|
@@ -285,7 +256,7 @@ Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/Mem
|
|
|
285
256
|
|
|
286
257
|
<br>
|
|
287
258
|
|
|
288
|
-
## 🚀
|
|
259
|
+
## 🚀 Quick-start Guide
|
|
289
260
|
|
|
290
261
|
### ☁️ 1、Cloud API (Hosted)
|
|
291
262
|
#### Get API Key
|
|
@@ -372,17 +343,18 @@ Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/Mem
|
|
|
372
343
|
res = requests.post(url=url, headers=headers, data=json.dumps(data))
|
|
373
344
|
print(f"result: {res.json()}")
|
|
374
345
|
```
|
|
375
|
-
|
|
346
|
+
|
|
376
347
|
<br>
|
|
377
348
|
|
|
378
349
|
## 📚 Resources
|
|
379
350
|
|
|
380
351
|
- **Awesome-AI-Memory**
|
|
381
|
-
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
|
|
382
|
-
|
|
352
|
+
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.<br/>
|
|
353
|
+
**Get started** 👉🏻 [IAAR-Shanghai/Awesome-AI-Memory](https://github.com/IAAR-Shanghai/Awesome-AI-Memory)
|
|
354
|
+
|
|
383
355
|
- **MemOS Cloud OpenClaw Plugin**
|
|
384
|
-
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
|
|
385
|
-
|
|
356
|
+
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.<br/>
|
|
357
|
+
**Get started** 👉🏻 [MemTensor/MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)
|
|
386
358
|
|
|
387
359
|
<br>
|
|
388
360
|
|
|
@@ -4,51 +4,24 @@
|
|
|
4
4
|
</a>
|
|
5
5
|
|
|
6
6
|
<h1 align="center">
|
|
7
|
-
<img src="https://statics.memtensor.com.cn/logo/memos_color_m.png" alt="MemOS Logo" width="
|
|
8
|
-
MemOS 2.0
|
|
9
|
-
|
|
7
|
+
<img src="https://statics.memtensor.com.cn/logo/memos_color_m.png" alt="MemOS Logo" width="48"/>
|
|
8
|
+
MemOS 2.0 Stardust(星尘)
|
|
9
|
+
|
|
10
10
|
</h1>
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<img src="https://img.shields.io/pypi/pyversions/MemoryOS.svg" alt="Supported Python versions">
|
|
21
|
-
</a>
|
|
22
|
-
<a href="https://pypi.org/project/MemoryOS">
|
|
23
|
-
<img src="https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey" alt="Supported Platforms">
|
|
24
|
-
</a>
|
|
25
|
-
<a href="https://memos-docs.openmem.net/home/overview/">
|
|
26
|
-
<img src="https://img.shields.io/badge/Documentation-view-blue.svg" alt="Documentation">
|
|
27
|
-
</a>
|
|
28
|
-
<a href="https://arxiv.org/abs/2507.03724">
|
|
29
|
-
<img src="https://img.shields.io/badge/arXiv-2507.03724-b31b1b.svg" alt="ArXiv Paper">
|
|
30
|
-
</a>
|
|
31
|
-
<a href="https://github.com/MemTensor/MemOS/discussions">
|
|
32
|
-
<img src="https://img.shields.io/badge/GitHub-Discussions-181717.svg?logo=github" alt="GitHub Discussions">
|
|
33
|
-
</a>
|
|
34
|
-
<a href="https://discord.gg/Txbx3gebZR">
|
|
35
|
-
<img src="https://img.shields.io/badge/Discord-join%20chat-7289DA.svg?logo=discord" alt="Discord">
|
|
36
|
-
</a>
|
|
37
|
-
<a href="https://statics.memtensor.com.cn/memos/qr-code.png">
|
|
38
|
-
<img src="https://img.shields.io/badge/WeChat-Group-07C160.svg?logo=wechat" alt="WeChat Group">
|
|
39
|
-
</a>
|
|
40
|
-
<a href="https://opensource.org/license/apache-2-0/">
|
|
41
|
-
<img src="https://img.shields.io/badge/License-Apache_2.0-green.svg?logo=apache" alt="License">
|
|
42
|
-
</a>
|
|
43
|
-
<a href="https://github.com/IAAR-Shanghai/Awesome-AI-Memory">
|
|
44
|
-
<img alt="Awesome AI Memory" src="https://img.shields.io/badge/Resources-Awesome--AI--Memory-8A2BE2">
|
|
45
|
-
</a>
|
|
46
|
-
</p>
|
|
12
|
+
<p align="center">
|
|
13
|
+
<br>
|
|
14
|
+
<a href="https://memos-docs.openmem.net/home/overview/"><img src="https://img.shields.io/badge/Docs-Get--Start-002FA7?labelColor=gray&style=for-the-badge&logo=googledocs&logoColor=white" alt="Docs"></a>
|
|
15
|
+
<a href="https://arxiv.org/abs/2507.03724"><img src="https://img.shields.io/badge/ArXiv-2507.03724-B31B1B?labelColor=gray&style=for-the-badge&logo=arxiv&logoColor=white" alt="ArXiv"></a>
|
|
16
|
+
<a href="https://x.com/MemOS_dev"><img src="https://img.shields.io/badge/Follow-MemOS-000000?labelColor=gray&style=for-the-badge&logo=x&logoColor=white" alt="X"></a>
|
|
17
|
+
<a href="https://discord.gg/Txbx3gebZR"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdiscord.com%2Fapi%2Fv10%2Finvites%2FTxbx3gebZR%3Fwith_counts%3Dtrue&query=%24.approximate_presence_count&suffix=%20online&label=Discord&color=404EED&labelColor=gray&style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
|
|
18
|
+
<a href="https://github.com/IAAR-Shanghai/Awesome-AI-Memory"><img src="https://img.shields.io/badge/Resources-Awesome--AI--Memory-8A2BE2?labelColor=gray&style=for-the-badge&logo=awesomelists&logoColor=white" alt="Resources"></a>
|
|
19
|
+
</p>
|
|
47
20
|
|
|
48
21
|
<p align="center">
|
|
49
22
|
<strong>🎯 +43.70% Accuracy vs. OpenAI Memory</strong><br/>
|
|
50
|
-
<strong>🏆 Top-tier
|
|
51
|
-
<strong>💰 Saves 35.24%
|
|
23
|
+
<strong>🏆 Top-tier Long-term Memory + Personalization</strong><br/>
|
|
24
|
+
<strong>💰 Saves 35.24% Memory Tokens</strong><br/>
|
|
52
25
|
<sub>LoCoMo 75.80 • LongMemEval +40.43% • PrefEval-10 +2568% • PersonaMem +40.75%</sub>
|
|
53
26
|
<!-- <a href="https://memos.openmem.net/">
|
|
54
27
|
<img src="https://statics.memtensor.com.cn/memos/github_api_free_banner.gif" alt="MemOS Free API Banner">
|
|
@@ -64,35 +37,27 @@
|
|
|
64
37
|
|
|
65
38
|
<!-- <br> -->
|
|
66
39
|
|
|
67
|
-
##
|
|
68
|
-
|
|
69
|
-

|
|
70
|
-
|
|
71
|
-
🦞 Your lobster now has a working memory system — choose **Cloud** or **Local** to get started.
|
|
72
|
-
|
|
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
|
|
40
|
+
## 🧠 MemOS Plugin: Persistent Memory for Your AI Agents ✨
|
|
77
41
|
|
|
78
|
-
|
|
79
|
-
|
|
42
|
+
<div align="center">
|
|
43
|
+
|
|
44
|
+
<img width="1660" height="664" alt="MemOS Plugin Banner" src="https://github.com/user-attachments/assets/9d15dde2-196e-4f71-a364-dd5a33062117" />
|
|
80
45
|
|
|
81
|
-
|
|
46
|
+
Your lobsters and Hermes Agents now have **the best** memory system — choose ***Cloud Service*** or ***Self-hosted*** to get started 🏃🏻
|
|
82
47
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
- **
|
|
48
|
+
| 🔌 Plugin | <div align="center"> 💡 Core Features </div> | 🧩 Resources |
|
|
49
|
+
| :----: | :--- | :---: |
|
|
50
|
+
| 🧠 [**memos-local-plugin 2.0**](https://github.com/hijzy/MemOS/tree/main/apps/memos-local-plugin) | <ul><li>One local-first memory core for **Hermes Agent** and **OpenClaw**.</li><li>Self-evolving memory: L1 trace, L2 policy, L3 world model,<br>and crystallized Skills driven by feedback.</li></ul> | 🐙 [GitHub](https://github.com/hijzy/MemOS/tree/main/apps/memos-local-plugin) · 📦 [NPM](https://www.npmjs.com/package/@memtensor/memos-local-plugin) |
|
|
51
|
+
| ☁️ [**OpenClaw Cloud Plugin**](https://x.com/MemOS_dev/status/2019254160919769171?s=20) | <ul><li>[Reduces token usage by 72%.](https://x.com/MemOS_dev/status/2020854044583924111)</li><li>[Multi-agent memory sharing by `user_id`.](https://x.com/MemOS_dev/status/2020538135487062094)</li></ul> | 🖥️ [MemOS Dashboard](https://memos-dashboard.openmem.net/login/) · 📖 [Full Tutorial](https://memos-docs.openmem.net/openclaw/guide#_4-update-plugin) |
|
|
86
52
|
|
|
87
|
-
|
|
88
|
-
|
|
53
|
+
</div>
|
|
54
|
+
<br>
|
|
89
55
|
|
|
90
|
-
##
|
|
56
|
+
## 👾 MemOS: Memory Operating System for LLM & AI Agents
|
|
91
57
|
|
|
92
58
|
**MemOS** is a Memory Operating System for LLMs and AI agents that unifies **store / retrieve / manage** for long-term memory, enabling **context-aware and personalized** interactions with **KB**, **multi-modal**, **tool memory**, and **enterprise-grade** optimizations built in.
|
|
93
59
|
|
|
94
60
|
|
|
95
|
-
|
|
96
61
|
### Key Features
|
|
97
62
|
|
|
98
63
|
- **Unified Memory API**: A single API to add, retrieve, edit, and delete memory—structured as a graph, inspectable and editable by design, not a black-box embedding store.
|
|
@@ -104,6 +69,12 @@ Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/Mem
|
|
|
104
69
|
|
|
105
70
|
### News
|
|
106
71
|
|
|
72
|
+
- **2026-05-09** · 🧠 **memos-local-plugin 2.0**
|
|
73
|
+
Official local memory plugin for **Hermes Agent** and **OpenClaw**. One core powers self-evolving memory across L1 traces, L2 policies, L3 world models, and crystallized Skills, with local-first storage and feedback-driven retrieval.
|
|
74
|
+
|
|
75
|
+
- **2026-04-10** · 👧🏻 **MemOS Hermes Agent Local Plugin**
|
|
76
|
+
Official Hermes Agent memory plugins launched: Hybrid retrieval (FTS5 + vector), smart dedup, tiered skill evolution, multi-agent collaboration. 100% local, zero cloud dependency.
|
|
77
|
+
|
|
107
78
|
- **2026-03-08** · 🦞 **MemOS OpenClaw Plugin — Cloud & Local**
|
|
108
79
|
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
80
|
|
|
@@ -201,7 +172,7 @@ Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/Mem
|
|
|
201
172
|
|
|
202
173
|
<br>
|
|
203
174
|
|
|
204
|
-
## 🚀
|
|
175
|
+
## 🚀 Quick-start Guide
|
|
205
176
|
|
|
206
177
|
### ☁️ 1、Cloud API (Hosted)
|
|
207
178
|
#### Get API Key
|
|
@@ -288,17 +259,18 @@ Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/Mem
|
|
|
288
259
|
res = requests.post(url=url, headers=headers, data=json.dumps(data))
|
|
289
260
|
print(f"result: {res.json()}")
|
|
290
261
|
```
|
|
291
|
-
|
|
262
|
+
|
|
292
263
|
<br>
|
|
293
264
|
|
|
294
265
|
## 📚 Resources
|
|
295
266
|
|
|
296
267
|
- **Awesome-AI-Memory**
|
|
297
|
-
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
|
|
298
|
-
|
|
268
|
+
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.<br/>
|
|
269
|
+
**Get started** 👉🏻 [IAAR-Shanghai/Awesome-AI-Memory](https://github.com/IAAR-Shanghai/Awesome-AI-Memory)
|
|
270
|
+
|
|
299
271
|
- **MemOS Cloud OpenClaw Plugin**
|
|
300
|
-
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
|
|
301
|
-
|
|
272
|
+
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.<br/>
|
|
273
|
+
**Get started** 👉🏻 [MemTensor/MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)
|
|
302
274
|
|
|
303
275
|
<br>
|
|
304
276
|
|
|
@@ -369,6 +369,26 @@ class APIConfig:
|
|
|
369
369
|
|
|
370
370
|
return {"backend": "openai", "config": config}
|
|
371
371
|
|
|
372
|
+
@staticmethod
|
|
373
|
+
def get_qwen_llm_config() -> dict[str, Any] | None:
|
|
374
|
+
if not os.getenv("QWEN_API_KEY"):
|
|
375
|
+
return None
|
|
376
|
+
return {
|
|
377
|
+
"backend": "qwen",
|
|
378
|
+
"config": {
|
|
379
|
+
"model_name_or_path": os.getenv("QWEN_MODEL", "qwen-flash"),
|
|
380
|
+
"temperature": float(os.getenv("QWEN_TEMPERATURE", "0.8")),
|
|
381
|
+
"max_tokens": int(os.getenv("QWEN_MAX_TOKENS", "8000")),
|
|
382
|
+
"top_p": float(os.getenv("QWEN_TOP_P", "0.9")),
|
|
383
|
+
"top_k": int(os.getenv("QWEN_TOP_K", "50")),
|
|
384
|
+
"remove_think_prefix": os.getenv("QWEN_REMOVE_THINK_PREFIX", "true").lower()
|
|
385
|
+
== "true",
|
|
386
|
+
"api_key": os.getenv("QWEN_API_KEY", ""),
|
|
387
|
+
"api_base": os.getenv("QWEN_API_BASE", ""),
|
|
388
|
+
"model_schema": os.getenv("QWEN_MODEL_SCHEMA", "memos.configs.llm.QwenLLMConfig"),
|
|
389
|
+
},
|
|
390
|
+
}
|
|
391
|
+
|
|
372
392
|
@staticmethod
|
|
373
393
|
def get_memreader_general_llm_config() -> dict[str, Any]:
|
|
374
394
|
"""Get general LLM configuration for non-chat/doc tasks.
|
|
@@ -639,6 +659,7 @@ class APIConfig:
|
|
|
639
659
|
|
|
640
660
|
return config
|
|
641
661
|
|
|
662
|
+
@staticmethod
|
|
642
663
|
def get_internet_config() -> dict[str, Any]:
|
|
643
664
|
"""Get internet retriever configuration.
|
|
644
665
|
|
|
@@ -705,8 +726,9 @@ class APIConfig:
|
|
|
705
726
|
|
|
706
727
|
@staticmethod
|
|
707
728
|
def get_nli_config() -> dict[str, Any]:
|
|
708
|
-
"""Get
|
|
729
|
+
"""Get relation-judge configuration for memory-version candidate matching."""
|
|
709
730
|
return {
|
|
731
|
+
"provider": os.getenv("MEM_VERSION_RELATION_JUDGE_PROVIDER", "llm"),
|
|
710
732
|
"base_url": os.getenv("NLI_MODEL_BASE_URL", "http://localhost:32532"),
|
|
711
733
|
}
|
|
712
734
|
|
|
@@ -872,7 +894,7 @@ class APIConfig:
|
|
|
872
894
|
),
|
|
873
895
|
"context_window_size": int(os.getenv("MOS_SCHEDULER_CONTEXT_WINDOW_SIZE", "5")),
|
|
874
896
|
"thread_pool_max_workers": int(
|
|
875
|
-
os.getenv("MOS_SCHEDULER_THREAD_POOL_MAX_WORKERS", "
|
|
897
|
+
os.getenv("MOS_SCHEDULER_THREAD_POOL_MAX_WORKERS", "50")
|
|
876
898
|
),
|
|
877
899
|
"consume_interval_seconds": float(
|
|
878
900
|
os.getenv("MOS_SCHEDULER_CONSUME_INTERVAL_SECONDS", "0.01")
|
|
@@ -952,6 +974,7 @@ class APIConfig:
|
|
|
952
974
|
"backend": reader_config["backend"],
|
|
953
975
|
"config": {
|
|
954
976
|
"llm": APIConfig.get_memreader_config(),
|
|
977
|
+
"qwen_llm": APIConfig.get_qwen_llm_config(),
|
|
955
978
|
# General LLM for non-chat/doc tasks (hallucination filter, rewrite, merge, etc.)
|
|
956
979
|
"general_llm": APIConfig.get_memreader_general_llm_config(),
|
|
957
980
|
# Image parser LLM (requires vision model)
|
|
@@ -986,6 +1009,7 @@ class APIConfig:
|
|
|
986
1009
|
"SKILLS_LOCAL_DIR", "/tmp/upload_skill_memory/"
|
|
987
1010
|
),
|
|
988
1011
|
},
|
|
1012
|
+
"memory_version_switch": os.getenv("MEM_READER_MEM_VERSION_SWITCH", "off"),
|
|
989
1013
|
},
|
|
990
1014
|
},
|
|
991
1015
|
"enable_textual_memory": True,
|
|
@@ -15,6 +15,7 @@ from memos.memories.textual.item import (
|
|
|
15
15
|
from memos.multi_mem_cube.composite_cube import CompositeCubeView
|
|
16
16
|
from memos.multi_mem_cube.single_cube import SingleCubeView
|
|
17
17
|
from memos.multi_mem_cube.views import MemCubeView
|
|
18
|
+
from memos.plugins.hooks import hookable
|
|
18
19
|
from memos.types import MessageList
|
|
19
20
|
|
|
20
21
|
|
|
@@ -37,6 +38,7 @@ class AddHandler(BaseHandler):
|
|
|
37
38
|
"naive_mem_cube", "mem_reader", "mem_scheduler", "feedback_server"
|
|
38
39
|
)
|
|
39
40
|
|
|
41
|
+
@hookable("add")
|
|
40
42
|
def handle_add_memories(self, add_req: APIADDRequest) -> MemoryResponse:
|
|
41
43
|
"""
|
|
42
44
|
Main handler for add memories endpoint.
|
|
@@ -32,14 +32,14 @@ from memos.mem_reader.factory import MemReaderFactory
|
|
|
32
32
|
from memos.mem_scheduler.orm_modules.base_model import BaseDBManager
|
|
33
33
|
from memos.mem_scheduler.scheduler_factory import SchedulerFactory
|
|
34
34
|
from memos.memories.textual.simple_tree import SimpleTreeTextMemory
|
|
35
|
-
from memos.memories.textual.tree_text_memory.organize.history_manager import MemoryHistoryManager
|
|
36
35
|
from memos.memories.textual.tree_text_memory.organize.manager import MemoryManager
|
|
37
36
|
from memos.memories.textual.tree_text_memory.retrieve.retrieve_utils import FastTokenizer
|
|
37
|
+
from memos.plugins.component_bootstrap import build_plugin_context
|
|
38
|
+
from memos.plugins.manager import plugin_manager
|
|
38
39
|
|
|
39
40
|
|
|
40
41
|
if TYPE_CHECKING:
|
|
41
42
|
from memos.memories.textual.tree import TreeTextMemory
|
|
42
|
-
from memos.extras.nli_model.client import NLIClient
|
|
43
43
|
from memos.mem_agent.deepsearch_agent import DeepSearchMemAgent
|
|
44
44
|
from memos.memories.textual.tree_text_memory.retrieve.internet_retriever_factory import (
|
|
45
45
|
InternetRetrieverFactory,
|
|
@@ -122,6 +122,12 @@ def init_server() -> dict[str, Any]:
|
|
|
122
122
|
existing code that uses the components.
|
|
123
123
|
"""
|
|
124
124
|
logger.info("Initializing MemOS server components...")
|
|
125
|
+
logger.info(
|
|
126
|
+
"[INIT_SERVER] env_MEMSCHEDULER_STREAM_KEY_PREFIX=%s, env_MEMSCHEDULER_REDIS_STREAM_KEY_PREFIX=%s, env_POLAR_DB_DB_NAME=%s",
|
|
127
|
+
os.getenv("MEMSCHEDULER_STREAM_KEY_PREFIX"),
|
|
128
|
+
os.getenv("MEMSCHEDULER_REDIS_STREAM_KEY_PREFIX"),
|
|
129
|
+
os.getenv("POLAR_DB_DB_NAME"),
|
|
130
|
+
)
|
|
125
131
|
|
|
126
132
|
# Initialize Redis client first as it is a core dependency for features like scheduler status tracking
|
|
127
133
|
if os.getenv("MEMSCHEDULER_USE_REDIS_QUEUE", "False").lower() == "true":
|
|
@@ -169,10 +175,26 @@ def init_server() -> dict[str, Any]:
|
|
|
169
175
|
else None
|
|
170
176
|
)
|
|
171
177
|
embedder = EmbedderFactory.from_config(embedder_config)
|
|
172
|
-
|
|
173
|
-
|
|
178
|
+
|
|
179
|
+
plugin_context = build_plugin_context(
|
|
180
|
+
graph_db=graph_db,
|
|
181
|
+
embedder=embedder,
|
|
182
|
+
llm=llm,
|
|
183
|
+
default_cube_config=default_cube_config,
|
|
184
|
+
nli_client_config=nli_client_config,
|
|
185
|
+
mem_reader_config=mem_reader_config,
|
|
186
|
+
reranker_config=reranker_config,
|
|
187
|
+
feedback_reranker_config=feedback_reranker_config,
|
|
188
|
+
internet_retriever_config=internet_retriever_config,
|
|
189
|
+
)
|
|
190
|
+
plugin_manager.discover()
|
|
191
|
+
plugin_manager.init_components(plugin_context)
|
|
192
|
+
|
|
174
193
|
# Pass graph_db to mem_reader for recall operations (deduplication, conflict detection)
|
|
175
|
-
mem_reader = MemReaderFactory.from_config(
|
|
194
|
+
mem_reader = MemReaderFactory.from_config(
|
|
195
|
+
mem_reader_config,
|
|
196
|
+
graph_db=graph_db,
|
|
197
|
+
)
|
|
176
198
|
reranker = RerankerFactory.from_config(reranker_config)
|
|
177
199
|
feedback_reranker = RerankerFactory.from_config(feedback_reranker_config)
|
|
178
200
|
internet_retriever = InternetRetrieverFactory.from_config(
|
|
@@ -264,6 +286,12 @@ def init_server() -> dict[str, Any]:
|
|
|
264
286
|
# Initialize SchedulerAPIModule
|
|
265
287
|
api_module = mem_scheduler.api_module
|
|
266
288
|
|
|
289
|
+
# Plugins keep a reference to the original context dict, so updating the shared
|
|
290
|
+
# section here makes the runtime handles visible without adding a second init step.
|
|
291
|
+
plugin_context["shared"]["mem_scheduler"] = mem_scheduler
|
|
292
|
+
plugin_context["shared"]["submit_scheduler_messages"] = mem_scheduler.submit_messages
|
|
293
|
+
plugin_context["shared"]["api_module"] = api_module
|
|
294
|
+
|
|
267
295
|
# Start scheduler if enabled
|
|
268
296
|
if os.getenv("API_SCHEDULER_ON", "true").lower() == "true":
|
|
269
297
|
mem_scheduler.start()
|
|
@@ -303,6 +331,4 @@ def init_server() -> dict[str, Any]:
|
|
|
303
331
|
"feedback_server": feedback_server,
|
|
304
332
|
"redis_client": redis_client,
|
|
305
333
|
"deepsearch_agent": deepsearch_agent,
|
|
306
|
-
"nli_client": nli_client,
|
|
307
|
-
"memory_history_manager": memory_history_manager,
|
|
308
334
|
}
|
|
@@ -141,6 +141,7 @@ def separate_knowledge_and_conversation_mem(memories: list[dict[str, Any]]):
|
|
|
141
141
|
sources = item.get("metadata", {}).get("sources", [])
|
|
142
142
|
if (
|
|
143
143
|
item["metadata"]["memory_type"] != "RawFileMemory"
|
|
144
|
+
and sources
|
|
144
145
|
and len(sources) > 0
|
|
145
146
|
and "type" in sources[0]
|
|
146
147
|
and sources[0]["type"] == "file"
|
|
@@ -9,13 +9,21 @@ from starlette.staticfiles import StaticFiles
|
|
|
9
9
|
from memos.api.exceptions import APIExceptionHandler
|
|
10
10
|
from memos.api.middleware.request_context import RequestContextMiddleware
|
|
11
11
|
from memos.api.routers.server_router import router as server_router
|
|
12
|
+
from memos.plugins.manager import plugin_manager
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
load_dotenv()
|
|
15
16
|
|
|
17
|
+
plugin_manager.discover()
|
|
18
|
+
|
|
16
19
|
# Configure logging
|
|
17
20
|
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
|
|
18
21
|
logger = logging.getLogger(__name__)
|
|
22
|
+
logger.info(
|
|
23
|
+
"[SERVER_API] load_dotenv completed. env_MEMSCHEDULER_STREAM_KEY_PREFIX=%s, env_MEMSCHEDULER_REDIS_STREAM_KEY_PREFIX=%s",
|
|
24
|
+
os.getenv("MEMSCHEDULER_STREAM_KEY_PREFIX"),
|
|
25
|
+
os.getenv("MEMSCHEDULER_REDIS_STREAM_KEY_PREFIX"),
|
|
26
|
+
)
|
|
19
27
|
|
|
20
28
|
app = FastAPI(
|
|
21
29
|
title="MemOS Server REST APIs",
|
|
@@ -49,6 +57,8 @@ app.exception_handler(HTTPException)(APIExceptionHandler.http_error_handler)
|
|
|
49
57
|
# Fallback for unknown errors
|
|
50
58
|
app.exception_handler(Exception)(APIExceptionHandler.global_exception_handler)
|
|
51
59
|
|
|
60
|
+
plugin_manager.init_app(app)
|
|
61
|
+
|
|
52
62
|
|
|
53
63
|
if __name__ == "__main__":
|
|
54
64
|
import argparse
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
|
-
from typing import Any, ClassVar
|
|
2
|
+
from typing import Any, ClassVar, Literal
|
|
3
3
|
|
|
4
4
|
from pydantic import ConfigDict, Field, field_validator, model_validator
|
|
5
5
|
|
|
@@ -76,6 +76,13 @@ class MultiModalStructMemReaderConfig(BaseMemReaderConfig):
|
|
|
76
76
|
default=None,
|
|
77
77
|
description="Skills directory for the MemReader",
|
|
78
78
|
)
|
|
79
|
+
memory_version_switch: Literal["on", "off"] = Field(
|
|
80
|
+
default="off",
|
|
81
|
+
description="Turn on memory version or off",
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
# Allow passing additional fields without raising validation errors
|
|
85
|
+
model_config = ConfigDict(extra="allow", strict=True)
|
|
79
86
|
|
|
80
87
|
|
|
81
88
|
class StrategyStructMemReaderConfig(BaseMemReaderConfig):
|