MemoryOS 2.0.5__tar.gz → 2.0.6__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.5 → memoryos-2.0.6}/PKG-INFO +5 -5
- {memoryos-2.0.5 → memoryos-2.0.6}/README.md +4 -4
- {memoryos-2.0.5 → memoryos-2.0.6}/pyproject.toml +1 -1
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/__init__.py +1 -1
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/config.py +0 -2
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/handlers/chat_handler.py +3 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/handlers/config_builders.py +1 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/handlers/memory_handler.py +70 -4
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/handlers/search_handler.py +11 -4
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/product_models.py +18 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/routers/server_router.py +0 -10
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/llm.py +1 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/llms/vllm.py +2 -14
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/multi_modal_struct.py +2 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_multi_modal/multi_modal_parser.py +4 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_skill_memory/process_skill_memory.py +30 -18
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/searcher.py +107 -2
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/multi_mem_cube/single_cube.py +24 -3
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/vec_dbs/milvus.py +42 -8
- {memoryos-2.0.5 → memoryos-2.0.6}/LICENSE +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/README_api.md +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/client.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/context/dependencies.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/exceptions.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/handlers/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/handlers/add_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/handlers/base_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/handlers/component_init.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/handlers/feedback_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/handlers/formatters_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/handlers/scheduler_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/handlers/suggestion_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/mcp_serve.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/middleware/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/middleware/auth.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/middleware/rate_limit.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/middleware/request_context.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/product_api.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/routers/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/routers/admin_router.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/routers/product_router.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/server_api.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/server_api_ext.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/start_api.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/utils/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/api/utils/api_keys.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/chunkers/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/chunkers/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/chunkers/charactertext_chunker.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/chunkers/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/chunkers/markdown_chunker.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/chunkers/sentence_chunker.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/chunkers/simple_chunker.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/cli.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/chunker.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/embedder.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/graph_db.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/internet_retriever.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/mem_agent.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/mem_chat.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/mem_cube.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/mem_os.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/mem_reader.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/mem_scheduler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/mem_user.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/memory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/parser.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/reranker.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/configs/vec_db.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/context/context.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/dependency.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/deprecation.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/embedders/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/embedders/ark.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/embedders/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/embedders/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/embedders/ollama.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/embedders/sentence_transformer.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/embedders/universal_api.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/exceptions.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/extras/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/extras/nli_model/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/extras/nli_model/client.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/extras/nli_model/server/README.md +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/extras/nli_model/server/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/extras/nli_model/server/config.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/extras/nli_model/server/handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/extras/nli_model/server/serve.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/extras/nli_model/types.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/graph_dbs/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/graph_dbs/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/graph_dbs/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/graph_dbs/item.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/graph_dbs/nebular.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/graph_dbs/neo4j.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/graph_dbs/neo4j_community.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/graph_dbs/polardb.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/graph_dbs/postgres.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/hello_world.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/llms/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/llms/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/llms/deepseek.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/llms/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/llms/hf.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/llms/hf_singleton.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/llms/ollama.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/llms/openai.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/llms/openai_new.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/llms/qwen.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/llms/utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/log.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_agent/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_agent/deepsearch_agent.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_agent/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_chat/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_chat/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_chat/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_chat/simple.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_cube/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_cube/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_cube/general.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_cube/navie.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_cube/utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_feedback/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_feedback/feedback.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_feedback/simple_feedback.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_feedback/utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_os/client.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_os/core.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_os/main.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_os/product.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_os/product_server.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_os/utils/default_config.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_os/utils/format_utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_os/utils/reference_utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/memory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_multi_modal/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_multi_modal/assistant_parser.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_multi_modal/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_multi_modal/file_content_parser.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_multi_modal/image_parser.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_multi_modal/string_parser.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_multi_modal/system_parser.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_multi_modal/text_content_parser.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_multi_modal/tool_parser.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_multi_modal/user_parser.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_multi_modal/utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/simple_struct.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/strategy_struct.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/analyzer/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/analyzer/api_analyzer.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/analyzer/eval_analyzer.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/analyzer/mos_for_test_scheduler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/analyzer/scheduler_for_eval.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/base_mixins/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/base_mixins/memory_ops.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/base_mixins/queue_ops.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/base_mixins/web_log_ops.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/base_scheduler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/general_modules/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/general_modules/api_misc.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/general_modules/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/general_modules/init_components_for_scheduler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/general_modules/misc.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/general_modules/scheduler_logger.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/general_modules/task_threads.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/general_scheduler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/memory_manage_modules/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/memory_manage_modules/activation_memory_manager.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/memory_manage_modules/enhancement_pipeline.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/memory_manage_modules/filter_pipeline.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/memory_manage_modules/memory_filter.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/memory_manage_modules/post_processor.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/memory_manage_modules/rerank_pipeline.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/memory_manage_modules/retriever.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/memory_manage_modules/search_pipeline.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/memory_manage_modules/search_service.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/monitors/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/monitors/dispatcher_monitor.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/monitors/general_monitor.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/monitors/task_schedule_monitor.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/optimized_scheduler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/orm_modules/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/orm_modules/api_redis_model.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/orm_modules/base_model.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/orm_modules/monitor_models.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/orm_modules/redis_model.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/scheduler_factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/schemas/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/schemas/analyzer_schemas.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/schemas/api_schemas.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/schemas/general_schemas.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/schemas/message_schemas.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/schemas/monitor_schemas.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/schemas/task_schemas.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/base_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/context.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/dispatcher.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/handlers/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/handlers/add_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/handlers/answer_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/handlers/feedback_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_read_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_reorganize_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/handlers/memory_update_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/handlers/pref_add_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/handlers/query_handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/local_queue.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/orchestrator.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/redis_queue.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/registry.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/task_schedule_modules/task_queue.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/utils/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/utils/api_utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/utils/config_utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/utils/db_utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/utils/filter_utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/utils/metrics.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/utils/misc_utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/utils/monitor_event_utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/utils/status_tracker.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/webservice_modules/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_scheduler/webservice_modules/redis_service.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_user/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_user/mysql_persistent_user_manager.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_user/mysql_user_manager.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_user/persistent_factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_user/persistent_user_manager.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_user/redis_persistent_user_manager.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_user/user_manager.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/activation/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/activation/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/activation/item.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/activation/kv.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/activation/vllmkv.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/parametric/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/parametric/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/parametric/item.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/parametric/lora.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/general.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/item.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/naive.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/prefer_text_memory/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/prefer_text_memory/adder.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/prefer_text_memory/config.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/prefer_text_memory/extractor.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/prefer_text_memory/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/prefer_text_memory/retrievers.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/prefer_text_memory/spliter.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/prefer_text_memory/utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/preference.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/simple_preference.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/simple_tree.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/organize/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/organize/handler.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/organize/history_manager.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/organize/manager.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/organize/relation_reason_detector.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/organize/reorganizer.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/advanced_searcher.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/bm25_util.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/bochasearch.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever_factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/pre_update.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/reasoner.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/recall.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/reranker.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/retrieval_mid_structs.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/retrieve_utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/task_goal_parser.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memos_tools/dinding_report_bot.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memos_tools/lockfree_dict.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memos_tools/notification_service.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memos_tools/notification_utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memos_tools/singleton.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memos_tools/thread_safe_dict.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/memos_tools/thread_safe_dict_segment.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/multi_mem_cube/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/multi_mem_cube/composite_cube.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/multi_mem_cube/views.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/parsers/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/parsers/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/parsers/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/parsers/markitdown.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/concat.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/cosine_local.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/http_bge.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/http_bge_strategy.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/noop.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/strategies/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/strategies/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/strategies/concat_background.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/strategies/concat_docsource.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/strategies/dialogue_common.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/strategies/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/strategies/single_turn.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/reranker/strategies/singleturn_outmem.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/search/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/search/search_service.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/settings.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/advanced_search_prompts.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/cloud_service_prompt.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/instruction_completion.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/mem_agent_prompts.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/mem_feedback_prompts.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/mem_reader_prompts.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/mem_reader_strategy_prompts.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/mem_scheduler_prompts.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/mem_search_prompts.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/mos_prompts.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/prefer_complete_prompt.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/skill_mem_prompt.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/tool_mem_prompts.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/templates/tree_reorganize_prompts.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/general_types.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/chat_completion_assistant_message_param.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_image_param.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_input_audio_param.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_param.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_refusal_param.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_text_param.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/chat_completion_message_custom_tool_call_param.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/chat_completion_message_function_tool_call_param.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/chat_completion_message_param.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/chat_completion_message_tool_call_union_param.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/chat_completion_system_message_param.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/chat_completion_tool_message_param.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/types/openai_chat_completion_types/chat_completion_user_message_param.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/utils.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/vec_dbs/__init__.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/vec_dbs/base.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/vec_dbs/factory.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/src/memos/vec_dbs/item.py +0 -0
- {memoryos-2.0.5 → memoryos-2.0.6}/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.6
|
|
4
4
|
Summary: Intelligence Begins with Memory
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
License-File: LICENSE
|
|
@@ -148,12 +148,12 @@ Get Free API: [Try API](https://memos-dashboard.openmem.net/quickstart/?source=g
|
|
|
148
148
|
## 🦞 Enhanced OpenClaw with MemOS Plugin
|
|
149
149
|

|
|
150
150
|
|
|
151
|
-
- **
|
|
152
|
-
- **
|
|
153
|
-
|
|
151
|
+
- [**72% lower token usage**](https://x.com/MemOS_dev/status/2020854044583924111) – intelligent memory retrieval instead of loading full chat history
|
|
152
|
+
- [**Multi-agent memory sharing**](https://x.com/MemOS_dev/status/2020538135487062094) – multi-instance agents share memory via same user_id. Automatic context handoff.
|
|
153
|
+
|
|
154
|
+
🦞 Your lobster now has a working memory system.
|
|
154
155
|
|
|
155
156
|
Get your API key: [MemOS Dashboard](https://memos-dashboard.openmem.net/cn/login/)
|
|
156
|
-
Your lobster now has a working memory system.
|
|
157
157
|
Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)
|
|
158
158
|
|
|
159
159
|
## 📌 MemOS: Memory Operating System for AI Agents
|
|
@@ -67,12 +67,12 @@ Get Free API: [Try API](https://memos-dashboard.openmem.net/quickstart/?source=g
|
|
|
67
67
|
## 🦞 Enhanced OpenClaw with MemOS Plugin
|
|
68
68
|

|
|
69
69
|
|
|
70
|
-
- **
|
|
71
|
-
- **
|
|
72
|
-
|
|
70
|
+
- [**72% lower token usage**](https://x.com/MemOS_dev/status/2020854044583924111) – intelligent memory retrieval instead of loading full chat history
|
|
71
|
+
- [**Multi-agent memory sharing**](https://x.com/MemOS_dev/status/2020538135487062094) – multi-instance agents share memory via same user_id. Automatic context handoff.
|
|
72
|
+
|
|
73
|
+
🦞 Your lobster now has a working memory system.
|
|
73
74
|
|
|
74
75
|
Get your API key: [MemOS Dashboard](https://memos-dashboard.openmem.net/cn/login/)
|
|
75
|
-
Your lobster now has a working memory system.
|
|
76
76
|
Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)
|
|
77
77
|
|
|
78
78
|
## 📌 MemOS: Memory Operating System for AI Agents
|
|
@@ -335,7 +335,6 @@ class APIConfig:
|
|
|
335
335
|
# validation requirements during tests/import.
|
|
336
336
|
"api_base": os.getenv("MEMRADER_API_BASE", "https://api.openai.com/v1"),
|
|
337
337
|
"remove_think_prefix": True,
|
|
338
|
-
"extra_body": {"chat_template_kwargs": {"enable_thinking": False}},
|
|
339
338
|
},
|
|
340
339
|
}
|
|
341
340
|
|
|
@@ -531,7 +530,6 @@ class APIConfig:
|
|
|
531
530
|
"api_key": os.getenv("MEMRADER_API_KEY", "EMPTY"),
|
|
532
531
|
"api_base": os.getenv("MEMRADER_API_BASE"),
|
|
533
532
|
"remove_think_prefix": True,
|
|
534
|
-
"extra_body": {"chat_template_kwargs": {"enable_thinking": False}},
|
|
535
533
|
},
|
|
536
534
|
},
|
|
537
535
|
"embedder": APIConfig.get_embedder_config(),
|
|
@@ -130,6 +130,7 @@ class ChatHandler(BaseHandler):
|
|
|
130
130
|
include_preference=chat_req.include_preference,
|
|
131
131
|
pref_top_k=chat_req.pref_top_k,
|
|
132
132
|
filter=chat_req.filter,
|
|
133
|
+
relativity=chat_req.relativity,
|
|
133
134
|
)
|
|
134
135
|
|
|
135
136
|
search_response = self.search_handler.handle_search_memories(search_req)
|
|
@@ -269,6 +270,7 @@ class ChatHandler(BaseHandler):
|
|
|
269
270
|
include_preference=chat_req.include_preference,
|
|
270
271
|
pref_top_k=chat_req.pref_top_k,
|
|
271
272
|
filter=chat_req.filter,
|
|
273
|
+
relativity=chat_req.relativity,
|
|
272
274
|
)
|
|
273
275
|
|
|
274
276
|
search_response = self.search_handler.handle_search_memories(search_req)
|
|
@@ -811,6 +813,7 @@ class ChatHandler(BaseHandler):
|
|
|
811
813
|
include_preference=chat_req.include_preference,
|
|
812
814
|
pref_top_k=chat_req.pref_top_k,
|
|
813
815
|
filter=chat_req.filter,
|
|
816
|
+
relativity=chat_req.relativity,
|
|
814
817
|
)
|
|
815
818
|
|
|
816
819
|
search_response = self.search_handler.handle_search_memories(search_req)
|
|
@@ -202,6 +202,20 @@ def handle_get_memory(memory_id: str, naive_mem_cube: NaiveMemCube) -> GetMemory
|
|
|
202
202
|
# Get the data from whichever memory source succeeded
|
|
203
203
|
data = (memory or pref).model_dump() if (memory or pref) else None
|
|
204
204
|
|
|
205
|
+
if data is not None:
|
|
206
|
+
# For each returned item, tackle with metadata.info project_id /
|
|
207
|
+
# operation / manager_user_id
|
|
208
|
+
metadata = data.get("metadata", None)
|
|
209
|
+
if metadata is not None and isinstance(metadata, dict):
|
|
210
|
+
info = metadata.get("info", None)
|
|
211
|
+
if info is not None and isinstance(info, dict):
|
|
212
|
+
for key in ("project_id", "operation", "manager_user_id"):
|
|
213
|
+
if key not in info:
|
|
214
|
+
continue
|
|
215
|
+
value = info.pop(key)
|
|
216
|
+
if key not in metadata:
|
|
217
|
+
metadata[key] = value
|
|
218
|
+
|
|
205
219
|
return GetMemoryResponse(
|
|
206
220
|
message="Memory retrieved successfully"
|
|
207
221
|
if data
|
|
@@ -241,6 +255,25 @@ def handle_get_memory_by_ids(
|
|
|
241
255
|
except Exception:
|
|
242
256
|
continue
|
|
243
257
|
|
|
258
|
+
# For each returned item, tackle with metadata.info project_id /
|
|
259
|
+
# operation / manager_user_id
|
|
260
|
+
for item in memories:
|
|
261
|
+
if not isinstance(item, dict):
|
|
262
|
+
continue
|
|
263
|
+
metadata = item.get("metadata")
|
|
264
|
+
if not isinstance(metadata, dict):
|
|
265
|
+
continue
|
|
266
|
+
info = metadata.get("info")
|
|
267
|
+
if not isinstance(info, dict):
|
|
268
|
+
continue
|
|
269
|
+
|
|
270
|
+
for key in ("project_id", "operation", "manager_user_id"):
|
|
271
|
+
if key not in info:
|
|
272
|
+
continue
|
|
273
|
+
value = info.pop(key)
|
|
274
|
+
if key not in metadata:
|
|
275
|
+
metadata[key] = value
|
|
276
|
+
|
|
244
277
|
return GetMemoryResponse(
|
|
245
278
|
message="Memories retrieved successfully", code=200, data={"memories": memories}
|
|
246
279
|
)
|
|
@@ -345,6 +378,25 @@ def handle_get_memories(
|
|
|
345
378
|
)
|
|
346
379
|
format_preferences = [format_memory_item(item, save_sources=False) for item in preferences]
|
|
347
380
|
|
|
381
|
+
# For each returned item, tackle with metadata.info project_id /
|
|
382
|
+
# operation / manager_user_id
|
|
383
|
+
for item in format_preferences:
|
|
384
|
+
if not isinstance(item, dict):
|
|
385
|
+
continue
|
|
386
|
+
metadata = item.get("metadata")
|
|
387
|
+
if not isinstance(metadata, dict):
|
|
388
|
+
continue
|
|
389
|
+
info = metadata.get("info")
|
|
390
|
+
if not isinstance(info, dict):
|
|
391
|
+
continue
|
|
392
|
+
|
|
393
|
+
for key in ("project_id", "operation", "manager_user_id"):
|
|
394
|
+
if key not in info:
|
|
395
|
+
continue
|
|
396
|
+
value = info.pop(key)
|
|
397
|
+
if key not in metadata:
|
|
398
|
+
metadata[key] = value
|
|
399
|
+
|
|
348
400
|
results = post_process_pref_mem(
|
|
349
401
|
results, format_preferences, get_mem_req.mem_cube_id, get_mem_req.include_preference
|
|
350
402
|
)
|
|
@@ -412,6 +464,12 @@ def handle_get_memories_dashboard(
|
|
|
412
464
|
get_mem_req: GetMemoryDashboardRequest, naive_mem_cube: NaiveMemCube
|
|
413
465
|
) -> GetMemoryResponse:
|
|
414
466
|
results: dict[str, Any] = {"text_mem": [], "pref_mem": [], "tool_mem": [], "skill_mem": []}
|
|
467
|
+
# for statistics
|
|
468
|
+
total_text_nodes, total_tool_nodes, total_skill_nodes, total_preference_nodes = 0, 0, 0, 0
|
|
469
|
+
total_tool_nodes = 0
|
|
470
|
+
total_skill_nodes = 0
|
|
471
|
+
total_preference_nodes = 0
|
|
472
|
+
|
|
415
473
|
text_memory_type = ["WorkingMemory", "LongTermMemory", "UserMemory", "OuterMemory"]
|
|
416
474
|
text_memories_info = naive_mem_cube.text_mem.get_all(
|
|
417
475
|
user_name=get_mem_req.mem_cube_id,
|
|
@@ -421,7 +479,7 @@ def handle_get_memories_dashboard(
|
|
|
421
479
|
filter=get_mem_req.filter,
|
|
422
480
|
memory_type=text_memory_type,
|
|
423
481
|
)
|
|
424
|
-
text_memories,
|
|
482
|
+
text_memories, total_text_nodes = text_memories_info["nodes"], text_memories_info["total_nodes"]
|
|
425
483
|
|
|
426
484
|
# Group text memories by cube_id from metadata.user_name
|
|
427
485
|
text_mem_by_cube: dict[str, list] = {}
|
|
@@ -453,7 +511,7 @@ def handle_get_memories_dashboard(
|
|
|
453
511
|
filter=get_mem_req.filter,
|
|
454
512
|
memory_type=["ToolSchemaMemory", "ToolTrajectoryMemory"],
|
|
455
513
|
)
|
|
456
|
-
tool_memories,
|
|
514
|
+
tool_memories, total_tool_nodes = (
|
|
457
515
|
tool_memories_info["nodes"],
|
|
458
516
|
tool_memories_info["total_nodes"],
|
|
459
517
|
)
|
|
@@ -488,7 +546,7 @@ def handle_get_memories_dashboard(
|
|
|
488
546
|
filter=get_mem_req.filter,
|
|
489
547
|
memory_type=["SkillMemory"],
|
|
490
548
|
)
|
|
491
|
-
skill_memories,
|
|
549
|
+
skill_memories, total_skill_nodes = (
|
|
492
550
|
skill_memories_info["nodes"],
|
|
493
551
|
skill_memories_info["total_nodes"],
|
|
494
552
|
)
|
|
@@ -515,7 +573,6 @@ def handle_get_memories_dashboard(
|
|
|
515
573
|
]
|
|
516
574
|
|
|
517
575
|
preferences: list[TextualMemoryItem] = []
|
|
518
|
-
total_preference_nodes = 0
|
|
519
576
|
|
|
520
577
|
format_preferences = []
|
|
521
578
|
if get_mem_req.include_preference and naive_mem_cube.pref_mem is not None:
|
|
@@ -578,4 +635,13 @@ def handle_get_memories_dashboard(
|
|
|
578
635
|
"skill_mem": results.get("skill_mem", []),
|
|
579
636
|
}
|
|
580
637
|
|
|
638
|
+
# statistics
|
|
639
|
+
statistics = {
|
|
640
|
+
"total_text_nodes": total_text_nodes,
|
|
641
|
+
"total_tool_nodes": total_tool_nodes,
|
|
642
|
+
"total_skill_nodes": total_skill_nodes,
|
|
643
|
+
"total_preference_nodes": total_preference_nodes,
|
|
644
|
+
}
|
|
645
|
+
filtered_results["statistics"] = statistics
|
|
646
|
+
|
|
581
647
|
return GetMemoryResponse(message="Memories retrieved successfully", data=filtered_results)
|
|
@@ -120,11 +120,14 @@ class SearchHandler(BaseHandler):
|
|
|
120
120
|
if not isinstance(mem, dict):
|
|
121
121
|
continue
|
|
122
122
|
meta = mem.get("metadata", {})
|
|
123
|
-
|
|
123
|
+
if key == "text_mem":
|
|
124
|
+
score = meta.get("relativity", 1.0) if isinstance(meta, dict) else 1.0
|
|
125
|
+
else:
|
|
126
|
+
score = meta.get("score", 1.0) if isinstance(meta, dict) else 1.0
|
|
124
127
|
try:
|
|
125
|
-
score_val = float(score) if score is not None else
|
|
128
|
+
score_val = float(score) if score is not None else 1.0
|
|
126
129
|
except (TypeError, ValueError):
|
|
127
|
-
score_val =
|
|
130
|
+
score_val = 1.0
|
|
128
131
|
if score_val >= relativity:
|
|
129
132
|
filtered.append(mem)
|
|
130
133
|
|
|
@@ -220,7 +223,11 @@ class SearchHandler(BaseHandler):
|
|
|
220
223
|
# Flatten preference memories
|
|
221
224
|
for bucket_idx, bucket in enumerate(pref_buckets):
|
|
222
225
|
for mem in bucket.get("memories", []):
|
|
223
|
-
|
|
226
|
+
meta = mem.get("metadata", {})
|
|
227
|
+
if isinstance(meta, dict):
|
|
228
|
+
score = meta.get("score", meta.get("relativity", 0.0))
|
|
229
|
+
else:
|
|
230
|
+
score = 0.0
|
|
224
231
|
flat.append(
|
|
225
232
|
("preference", bucket_idx, mem, float(score) if score is not None else 0.0)
|
|
226
233
|
)
|
|
@@ -98,6 +98,15 @@ class ChatRequest(BaseRequest):
|
|
|
98
98
|
add_message_on_answer: bool = Field(True, description="Add dialogs to memory after chat")
|
|
99
99
|
manager_user_id: str | None = Field(None, description="Manager User ID")
|
|
100
100
|
project_id: str | None = Field(None, description="Project ID")
|
|
101
|
+
relativity: float = Field(
|
|
102
|
+
0.0,
|
|
103
|
+
ge=0,
|
|
104
|
+
description=(
|
|
105
|
+
"Relevance threshold for recalled memories. "
|
|
106
|
+
"Only memories with metadata.relativity >= relativity will be returned. "
|
|
107
|
+
"Use 0 to disable threshold filtering. Default: 0.3."
|
|
108
|
+
),
|
|
109
|
+
)
|
|
101
110
|
|
|
102
111
|
# ==== Filter conditions ====
|
|
103
112
|
filter: dict[str, Any] | None = Field(
|
|
@@ -775,6 +784,15 @@ class APIChatCompleteRequest(BaseRequest):
|
|
|
775
784
|
add_message_on_answer: bool = Field(True, description="Add dialogs to memory after chat")
|
|
776
785
|
manager_user_id: str | None = Field(None, description="Manager User ID")
|
|
777
786
|
project_id: str | None = Field(None, description="Project ID")
|
|
787
|
+
relativity: float = Field(
|
|
788
|
+
0.0,
|
|
789
|
+
ge=0,
|
|
790
|
+
description=(
|
|
791
|
+
"Relevance threshold for recalled memories. "
|
|
792
|
+
"Only memories with metadata.relativity >= relativity will be returned. "
|
|
793
|
+
"Use 0 to disable threshold filtering. Default: 0.3."
|
|
794
|
+
),
|
|
795
|
+
)
|
|
778
796
|
|
|
779
797
|
# ==== Filter conditions ====
|
|
780
798
|
filter: dict[str, Any] | None = Field(
|
|
@@ -53,7 +53,6 @@ from memos.api.product_models import (
|
|
|
53
53
|
SuggestionResponse,
|
|
54
54
|
TaskQueueResponse,
|
|
55
55
|
)
|
|
56
|
-
from memos.graph_dbs.polardb import PolarDBGraphDB
|
|
57
56
|
from memos.log import get_logger
|
|
58
57
|
from memos.mem_scheduler.base_scheduler import BaseScheduler
|
|
59
58
|
from memos.mem_scheduler.utils.status_tracker import TaskStatusTracker
|
|
@@ -371,15 +370,6 @@ def feedback_memories(feedback_req: APIFeedbackRequest):
|
|
|
371
370
|
)
|
|
372
371
|
def get_user_names_by_memory_ids(request: GetUserNamesByMemoryIdsRequest):
|
|
373
372
|
"""Get user names by memory ids."""
|
|
374
|
-
if not isinstance(graph_db, PolarDBGraphDB):
|
|
375
|
-
raise HTTPException(
|
|
376
|
-
status_code=400,
|
|
377
|
-
detail=(
|
|
378
|
-
"graph_db must be an instance of PolarDBGraphDB to use "
|
|
379
|
-
"get_user_names_by_memory_ids"
|
|
380
|
-
f"current graph_db is: {graph_db.__class__.__name__}"
|
|
381
|
-
),
|
|
382
|
-
)
|
|
383
373
|
result = graph_db.get_user_names_by_memory_ids(memory_ids=request.memory_ids)
|
|
384
374
|
if vector_db:
|
|
385
375
|
prefs = []
|
|
@@ -111,13 +111,7 @@ class VLLMLLM(BaseLLM):
|
|
|
111
111
|
"temperature": kwargs.get("temperature", self.config.temperature),
|
|
112
112
|
"max_tokens": kwargs.get("max_tokens", self.config.max_tokens),
|
|
113
113
|
"top_p": kwargs.get("top_p", self.config.top_p),
|
|
114
|
-
"extra_body":
|
|
115
|
-
"chat_template_kwargs": {
|
|
116
|
-
"enable_thinking": kwargs.get(
|
|
117
|
-
"enable_thinking", self.config.enable_thinking
|
|
118
|
-
)
|
|
119
|
-
}
|
|
120
|
-
},
|
|
114
|
+
"extra_body": kwargs.get("extra_body", self.config.extra_body),
|
|
121
115
|
}
|
|
122
116
|
if kwargs.get("tools"):
|
|
123
117
|
completion_kwargs["tools"] = kwargs.get("tools")
|
|
@@ -175,13 +169,7 @@ class VLLMLLM(BaseLLM):
|
|
|
175
169
|
"max_tokens": kwargs.get("max_tokens", self.config.max_tokens),
|
|
176
170
|
"top_p": kwargs.get("top_p", self.config.top_p),
|
|
177
171
|
"stream": True,
|
|
178
|
-
"extra_body":
|
|
179
|
-
"chat_template_kwargs": {
|
|
180
|
-
"enable_thinking": kwargs.get(
|
|
181
|
-
"enable_thinking", self.config.enable_thinking
|
|
182
|
-
)
|
|
183
|
-
}
|
|
184
|
-
},
|
|
172
|
+
"extra_body": kwargs.get("extra_body", self.config.extra_body),
|
|
185
173
|
}
|
|
186
174
|
|
|
187
175
|
stream = self.client.chat.completions.create(**completion_kwargs)
|
|
@@ -646,6 +646,7 @@ class MultiModalStructMemReader(SimpleStructMemReader):
|
|
|
646
646
|
|
|
647
647
|
return None
|
|
648
648
|
|
|
649
|
+
@timed
|
|
649
650
|
def _process_string_fine(
|
|
650
651
|
self,
|
|
651
652
|
fast_memory_items: list[TextualMemoryItem],
|
|
@@ -883,6 +884,7 @@ class MultiModalStructMemReader(SimpleStructMemReader):
|
|
|
883
884
|
logger.error(f"[MultiModalFine] Error calling LLM for tool trajectory: {e}")
|
|
884
885
|
return []
|
|
885
886
|
|
|
887
|
+
@timed
|
|
886
888
|
def _process_tool_trajectory_fine(
|
|
887
889
|
self, fast_memory_items: list[TextualMemoryItem], info: dict[str, Any], **kwargs
|
|
888
890
|
) -> list[TextualMemoryItem]:
|
{memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_multi_modal/multi_modal_parser.py
RENAMED
|
@@ -11,6 +11,7 @@ from memos.llms.base import BaseLLM
|
|
|
11
11
|
from memos.log import get_logger
|
|
12
12
|
from memos.memories.textual.item import SourceMessage, TextualMemoryItem
|
|
13
13
|
from memos.types import MessagesType
|
|
14
|
+
from memos.utils import timed
|
|
14
15
|
|
|
15
16
|
from .assistant_parser import AssistantParser
|
|
16
17
|
from .base import BaseMessageParser
|
|
@@ -120,6 +121,7 @@ class MultiModalParser:
|
|
|
120
121
|
logger.warning(f"[MultiModalParser] Could not determine parser for message: {message}")
|
|
121
122
|
return None
|
|
122
123
|
|
|
124
|
+
@timed
|
|
123
125
|
def parse(
|
|
124
126
|
self,
|
|
125
127
|
message: MessagesType,
|
|
@@ -157,6 +159,7 @@ class MultiModalParser:
|
|
|
157
159
|
logger.error(f"[MultiModalParser] Error parsing message: {e}")
|
|
158
160
|
return []
|
|
159
161
|
|
|
162
|
+
@timed
|
|
160
163
|
def parse_batch(
|
|
161
164
|
self,
|
|
162
165
|
messages: list[MessagesType],
|
|
@@ -182,6 +185,7 @@ class MultiModalParser:
|
|
|
182
185
|
results.append(items)
|
|
183
186
|
return results
|
|
184
187
|
|
|
188
|
+
@timed
|
|
185
189
|
def process_transfer(
|
|
186
190
|
self,
|
|
187
191
|
source: SourceMessage,
|
{memoryos-2.0.5 → memoryos-2.0.6}/src/memos/mem_reader/read_skill_memory/process_skill_memory.py
RENAMED
|
@@ -36,6 +36,7 @@ from memos.templates.skill_mem_prompt import (
|
|
|
36
36
|
TOOL_GENERATION_PROMPT,
|
|
37
37
|
)
|
|
38
38
|
from memos.types import MessageList
|
|
39
|
+
from memos.utils import timed
|
|
39
40
|
|
|
40
41
|
|
|
41
42
|
load_dotenv()
|
|
@@ -52,6 +53,9 @@ def _generate_content_by_llm(llm: BaseLLM, prompt_template: str, **kwargs) -> An
|
|
|
52
53
|
try:
|
|
53
54
|
prompt = prompt_template.format(**kwargs)
|
|
54
55
|
response = llm.generate([{"role": "user", "content": prompt}])
|
|
56
|
+
if not response:
|
|
57
|
+
logger.warning("[PROCESS_SKILLS] LLM returned empty or invalid response")
|
|
58
|
+
return {} if "json" in prompt_template.lower() else ""
|
|
55
59
|
if "json" in prompt_template.lower():
|
|
56
60
|
response = response.replace("```json", "").replace("```", "").strip()
|
|
57
61
|
return json.loads(response)
|
|
@@ -61,6 +65,7 @@ def _generate_content_by_llm(llm: BaseLLM, prompt_template: str, **kwargs) -> An
|
|
|
61
65
|
return {} if "json" in prompt_template.lower() else ""
|
|
62
66
|
|
|
63
67
|
|
|
68
|
+
@timed
|
|
64
69
|
def _batch_extract_skills(
|
|
65
70
|
task_chunks: dict[str, MessageList],
|
|
66
71
|
related_memories_map: dict[str, list[TextualMemoryItem]],
|
|
@@ -94,6 +99,7 @@ def _batch_extract_skills(
|
|
|
94
99
|
return results
|
|
95
100
|
|
|
96
101
|
|
|
102
|
+
@timed
|
|
97
103
|
def _batch_generate_skill_details(
|
|
98
104
|
raw_skills_data: list[tuple[dict[str, Any], str, MessageList]],
|
|
99
105
|
related_skill_memories_map: dict[str, list[TextualMemoryItem]],
|
|
@@ -436,6 +442,9 @@ def _extract_skill_memory_by_llm(
|
|
|
436
442
|
skills_llm = os.getenv("SKILLS_LLM", None)
|
|
437
443
|
llm_kwargs = {"model_name_or_path": skills_llm} if skills_llm else {}
|
|
438
444
|
response_text = llm.generate(prompt, **llm_kwargs)
|
|
445
|
+
if not response_text:
|
|
446
|
+
logger.warning("[PROCESS_SKILLS] LLM returned empty or invalid response")
|
|
447
|
+
continue
|
|
439
448
|
# Clean up response (remove Markdown code blocks if present)
|
|
440
449
|
logger.info(f"[Skill Memory]: response_text {response_text}")
|
|
441
450
|
response_text = response_text.strip()
|
|
@@ -561,6 +570,9 @@ def _extract_skill_memory_by_llm_md(
|
|
|
561
570
|
skills_llm = os.getenv("SKILLS_LLM", None)
|
|
562
571
|
llm_kwargs = {"model_name_or_path": skills_llm} if skills_llm else {}
|
|
563
572
|
response_text = llm.generate(prompt, **llm_kwargs)
|
|
573
|
+
if not response_text:
|
|
574
|
+
logger.warning("[PROCESS_SKILLS] LLM returned empty or invalid response")
|
|
575
|
+
continue
|
|
564
576
|
# Clean up response (remove Markdown code blocks if present)
|
|
565
577
|
logger.info(f"[Skill Memory]: response_text {response_text}")
|
|
566
578
|
response_text = response_text.strip()
|
|
@@ -641,26 +653,22 @@ def _rewrite_query(task_type: str, messages: MessageList, llm: BaseLLM, rewrite_
|
|
|
641
653
|
)
|
|
642
654
|
prompt = [{"role": "user", "content": prompt_content}]
|
|
643
655
|
|
|
644
|
-
# Call LLM to rewrite the query
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
return response_text
|
|
652
|
-
except Exception as e:
|
|
656
|
+
# Call LLM to rewrite the query
|
|
657
|
+
try:
|
|
658
|
+
response_text = llm.generate(prompt)
|
|
659
|
+
# Clean up response (remove any markdown formatting if present)
|
|
660
|
+
if response_text and isinstance(response_text, str):
|
|
661
|
+
return response_text.strip()
|
|
662
|
+
else:
|
|
653
663
|
logger.warning(
|
|
654
|
-
|
|
664
|
+
"[PROCESS_SKILLS] LLM returned empty or invalid response, returning first message content"
|
|
655
665
|
)
|
|
656
|
-
if
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
# Fallback (should not reach here due to return in exception handling)
|
|
663
|
-
return messages[0]["content"] if messages else ""
|
|
666
|
+
return messages[0]["content"] if messages else ""
|
|
667
|
+
except Exception as e:
|
|
668
|
+
logger.warning(
|
|
669
|
+
f"[PROCESS_SKILLS] LLM query rewrite failed: {e}, returning first message content"
|
|
670
|
+
)
|
|
671
|
+
return messages[0]["content"] if messages else ""
|
|
664
672
|
|
|
665
673
|
|
|
666
674
|
@require_python_package(
|
|
@@ -751,6 +759,7 @@ def _delete_skills(
|
|
|
751
759
|
logger.warning(f"Error deleting local file: {e}")
|
|
752
760
|
|
|
753
761
|
|
|
762
|
+
@timed
|
|
754
763
|
def _write_skills_to_file(
|
|
755
764
|
skill_memory: dict[str, Any], info: dict[str, Any], skills_dir_config: dict[str, Any]
|
|
756
765
|
) -> str:
|
|
@@ -995,6 +1004,7 @@ def _get_skill_file_storage_location() -> str:
|
|
|
995
1004
|
return "LOCAL"
|
|
996
1005
|
|
|
997
1006
|
|
|
1007
|
+
@timed
|
|
998
1008
|
def process_skill_memory_fine(
|
|
999
1009
|
fast_memory_items: list[TextualMemoryItem],
|
|
1000
1010
|
info: dict[str, Any],
|
|
@@ -1059,6 +1069,7 @@ def process_skill_memory_fine(
|
|
|
1059
1069
|
)
|
|
1060
1070
|
related_skill_memories_by_task[task_name] = []
|
|
1061
1071
|
|
|
1072
|
+
@timed
|
|
1062
1073
|
def _simple_extract():
|
|
1063
1074
|
# simple extract skill memory, only one stage
|
|
1064
1075
|
memories = []
|
|
@@ -1091,6 +1102,7 @@ def process_skill_memory_fine(
|
|
|
1091
1102
|
)
|
|
1092
1103
|
return memories
|
|
1093
1104
|
|
|
1105
|
+
@timed
|
|
1094
1106
|
def _full_extract():
|
|
1095
1107
|
# full extract skill memory, include two stage
|
|
1096
1108
|
raw_extraction_results = _batch_extract_skills(
|