MemoryOS 2.0.15__tar.gz → 2.0.17__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.15 → memoryos-2.0.17}/PKG-INFO +2 -2
- {memoryos-2.0.15 → memoryos-2.0.17}/README.md +1 -1
- {memoryos-2.0.15 → memoryos-2.0.17}/pyproject.toml +4 -1
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/__init__.py +1 -1
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/handlers/chat_handler.py +6 -2
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/handlers/component_init.py +7 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/handlers/config_builders.py +5 -2
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/handlers/search_handler.py +127 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/product_models.py +19 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/routers/server_router.py +5 -4
- memoryos-2.0.17/src/memos/dream/contextualization.py +765 -0
- memoryos-2.0.17/src/memos/dream/enrichment.py +284 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/pipeline/__init__.py +2 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/pipeline/base.py +17 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/pipeline/diary.py +65 -3
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/pipeline/persistence.py +1 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/pipeline/recall.py +2 -1
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/plugin.py +15 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/prompts/__init__.py +4 -0
- memoryos-2.0.17/src/memos/dream/prompts/context_binding_prompt.py +31 -0
- memoryos-2.0.17/src/memos/dream/prompts/context_summary_prompt.py +27 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/routers/diary_router.py +2 -1
- memoryos-2.0.17/src/memos/dream/search.py +139 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/types.py +8 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/graph_dbs/polardb.py +6 -1
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/multi_modal_struct.py +25 -3
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_multi_modal/image_parser.py +37 -4
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_skill_memory/process_skill_memory.py +21 -38
- memoryos-2.0.17/src/memos/mem_reader/read_skill_memory/upload_skill_memory.py +312 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/base_mixins/queue_ops.py +5 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/base_mixins/web_log_ops.py +4 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/general_modules/scheduler_logger.py +2 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/schemas/message_schemas.py +21 -1
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/dispatcher.py +5 -3
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/handlers/add_handler.py +8 -8
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/handlers/feedback_handler.py +6 -5
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_read_handler.py +9 -5
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/redis_queue.py +42 -3
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/task_queue.py +4 -1
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/utils/misc_utils.py +6 -31
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py +62 -30
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/item.py +9 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/retrieve_utils.py +129 -2
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/searcher.py +107 -12
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/multi_mem_cube/single_cube.py +8 -2
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/plugins/hook_defs.py +21 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/plugins/manager.py +19 -0
- memoryos-2.0.15/src/memos/api/README_api.md +0 -13
- memoryos-2.0.15/src/memos/dream/README.md +0 -246
- memoryos-2.0.15/src/memos/dream/README_ZH.md +0 -243
- {memoryos-2.0.15 → memoryos-2.0.17}/LICENSE +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/client.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/config.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/context/dependencies.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/exceptions.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/handlers/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/handlers/add_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/handlers/base_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/handlers/feedback_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/handlers/formatters_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/handlers/memory_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/handlers/scheduler_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/handlers/suggestion_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/mcp_serve.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/middleware/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/middleware/auth.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/middleware/rate_limit.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/middleware/request_context.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/routers/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/routers/admin_router.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/server_api.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/server_api_ext.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/utils/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/api/utils/api_keys.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/chunkers/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/chunkers/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/chunkers/charactertext_chunker.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/chunkers/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/chunkers/markdown_chunker.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/chunkers/sentence_chunker.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/chunkers/simple_chunker.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/cli.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/chunker.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/embedder.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/graph_db.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/internet_retriever.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/llm.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/mem_agent.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/mem_chat.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/mem_cube.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/mem_os.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/mem_reader.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/mem_scheduler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/mem_user.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/memory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/parser.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/reranker.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/configs/vec_db.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/context/context.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dependency.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/deprecation.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/hook_defs.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/hooks.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/maintenance.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/pipeline/motive.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/pipeline/reasoning.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/prompts/motive_prompt.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/prompts/reasoning_prompt.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/routers/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/routers/trigger_router.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/routes.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/dream/signal_store.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/embedders/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/embedders/ark.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/embedders/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/embedders/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/embedders/ollama.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/embedders/sentence_transformer.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/embedders/universal_api.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/exceptions.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/extras/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/graph_dbs/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/graph_dbs/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/graph_dbs/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/graph_dbs/item.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/graph_dbs/neo4j.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/graph_dbs/neo4j_community.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/graph_dbs/postgres.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/hello_world.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/llms/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/llms/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/llms/deepseek.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/llms/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/llms/hf.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/llms/hf_singleton.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/llms/minimax.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/llms/ollama.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/llms/openai.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/llms/openai_new.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/llms/qwen.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/llms/utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/llms/vllm.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/log.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_agent/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_agent/deepsearch_agent.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_agent/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_chat/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_chat/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_chat/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_chat/simple.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_cube/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_cube/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_cube/general.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_cube/navie.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_cube/utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_feedback/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_feedback/feedback.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_feedback/simple_feedback.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_feedback/utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_os/core.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_os/main.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_os/utils/default_config.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_os/utils/format_utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_os/utils/reference_utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/memory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_multi_modal/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_multi_modal/assistant_parser.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_multi_modal/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_multi_modal/file_content_parser.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_multi_modal/multi_modal_parser.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_multi_modal/string_parser.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_multi_modal/system_parser.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_multi_modal/text_content_parser.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_multi_modal/tool_parser.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_multi_modal/user_parser.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_multi_modal/utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/read_pref_memory/process_preference_memory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/simple_struct.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/strategy_struct.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_reader/utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/analyzer/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/analyzer/api_analyzer.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/analyzer/eval_analyzer.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/analyzer/mos_for_test_scheduler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/analyzer/scheduler_for_eval.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/base_mixins/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/base_mixins/memory_ops.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/base_scheduler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/general_modules/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/general_modules/api_misc.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/general_modules/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/general_modules/init_components_for_scheduler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/general_modules/misc.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/general_modules/task_threads.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/general_scheduler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/memory_manage_modules/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/memory_manage_modules/activation_memory_manager.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/memory_manage_modules/enhancement_pipeline.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/memory_manage_modules/filter_pipeline.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/memory_manage_modules/memory_filter.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/memory_manage_modules/post_processor.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/memory_manage_modules/rerank_pipeline.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/memory_manage_modules/retriever.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/memory_manage_modules/search_pipeline.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/memory_manage_modules/search_service.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/monitors/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/monitors/dispatcher_monitor.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/monitors/general_monitor.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/monitors/task_schedule_monitor.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/optimized_scheduler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/orm_modules/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/orm_modules/api_redis_model.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/orm_modules/base_model.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/orm_modules/monitor_models.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/orm_modules/redis_model.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/scheduler_factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/schemas/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/schemas/analyzer_schemas.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/schemas/api_schemas.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/schemas/general_schemas.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/schemas/monitor_schemas.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/schemas/task_schemas.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/base_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/context.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/handlers/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/handlers/answer_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_dream_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_reorganize_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/handlers/memory_update_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/handlers/pref_add_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/handlers/query_handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/local_queue.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/orchestrator.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/task_schedule_modules/registry.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/utils/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/utils/api_utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/utils/config_utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/utils/db_utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/utils/filter_utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/utils/metrics.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/utils/monitor_event_utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/utils/status_tracker.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/webservice_modules/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_scheduler/webservice_modules/redis_service.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_user/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_user/mysql_persistent_user_manager.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_user/mysql_user_manager.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_user/persistent_factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_user/persistent_user_manager.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_user/redis_persistent_user_manager.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/mem_user/user_manager.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/activation/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/activation/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/activation/item.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/activation/kv.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/activation/vllmkv.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/parametric/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/parametric/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/parametric/item.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/parametric/lora.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/general.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/naive.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/prefer_text_memory/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/prefer_text_memory/adder.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/prefer_text_memory/config.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/prefer_text_memory/extractor.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/prefer_text_memory/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/prefer_text_memory/retrievers.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/prefer_text_memory/spliter.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/prefer_text_memory/utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/preference.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/simple_preference.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/simple_tree.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/organize/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/organize/handler.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/organize/manager.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/organize/relation_reason_detector.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/organize/reorganizer.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/advanced_searcher.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/bm25_util.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/bochasearch.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever_factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/reasoner.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/recall.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/reranker.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/retrieval_mid_structs.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/task_goal_parser.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/tavilysearch.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memos_tools/dinding_report_bot.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memos_tools/lockfree_dict.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memos_tools/notification_service.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memos_tools/notification_utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memos_tools/singleton.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memos_tools/thread_safe_dict.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/memos_tools/thread_safe_dict_segment.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/multi_mem_cube/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/multi_mem_cube/composite_cube.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/multi_mem_cube/views.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/parsers/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/parsers/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/parsers/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/parsers/markitdown.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/plugins/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/plugins/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/plugins/component_bootstrap.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/plugins/hooks.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/concat.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/cosine_local.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/http_bge.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/http_bge_strategy.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/noop.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/strategies/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/strategies/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/strategies/concat_background.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/strategies/concat_docsource.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/strategies/dialogue_common.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/strategies/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/strategies/single_turn.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/reranker/strategies/singleturn_outmem.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/search/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/search/search_service.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/settings.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/advanced_search_prompts.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/cloud_service_prompt.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/instruction_completion.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/mem_agent_prompts.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/mem_feedback_prompts.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/mem_reader_prompts.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/mem_reader_strategy_prompts.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/mem_scheduler_prompts.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/mem_search_prompts.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/mos_prompts.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/prefer_complete_prompt.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/skill_mem_prompt.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/tool_mem_prompts.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/templates/tree_reorganize_prompts.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/general_types.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/chat_completion_assistant_message_param.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_image_param.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_input_audio_param.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_param.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_refusal_param.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_text_param.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/chat_completion_message_custom_tool_call_param.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/chat_completion_message_function_tool_call_param.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/chat_completion_message_param.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/chat_completion_message_tool_call_union_param.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/chat_completion_system_message_param.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/chat_completion_tool_message_param.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/types/openai_chat_completion_types/chat_completion_user_message_param.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/utils.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/vec_dbs/__init__.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/vec_dbs/base.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/vec_dbs/factory.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/vec_dbs/item.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/src/memos/vec_dbs/milvus.py +0 -0
- {memoryos-2.0.15 → memoryos-2.0.17}/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.17
|
|
4
4
|
Summary: Intelligence Begins with Memory
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
License-File: LICENSE
|
|
@@ -131,7 +131,7 @@ Your lobsters and Hermes Agents now have **the best** memory system — choose *
|
|
|
131
131
|
|
|
132
132
|
| 🔌 Plugin | <div align="center"> 💡 Core Features </div> | 🧩 Resources |
|
|
133
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) |
|
|
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> | 🌐 [Website](https://memos-claw.openmem.net/) · 📖 [Docs](https://memos-docs.openmem.net/cn/openclaw/local_plugin) · 🐙 [GitHub](https://github.com/hijzy/MemOS/tree/main/apps/memos-local-plugin) · 📦 [NPM](https://www.npmjs.com/package/@memtensor/memos-local-plugin) |
|
|
135
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) |
|
|
136
136
|
|
|
137
137
|
</div>
|
|
@@ -47,7 +47,7 @@ Your lobsters and Hermes Agents now have **the best** memory system — choose *
|
|
|
47
47
|
|
|
48
48
|
| 🔌 Plugin | <div align="center"> 💡 Core Features </div> | 🧩 Resources |
|
|
49
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) |
|
|
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> | 🌐 [Website](https://memos-claw.openmem.net/) · 📖 [Docs](https://memos-docs.openmem.net/cn/openclaw/local_plugin) · 🐙 [GitHub](https://github.com/hijzy/MemOS/tree/main/apps/memos-local-plugin) · 📦 [NPM](https://www.npmjs.com/package/@memtensor/memos-local-plugin) |
|
|
51
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) |
|
|
52
52
|
|
|
53
53
|
</div>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
##############################################################################
|
|
5
5
|
|
|
6
6
|
name = "MemoryOS"
|
|
7
|
-
version = "2.0.
|
|
7
|
+
version = "2.0.17"
|
|
8
8
|
description = "Intelligence Begins with Memory"
|
|
9
9
|
license = {text = "Apache-2.0"}
|
|
10
10
|
readme = "README.md"
|
|
@@ -62,6 +62,9 @@ issues = "https://github.com/MemTensor/MemOS/issues"
|
|
|
62
62
|
[project.scripts]
|
|
63
63
|
memos = "memos.cli:main"
|
|
64
64
|
|
|
65
|
+
[project.entry-points."memos.plugins"]
|
|
66
|
+
dream = "memos.dream:CommunityDreamPlugin"
|
|
67
|
+
|
|
65
68
|
[project.optional-dependencies]
|
|
66
69
|
# These are optional dependencies for various features of MemoryOS.
|
|
67
70
|
# Developers install: `poetry install --extras <feature>`. e.g., `poetry install --extras general-mem`
|
|
@@ -60,6 +60,7 @@ class ChatHandler(BaseHandler):
|
|
|
60
60
|
self,
|
|
61
61
|
dependencies: HandlerDependencies,
|
|
62
62
|
chat_llms: dict[str, Any],
|
|
63
|
+
playground_chat_llms: dict[str, Any] | None = None,
|
|
63
64
|
search_handler=None,
|
|
64
65
|
add_handler=None,
|
|
65
66
|
online_bot=None,
|
|
@@ -70,6 +71,7 @@ class ChatHandler(BaseHandler):
|
|
|
70
71
|
Args:
|
|
71
72
|
dependencies: HandlerDependencies instance
|
|
72
73
|
chat_llms: Dictionary mapping model names to LLM instances
|
|
74
|
+
playground_chat_llms: Optional model map for /chat/stream/playground
|
|
73
75
|
search_handler: Optional SearchHandler instance (created if not provided)
|
|
74
76
|
add_handler: Optional AddHandler instance (created if not provided)
|
|
75
77
|
online_bot: Optional DingDing bot function for notifications
|
|
@@ -89,6 +91,7 @@ class ChatHandler(BaseHandler):
|
|
|
89
91
|
add_handler = AddHandler(dependencies)
|
|
90
92
|
|
|
91
93
|
self.chat_llms = chat_llms
|
|
94
|
+
self.playground_chat_llms = playground_chat_llms or chat_llms
|
|
92
95
|
self.search_handler = search_handler
|
|
93
96
|
self.add_handler = add_handler
|
|
94
97
|
self.online_bot = online_bot
|
|
@@ -630,10 +633,11 @@ class ChatHandler(BaseHandler):
|
|
|
630
633
|
|
|
631
634
|
# Step 3: Generate streaming response from LLM
|
|
632
635
|
try:
|
|
633
|
-
|
|
636
|
+
chat_llms = self.playground_chat_llms
|
|
637
|
+
model = next(iter(chat_llms.keys()))
|
|
634
638
|
self.logger.info(f"[PLAYGROUND CHAT] Chat Playground Stream Model: {model}")
|
|
635
639
|
start = time.time()
|
|
636
|
-
response_stream =
|
|
640
|
+
response_stream = chat_llms[model].generate_stream(
|
|
637
641
|
current_messages, model_name_or_path=model
|
|
638
642
|
)
|
|
639
643
|
|
|
@@ -157,6 +157,7 @@ def init_server() -> dict[str, Any]:
|
|
|
157
157
|
graph_db_config = build_graph_db_config()
|
|
158
158
|
llm_config = build_llm_config()
|
|
159
159
|
chat_llm_config = build_chat_llm_config()
|
|
160
|
+
playground_chat_llm_config = build_chat_llm_config("PLAYGROUND_CHAT_MODEL_LIST")
|
|
160
161
|
embedder_config = build_embedder_config()
|
|
161
162
|
nli_client_config = build_nli_client_config()
|
|
162
163
|
mem_reader_config = build_mem_reader_config()
|
|
@@ -174,6 +175,11 @@ def init_server() -> dict[str, Any]:
|
|
|
174
175
|
if os.getenv("ENABLE_CHAT_API", "false") == "true"
|
|
175
176
|
else None
|
|
176
177
|
)
|
|
178
|
+
playground_chat_llms = (
|
|
179
|
+
_init_chat_llms(playground_chat_llm_config)
|
|
180
|
+
if os.getenv("ENABLE_CHAT_API", "false") == "true" and playground_chat_llm_config
|
|
181
|
+
else chat_llms
|
|
182
|
+
)
|
|
177
183
|
embedder = EmbedderFactory.from_config(embedder_config)
|
|
178
184
|
|
|
179
185
|
plugin_context = build_plugin_context(
|
|
@@ -317,6 +323,7 @@ def init_server() -> dict[str, Any]:
|
|
|
317
323
|
"mem_reader": mem_reader,
|
|
318
324
|
"llm": llm,
|
|
319
325
|
"chat_llms": chat_llms,
|
|
326
|
+
"playground_chat_llms": playground_chat_llms,
|
|
320
327
|
"embedder": embedder,
|
|
321
328
|
"reranker": reranker,
|
|
322
329
|
"internet_retriever": internet_retriever,
|
|
@@ -85,14 +85,17 @@ def build_llm_config() -> dict[str, Any]:
|
|
|
85
85
|
)
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
def build_chat_llm_config() -> list[dict[str, Any]]:
|
|
88
|
+
def build_chat_llm_config(env_name: str = "CHAT_MODEL_LIST") -> list[dict[str, Any]]:
|
|
89
89
|
"""
|
|
90
90
|
Build chat LLM configuration.
|
|
91
91
|
|
|
92
92
|
Returns:
|
|
93
93
|
Validated chat LLM configuration dictionary
|
|
94
|
+
Args:
|
|
95
|
+
env_name: Environment variable that contains the JSON chat model list.
|
|
96
|
+
|
|
94
97
|
"""
|
|
95
|
-
configs = json.loads(os.getenv(
|
|
98
|
+
configs = json.loads(os.getenv(env_name, "[]"))
|
|
96
99
|
return [
|
|
97
100
|
{
|
|
98
101
|
"config_class": LLMConfigFactory.model_validate(
|
|
@@ -7,12 +7,15 @@ using dependency injection for better modularity and testability.
|
|
|
7
7
|
|
|
8
8
|
import copy
|
|
9
9
|
import math
|
|
10
|
+
import os
|
|
10
11
|
|
|
12
|
+
from contextlib import suppress
|
|
11
13
|
from typing import Any
|
|
12
14
|
|
|
13
15
|
from memos.api.handlers.base_handler import BaseHandler, HandlerDependencies
|
|
14
16
|
from memos.api.handlers.formatters_handler import rerank_knowledge_mem
|
|
15
17
|
from memos.api.product_models import APISearchRequest, SearchResponse
|
|
18
|
+
from memos.dream.contextualization import CONTEXT_MEMORY_TYPE
|
|
16
19
|
from memos.log import get_logger
|
|
17
20
|
from memos.memories.textual.tree_text_memory.retrieve.retrieve_utils import (
|
|
18
21
|
cosine_similarity_matrix,
|
|
@@ -20,10 +23,26 @@ from memos.memories.textual.tree_text_memory.retrieve.retrieve_utils import (
|
|
|
20
23
|
from memos.multi_mem_cube.composite_cube import CompositeCubeView
|
|
21
24
|
from memos.multi_mem_cube.single_cube import SingleCubeView
|
|
22
25
|
from memos.multi_mem_cube.views import MemCubeView
|
|
26
|
+
from memos.plugins.hook_defs import H
|
|
27
|
+
from memos.plugins.hooks import hookable, trigger_hook
|
|
23
28
|
|
|
24
29
|
|
|
25
30
|
logger = get_logger(__name__)
|
|
26
31
|
|
|
32
|
+
_ENV_CONTEXT_RECALL = "MEMOS_DREAM_CONTEXT_RECALL"
|
|
33
|
+
_ENV_CONTEXT_RECALL_TOP_K = "MEMOS_DREAM_CONTEXT_RECALL_TOP_K"
|
|
34
|
+
_DEFAULT_CONTEXT_RECALL_TOP_K = 2
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _env_enabled(name: str, default: str = "off") -> bool:
|
|
38
|
+
return os.getenv(name, default).strip().lower() not in {"0", "false", "no", "off"}
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def _env_int(name: str, default: int) -> int:
|
|
42
|
+
with suppress(TypeError, ValueError):
|
|
43
|
+
return int(os.getenv(name, str(default)))
|
|
44
|
+
return default
|
|
45
|
+
|
|
27
46
|
|
|
28
47
|
class SearchHandler(BaseHandler):
|
|
29
48
|
"""
|
|
@@ -44,6 +63,7 @@ class SearchHandler(BaseHandler):
|
|
|
44
63
|
"naive_mem_cube", "mem_scheduler", "searcher", "deepsearch_agent"
|
|
45
64
|
)
|
|
46
65
|
|
|
66
|
+
@hookable("search")
|
|
47
67
|
def handle_search_memories(self, search_req: APISearchRequest) -> SearchResponse:
|
|
48
68
|
"""
|
|
49
69
|
Main handler for search memories endpoint.
|
|
@@ -69,6 +89,14 @@ class SearchHandler(BaseHandler):
|
|
|
69
89
|
# Search and deduplicate
|
|
70
90
|
cube_view = self._build_cube_view(search_req_local)
|
|
71
91
|
results = cube_view.search_memories(search_req_local)
|
|
92
|
+
hooked_results = trigger_hook(
|
|
93
|
+
H.SEARCH_MEMORY_RESULTS,
|
|
94
|
+
handler=self,
|
|
95
|
+
search_req=search_req_local,
|
|
96
|
+
results=results,
|
|
97
|
+
)
|
|
98
|
+
if hooked_results is not None:
|
|
99
|
+
results = hooked_results
|
|
72
100
|
if not search_req_local.relativity:
|
|
73
101
|
search_req_local.relativity = 0
|
|
74
102
|
self.logger.info(f"[SearchHandler] Relativity filter: {search_req_local.relativity}")
|
|
@@ -100,6 +128,105 @@ class SearchHandler(BaseHandler):
|
|
|
100
128
|
data=results,
|
|
101
129
|
)
|
|
102
130
|
|
|
131
|
+
def _merge_context_recall(
|
|
132
|
+
self, *, results: dict[str, Any], search_req: APISearchRequest
|
|
133
|
+
) -> None:
|
|
134
|
+
if not _env_enabled(_ENV_CONTEXT_RECALL, "off"):
|
|
135
|
+
return
|
|
136
|
+
|
|
137
|
+
top_k = max(0, _env_int(_ENV_CONTEXT_RECALL_TOP_K, _DEFAULT_CONTEXT_RECALL_TOP_K))
|
|
138
|
+
if top_k <= 0:
|
|
139
|
+
return
|
|
140
|
+
|
|
141
|
+
context_buckets = self._recall_context_buckets(search_req=search_req, top_k=top_k)
|
|
142
|
+
if not context_buckets:
|
|
143
|
+
return
|
|
144
|
+
|
|
145
|
+
results.setdefault("text_mem", []).extend(context_buckets)
|
|
146
|
+
|
|
147
|
+
def _recall_context_buckets(
|
|
148
|
+
self, *, search_req: APISearchRequest, top_k: int
|
|
149
|
+
) -> list[dict[str, Any]]:
|
|
150
|
+
graph_db = self.graph_db or getattr(self.searcher, "graph_store", None)
|
|
151
|
+
embedder = self.embedder or getattr(self.searcher, "embedder", None)
|
|
152
|
+
if graph_db is None or embedder is None:
|
|
153
|
+
self.logger.info(
|
|
154
|
+
"[SearchHandler] Context recall skipped: graph_db or embedder unavailable."
|
|
155
|
+
)
|
|
156
|
+
return []
|
|
157
|
+
|
|
158
|
+
try:
|
|
159
|
+
query_embedding = embedder.embed([search_req.query])[0]
|
|
160
|
+
except Exception:
|
|
161
|
+
self.logger.warning("[SearchHandler] Context recall embedding failed.", exc_info=True)
|
|
162
|
+
return []
|
|
163
|
+
|
|
164
|
+
buckets: list[dict[str, Any]] = []
|
|
165
|
+
for cube_id in self._resolve_cube_ids(search_req):
|
|
166
|
+
try:
|
|
167
|
+
hits = graph_db.search_by_embedding(
|
|
168
|
+
query_embedding,
|
|
169
|
+
top_k=top_k,
|
|
170
|
+
scope=CONTEXT_MEMORY_TYPE,
|
|
171
|
+
status="activated",
|
|
172
|
+
user_name=cube_id,
|
|
173
|
+
return_fields=[
|
|
174
|
+
"memory",
|
|
175
|
+
"key",
|
|
176
|
+
"created_at",
|
|
177
|
+
"updated_at",
|
|
178
|
+
"source",
|
|
179
|
+
"internal_info",
|
|
180
|
+
],
|
|
181
|
+
)
|
|
182
|
+
except Exception:
|
|
183
|
+
self.logger.warning(
|
|
184
|
+
"[SearchHandler] Context recall search failed for cube=%s.",
|
|
185
|
+
cube_id,
|
|
186
|
+
exc_info=True,
|
|
187
|
+
)
|
|
188
|
+
continue
|
|
189
|
+
|
|
190
|
+
memories = [self._format_context_hit(hit) for hit in hits or [] if hit.get("memory")]
|
|
191
|
+
if not memories:
|
|
192
|
+
continue
|
|
193
|
+
buckets.append(
|
|
194
|
+
{
|
|
195
|
+
"cube_id": cube_id,
|
|
196
|
+
"memories": memories,
|
|
197
|
+
"total_nodes": len(memories),
|
|
198
|
+
}
|
|
199
|
+
)
|
|
200
|
+
return buckets
|
|
201
|
+
|
|
202
|
+
@staticmethod
|
|
203
|
+
def _format_context_hit(hit: dict[str, Any]) -> dict[str, Any]:
|
|
204
|
+
context_id = str(hit.get("id", ""))
|
|
205
|
+
score = float(hit.get("score", 0.0) or 0.0)
|
|
206
|
+
metadata = {
|
|
207
|
+
"id": context_id,
|
|
208
|
+
"memory": hit.get("memory", ""),
|
|
209
|
+
"memory_type": CONTEXT_MEMORY_TYPE,
|
|
210
|
+
"source": hit.get("source") or "dream",
|
|
211
|
+
"key": hit.get("key", ""),
|
|
212
|
+
"relativity": score,
|
|
213
|
+
"score": score,
|
|
214
|
+
"embedding": [],
|
|
215
|
+
"sources": [],
|
|
216
|
+
"usage": [],
|
|
217
|
+
"ref_id": f"[{context_id.split('-')[0]}]" if context_id else "[context]",
|
|
218
|
+
}
|
|
219
|
+
for field in ("created_at", "updated_at", "internal_info"):
|
|
220
|
+
if hit.get(field) is not None:
|
|
221
|
+
metadata[field] = hit[field]
|
|
222
|
+
|
|
223
|
+
return {
|
|
224
|
+
"id": context_id,
|
|
225
|
+
"memory": hit.get("memory", ""),
|
|
226
|
+
"metadata": metadata,
|
|
227
|
+
"ref_id": metadata["ref_id"],
|
|
228
|
+
}
|
|
229
|
+
|
|
103
230
|
@staticmethod
|
|
104
231
|
def _apply_relativity_threshold(results: dict[str, Any], relativity: float) -> dict[str, Any]:
|
|
105
232
|
if relativity <= 0:
|
|
@@ -438,6 +438,14 @@ class APISearchRequest(BaseRequest):
|
|
|
438
438
|
)
|
|
439
439
|
|
|
440
440
|
# ==== Context ====
|
|
441
|
+
reference_time: str | None = Field(
|
|
442
|
+
None,
|
|
443
|
+
description=(
|
|
444
|
+
"Optional reference time for time-sensitive search parsing. "
|
|
445
|
+
"If omitted, search uses the current server time."
|
|
446
|
+
),
|
|
447
|
+
)
|
|
448
|
+
|
|
441
449
|
chat_history: MessageList | None = Field(
|
|
442
450
|
None,
|
|
443
451
|
description=(
|
|
@@ -608,6 +616,17 @@ class APIADDRequest(BaseRequest):
|
|
|
608
616
|
description=("Whether this request represents user feedback. Default: False."),
|
|
609
617
|
)
|
|
610
618
|
|
|
619
|
+
# ==== Upload skill flag ====
|
|
620
|
+
is_upload_skill: bool = Field(
|
|
621
|
+
False,
|
|
622
|
+
description=(
|
|
623
|
+
"Whether this request is an upload skill request. "
|
|
624
|
+
"When True, the messages field should contain file items "
|
|
625
|
+
"with zip file download URLs for pre-built skill packages. "
|
|
626
|
+
"Default: False."
|
|
627
|
+
),
|
|
628
|
+
)
|
|
629
|
+
|
|
611
630
|
# ==== Backward compatibility fields (will delete later) ====
|
|
612
631
|
mem_cube_id: str | None = Field(
|
|
613
632
|
None,
|
|
@@ -76,10 +76,11 @@ search_handler = SearchHandler(dependencies)
|
|
|
76
76
|
add_handler = AddHandler(dependencies)
|
|
77
77
|
chat_handler = (
|
|
78
78
|
ChatHandler(
|
|
79
|
-
dependencies,
|
|
80
|
-
components["chat_llms"],
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
dependencies=dependencies,
|
|
80
|
+
chat_llms=components["chat_llms"],
|
|
81
|
+
playground_chat_llms=components.get("playground_chat_llms"),
|
|
82
|
+
search_handler=search_handler,
|
|
83
|
+
add_handler=add_handler,
|
|
83
84
|
online_bot=components.get("online_bot"),
|
|
84
85
|
)
|
|
85
86
|
if os.getenv("ENABLE_CHAT_API", "false") == "true"
|