MemoryOS 2.0.3__py3-none-any.whl
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.3.dist-info/METADATA +418 -0
- memoryos-2.0.3.dist-info/RECORD +315 -0
- memoryos-2.0.3.dist-info/WHEEL +4 -0
- memoryos-2.0.3.dist-info/entry_points.txt +3 -0
- memoryos-2.0.3.dist-info/licenses/LICENSE +201 -0
- memos/__init__.py +20 -0
- memos/api/client.py +571 -0
- memos/api/config.py +1018 -0
- memos/api/context/dependencies.py +50 -0
- memos/api/exceptions.py +53 -0
- memos/api/handlers/__init__.py +62 -0
- memos/api/handlers/add_handler.py +158 -0
- memos/api/handlers/base_handler.py +194 -0
- memos/api/handlers/chat_handler.py +1401 -0
- memos/api/handlers/component_init.py +388 -0
- memos/api/handlers/config_builders.py +190 -0
- memos/api/handlers/feedback_handler.py +93 -0
- memos/api/handlers/formatters_handler.py +237 -0
- memos/api/handlers/memory_handler.py +316 -0
- memos/api/handlers/scheduler_handler.py +497 -0
- memos/api/handlers/search_handler.py +222 -0
- memos/api/handlers/suggestion_handler.py +117 -0
- memos/api/mcp_serve.py +614 -0
- memos/api/middleware/request_context.py +101 -0
- memos/api/product_api.py +38 -0
- memos/api/product_models.py +1206 -0
- memos/api/routers/__init__.py +1 -0
- memos/api/routers/product_router.py +477 -0
- memos/api/routers/server_router.py +394 -0
- memos/api/server_api.py +44 -0
- memos/api/start_api.py +433 -0
- memos/chunkers/__init__.py +4 -0
- memos/chunkers/base.py +24 -0
- memos/chunkers/charactertext_chunker.py +41 -0
- memos/chunkers/factory.py +24 -0
- memos/chunkers/markdown_chunker.py +62 -0
- memos/chunkers/sentence_chunker.py +54 -0
- memos/chunkers/simple_chunker.py +50 -0
- memos/cli.py +113 -0
- memos/configs/__init__.py +0 -0
- memos/configs/base.py +82 -0
- memos/configs/chunker.py +59 -0
- memos/configs/embedder.py +88 -0
- memos/configs/graph_db.py +236 -0
- memos/configs/internet_retriever.py +100 -0
- memos/configs/llm.py +151 -0
- memos/configs/mem_agent.py +54 -0
- memos/configs/mem_chat.py +81 -0
- memos/configs/mem_cube.py +105 -0
- memos/configs/mem_os.py +83 -0
- memos/configs/mem_reader.py +91 -0
- memos/configs/mem_scheduler.py +385 -0
- memos/configs/mem_user.py +70 -0
- memos/configs/memory.py +324 -0
- memos/configs/parser.py +38 -0
- memos/configs/reranker.py +18 -0
- memos/configs/utils.py +8 -0
- memos/configs/vec_db.py +80 -0
- memos/context/context.py +355 -0
- memos/dependency.py +52 -0
- memos/deprecation.py +262 -0
- memos/embedders/__init__.py +0 -0
- memos/embedders/ark.py +95 -0
- memos/embedders/base.py +106 -0
- memos/embedders/factory.py +29 -0
- memos/embedders/ollama.py +77 -0
- memos/embedders/sentence_transformer.py +49 -0
- memos/embedders/universal_api.py +51 -0
- memos/exceptions.py +30 -0
- memos/graph_dbs/__init__.py +0 -0
- memos/graph_dbs/base.py +274 -0
- memos/graph_dbs/factory.py +27 -0
- memos/graph_dbs/item.py +46 -0
- memos/graph_dbs/nebular.py +1794 -0
- memos/graph_dbs/neo4j.py +1942 -0
- memos/graph_dbs/neo4j_community.py +1058 -0
- memos/graph_dbs/polardb.py +5446 -0
- memos/hello_world.py +97 -0
- memos/llms/__init__.py +0 -0
- memos/llms/base.py +25 -0
- memos/llms/deepseek.py +13 -0
- memos/llms/factory.py +38 -0
- memos/llms/hf.py +443 -0
- memos/llms/hf_singleton.py +114 -0
- memos/llms/ollama.py +135 -0
- memos/llms/openai.py +222 -0
- memos/llms/openai_new.py +198 -0
- memos/llms/qwen.py +13 -0
- memos/llms/utils.py +14 -0
- memos/llms/vllm.py +218 -0
- memos/log.py +237 -0
- memos/mem_agent/base.py +19 -0
- memos/mem_agent/deepsearch_agent.py +391 -0
- memos/mem_agent/factory.py +36 -0
- memos/mem_chat/__init__.py +0 -0
- memos/mem_chat/base.py +30 -0
- memos/mem_chat/factory.py +21 -0
- memos/mem_chat/simple.py +200 -0
- memos/mem_cube/__init__.py +0 -0
- memos/mem_cube/base.py +30 -0
- memos/mem_cube/general.py +240 -0
- memos/mem_cube/navie.py +172 -0
- memos/mem_cube/utils.py +169 -0
- memos/mem_feedback/base.py +15 -0
- memos/mem_feedback/feedback.py +1192 -0
- memos/mem_feedback/simple_feedback.py +40 -0
- memos/mem_feedback/utils.py +230 -0
- memos/mem_os/client.py +5 -0
- memos/mem_os/core.py +1203 -0
- memos/mem_os/main.py +582 -0
- memos/mem_os/product.py +1608 -0
- memos/mem_os/product_server.py +455 -0
- memos/mem_os/utils/default_config.py +359 -0
- memos/mem_os/utils/format_utils.py +1403 -0
- memos/mem_os/utils/reference_utils.py +162 -0
- memos/mem_reader/__init__.py +0 -0
- memos/mem_reader/base.py +47 -0
- memos/mem_reader/factory.py +53 -0
- memos/mem_reader/memory.py +298 -0
- memos/mem_reader/multi_modal_struct.py +965 -0
- memos/mem_reader/read_multi_modal/__init__.py +43 -0
- memos/mem_reader/read_multi_modal/assistant_parser.py +311 -0
- memos/mem_reader/read_multi_modal/base.py +273 -0
- memos/mem_reader/read_multi_modal/file_content_parser.py +826 -0
- memos/mem_reader/read_multi_modal/image_parser.py +359 -0
- memos/mem_reader/read_multi_modal/multi_modal_parser.py +252 -0
- memos/mem_reader/read_multi_modal/string_parser.py +139 -0
- memos/mem_reader/read_multi_modal/system_parser.py +327 -0
- memos/mem_reader/read_multi_modal/text_content_parser.py +131 -0
- memos/mem_reader/read_multi_modal/tool_parser.py +210 -0
- memos/mem_reader/read_multi_modal/user_parser.py +218 -0
- memos/mem_reader/read_multi_modal/utils.py +358 -0
- memos/mem_reader/simple_struct.py +912 -0
- memos/mem_reader/strategy_struct.py +163 -0
- memos/mem_reader/utils.py +157 -0
- memos/mem_scheduler/__init__.py +0 -0
- memos/mem_scheduler/analyzer/__init__.py +0 -0
- memos/mem_scheduler/analyzer/api_analyzer.py +714 -0
- memos/mem_scheduler/analyzer/eval_analyzer.py +219 -0
- memos/mem_scheduler/analyzer/mos_for_test_scheduler.py +571 -0
- memos/mem_scheduler/analyzer/scheduler_for_eval.py +280 -0
- memos/mem_scheduler/base_scheduler.py +1319 -0
- memos/mem_scheduler/general_modules/__init__.py +0 -0
- memos/mem_scheduler/general_modules/api_misc.py +137 -0
- memos/mem_scheduler/general_modules/base.py +80 -0
- memos/mem_scheduler/general_modules/init_components_for_scheduler.py +425 -0
- memos/mem_scheduler/general_modules/misc.py +313 -0
- memos/mem_scheduler/general_modules/scheduler_logger.py +389 -0
- memos/mem_scheduler/general_modules/task_threads.py +315 -0
- memos/mem_scheduler/general_scheduler.py +1495 -0
- memos/mem_scheduler/memory_manage_modules/__init__.py +5 -0
- memos/mem_scheduler/memory_manage_modules/memory_filter.py +306 -0
- memos/mem_scheduler/memory_manage_modules/retriever.py +547 -0
- memos/mem_scheduler/monitors/__init__.py +0 -0
- memos/mem_scheduler/monitors/dispatcher_monitor.py +366 -0
- memos/mem_scheduler/monitors/general_monitor.py +394 -0
- memos/mem_scheduler/monitors/task_schedule_monitor.py +254 -0
- memos/mem_scheduler/optimized_scheduler.py +410 -0
- memos/mem_scheduler/orm_modules/__init__.py +0 -0
- memos/mem_scheduler/orm_modules/api_redis_model.py +518 -0
- memos/mem_scheduler/orm_modules/base_model.py +729 -0
- memos/mem_scheduler/orm_modules/monitor_models.py +261 -0
- memos/mem_scheduler/orm_modules/redis_model.py +699 -0
- memos/mem_scheduler/scheduler_factory.py +23 -0
- memos/mem_scheduler/schemas/__init__.py +0 -0
- memos/mem_scheduler/schemas/analyzer_schemas.py +52 -0
- memos/mem_scheduler/schemas/api_schemas.py +233 -0
- memos/mem_scheduler/schemas/general_schemas.py +55 -0
- memos/mem_scheduler/schemas/message_schemas.py +173 -0
- memos/mem_scheduler/schemas/monitor_schemas.py +406 -0
- memos/mem_scheduler/schemas/task_schemas.py +132 -0
- memos/mem_scheduler/task_schedule_modules/__init__.py +0 -0
- memos/mem_scheduler/task_schedule_modules/dispatcher.py +740 -0
- memos/mem_scheduler/task_schedule_modules/local_queue.py +247 -0
- memos/mem_scheduler/task_schedule_modules/orchestrator.py +74 -0
- memos/mem_scheduler/task_schedule_modules/redis_queue.py +1385 -0
- memos/mem_scheduler/task_schedule_modules/task_queue.py +162 -0
- memos/mem_scheduler/utils/__init__.py +0 -0
- memos/mem_scheduler/utils/api_utils.py +77 -0
- memos/mem_scheduler/utils/config_utils.py +100 -0
- memos/mem_scheduler/utils/db_utils.py +50 -0
- memos/mem_scheduler/utils/filter_utils.py +176 -0
- memos/mem_scheduler/utils/metrics.py +125 -0
- memos/mem_scheduler/utils/misc_utils.py +290 -0
- memos/mem_scheduler/utils/monitor_event_utils.py +67 -0
- memos/mem_scheduler/utils/status_tracker.py +229 -0
- memos/mem_scheduler/webservice_modules/__init__.py +0 -0
- memos/mem_scheduler/webservice_modules/rabbitmq_service.py +485 -0
- memos/mem_scheduler/webservice_modules/redis_service.py +380 -0
- memos/mem_user/factory.py +94 -0
- memos/mem_user/mysql_persistent_user_manager.py +271 -0
- memos/mem_user/mysql_user_manager.py +502 -0
- memos/mem_user/persistent_factory.py +98 -0
- memos/mem_user/persistent_user_manager.py +260 -0
- memos/mem_user/redis_persistent_user_manager.py +225 -0
- memos/mem_user/user_manager.py +488 -0
- memos/memories/__init__.py +0 -0
- memos/memories/activation/__init__.py +0 -0
- memos/memories/activation/base.py +42 -0
- memos/memories/activation/item.py +56 -0
- memos/memories/activation/kv.py +292 -0
- memos/memories/activation/vllmkv.py +219 -0
- memos/memories/base.py +19 -0
- memos/memories/factory.py +42 -0
- memos/memories/parametric/__init__.py +0 -0
- memos/memories/parametric/base.py +19 -0
- memos/memories/parametric/item.py +11 -0
- memos/memories/parametric/lora.py +41 -0
- memos/memories/textual/__init__.py +0 -0
- memos/memories/textual/base.py +92 -0
- memos/memories/textual/general.py +236 -0
- memos/memories/textual/item.py +304 -0
- memos/memories/textual/naive.py +187 -0
- memos/memories/textual/prefer_text_memory/__init__.py +0 -0
- memos/memories/textual/prefer_text_memory/adder.py +504 -0
- memos/memories/textual/prefer_text_memory/config.py +106 -0
- memos/memories/textual/prefer_text_memory/extractor.py +221 -0
- memos/memories/textual/prefer_text_memory/factory.py +85 -0
- memos/memories/textual/prefer_text_memory/retrievers.py +177 -0
- memos/memories/textual/prefer_text_memory/spliter.py +132 -0
- memos/memories/textual/prefer_text_memory/utils.py +93 -0
- memos/memories/textual/preference.py +344 -0
- memos/memories/textual/simple_preference.py +161 -0
- memos/memories/textual/simple_tree.py +69 -0
- memos/memories/textual/tree.py +459 -0
- memos/memories/textual/tree_text_memory/__init__.py +0 -0
- memos/memories/textual/tree_text_memory/organize/__init__.py +0 -0
- memos/memories/textual/tree_text_memory/organize/handler.py +184 -0
- memos/memories/textual/tree_text_memory/organize/manager.py +518 -0
- memos/memories/textual/tree_text_memory/organize/relation_reason_detector.py +238 -0
- memos/memories/textual/tree_text_memory/organize/reorganizer.py +622 -0
- memos/memories/textual/tree_text_memory/retrieve/__init__.py +0 -0
- memos/memories/textual/tree_text_memory/retrieve/advanced_searcher.py +364 -0
- memos/memories/textual/tree_text_memory/retrieve/bm25_util.py +186 -0
- memos/memories/textual/tree_text_memory/retrieve/bochasearch.py +419 -0
- memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py +270 -0
- memos/memories/textual/tree_text_memory/retrieve/internet_retriever_factory.py +102 -0
- memos/memories/textual/tree_text_memory/retrieve/reasoner.py +61 -0
- memos/memories/textual/tree_text_memory/retrieve/recall.py +497 -0
- memos/memories/textual/tree_text_memory/retrieve/reranker.py +111 -0
- memos/memories/textual/tree_text_memory/retrieve/retrieval_mid_structs.py +16 -0
- memos/memories/textual/tree_text_memory/retrieve/retrieve_utils.py +472 -0
- memos/memories/textual/tree_text_memory/retrieve/searcher.py +848 -0
- memos/memories/textual/tree_text_memory/retrieve/task_goal_parser.py +135 -0
- memos/memories/textual/tree_text_memory/retrieve/utils.py +54 -0
- memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py +387 -0
- memos/memos_tools/dinding_report_bot.py +453 -0
- memos/memos_tools/lockfree_dict.py +120 -0
- memos/memos_tools/notification_service.py +44 -0
- memos/memos_tools/notification_utils.py +142 -0
- memos/memos_tools/singleton.py +174 -0
- memos/memos_tools/thread_safe_dict.py +310 -0
- memos/memos_tools/thread_safe_dict_segment.py +382 -0
- memos/multi_mem_cube/__init__.py +0 -0
- memos/multi_mem_cube/composite_cube.py +86 -0
- memos/multi_mem_cube/single_cube.py +874 -0
- memos/multi_mem_cube/views.py +54 -0
- memos/parsers/__init__.py +0 -0
- memos/parsers/base.py +15 -0
- memos/parsers/factory.py +21 -0
- memos/parsers/markitdown.py +28 -0
- memos/reranker/__init__.py +4 -0
- memos/reranker/base.py +25 -0
- memos/reranker/concat.py +103 -0
- memos/reranker/cosine_local.py +102 -0
- memos/reranker/factory.py +72 -0
- memos/reranker/http_bge.py +324 -0
- memos/reranker/http_bge_strategy.py +327 -0
- memos/reranker/noop.py +19 -0
- memos/reranker/strategies/__init__.py +4 -0
- memos/reranker/strategies/base.py +61 -0
- memos/reranker/strategies/concat_background.py +94 -0
- memos/reranker/strategies/concat_docsource.py +110 -0
- memos/reranker/strategies/dialogue_common.py +109 -0
- memos/reranker/strategies/factory.py +31 -0
- memos/reranker/strategies/single_turn.py +107 -0
- memos/reranker/strategies/singleturn_outmem.py +98 -0
- memos/settings.py +10 -0
- memos/templates/__init__.py +0 -0
- memos/templates/advanced_search_prompts.py +211 -0
- memos/templates/cloud_service_prompt.py +107 -0
- memos/templates/instruction_completion.py +66 -0
- memos/templates/mem_agent_prompts.py +85 -0
- memos/templates/mem_feedback_prompts.py +822 -0
- memos/templates/mem_reader_prompts.py +1096 -0
- memos/templates/mem_reader_strategy_prompts.py +238 -0
- memos/templates/mem_scheduler_prompts.py +626 -0
- memos/templates/mem_search_prompts.py +93 -0
- memos/templates/mos_prompts.py +403 -0
- memos/templates/prefer_complete_prompt.py +735 -0
- memos/templates/tool_mem_prompts.py +139 -0
- memos/templates/tree_reorganize_prompts.py +230 -0
- memos/types/__init__.py +34 -0
- memos/types/general_types.py +151 -0
- memos/types/openai_chat_completion_types/__init__.py +15 -0
- memos/types/openai_chat_completion_types/chat_completion_assistant_message_param.py +56 -0
- memos/types/openai_chat_completion_types/chat_completion_content_part_image_param.py +27 -0
- memos/types/openai_chat_completion_types/chat_completion_content_part_input_audio_param.py +23 -0
- memos/types/openai_chat_completion_types/chat_completion_content_part_param.py +43 -0
- memos/types/openai_chat_completion_types/chat_completion_content_part_refusal_param.py +16 -0
- memos/types/openai_chat_completion_types/chat_completion_content_part_text_param.py +16 -0
- memos/types/openai_chat_completion_types/chat_completion_message_custom_tool_call_param.py +27 -0
- memos/types/openai_chat_completion_types/chat_completion_message_function_tool_call_param.py +32 -0
- memos/types/openai_chat_completion_types/chat_completion_message_param.py +18 -0
- memos/types/openai_chat_completion_types/chat_completion_message_tool_call_union_param.py +15 -0
- memos/types/openai_chat_completion_types/chat_completion_system_message_param.py +36 -0
- memos/types/openai_chat_completion_types/chat_completion_tool_message_param.py +30 -0
- memos/types/openai_chat_completion_types/chat_completion_user_message_param.py +34 -0
- memos/utils.py +123 -0
- memos/vec_dbs/__init__.py +0 -0
- memos/vec_dbs/base.py +117 -0
- memos/vec_dbs/factory.py +23 -0
- memos/vec_dbs/item.py +50 -0
- memos/vec_dbs/milvus.py +654 -0
- memos/vec_dbs/qdrant.py +355 -0
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: MemoryOS
|
|
3
|
+
Version: 2.0.3
|
|
4
|
+
Summary: Intelligence Begins with Memory
|
|
5
|
+
License: Apache-2.0
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Keywords: memory,llm,language model,memoryOS,agent,kv cache,lora
|
|
8
|
+
Author: MemTensor
|
|
9
|
+
Author-email: MemTensor@memtensor.cn
|
|
10
|
+
Requires-Python: >=3.10
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
13
|
+
Classifier: Natural Language :: English
|
|
14
|
+
Classifier: Natural Language :: Chinese (Simplified)
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Provides-Extra: all
|
|
24
|
+
Provides-Extra: mem-reader
|
|
25
|
+
Provides-Extra: mem-scheduler
|
|
26
|
+
Provides-Extra: mem-user
|
|
27
|
+
Provides-Extra: pref-mem
|
|
28
|
+
Provides-Extra: tree-mem
|
|
29
|
+
Requires-Dist: cachetools (>=6.0.0) ; extra == "all"
|
|
30
|
+
Requires-Dist: chonkie (>=1.0.7,<2.0.0) ; extra == "all"
|
|
31
|
+
Requires-Dist: chonkie (>=1.0.7,<2.0.0) ; extra == "mem-reader"
|
|
32
|
+
Requires-Dist: concurrent-log-handler (>=0.9.28,<1.0.0)
|
|
33
|
+
Requires-Dist: datasketch (>=1.6.5,<2.0.0) ; extra == "all"
|
|
34
|
+
Requires-Dist: datasketch (>=1.6.5,<2.0.0) ; extra == "pref-mem"
|
|
35
|
+
Requires-Dist: fastapi[all] (>=0.115.12,<0.116.0)
|
|
36
|
+
Requires-Dist: fastmcp (>=2.10.5,<3.0.0)
|
|
37
|
+
Requires-Dist: jieba (>=0.38.1,<0.42.1) ; extra == "all"
|
|
38
|
+
Requires-Dist: langchain-text-splitters (>=1.0.0,<2.0.0) ; extra == "all"
|
|
39
|
+
Requires-Dist: langchain-text-splitters (>=1.0.0,<2.0.0) ; extra == "mem-reader"
|
|
40
|
+
Requires-Dist: markitdown[docx,pdf,pptx,xls,xlsx] (>=0.1.1,<0.2.0) ; extra == "all"
|
|
41
|
+
Requires-Dist: markitdown[docx,pdf,pptx,xls,xlsx] (>=0.1.1,<0.2.0) ; extra == "mem-reader"
|
|
42
|
+
Requires-Dist: neo4j (>=5.28.1,<6.0.0) ; extra == "all"
|
|
43
|
+
Requires-Dist: neo4j (>=5.28.1,<6.0.0) ; extra == "tree-mem"
|
|
44
|
+
Requires-Dist: nltk (>=3.9.1,<4.0.0) ; extra == "all"
|
|
45
|
+
Requires-Dist: ollama (>=0.4.8,<0.5.0)
|
|
46
|
+
Requires-Dist: openai (>=1.77.0,<2.0.0)
|
|
47
|
+
Requires-Dist: pika (>=1.3.2,<2.0.0) ; extra == "all"
|
|
48
|
+
Requires-Dist: pika (>=1.3.2,<2.0.0) ; extra == "mem-scheduler"
|
|
49
|
+
Requires-Dist: prometheus-client (>=0.23.1,<0.24.0)
|
|
50
|
+
Requires-Dist: pymilvus (>=2.5.12,<3.0.0) ; extra == "pref-mem"
|
|
51
|
+
Requires-Dist: pymilvus (>=2.6.1,<3.0.0) ; extra == "all"
|
|
52
|
+
Requires-Dist: pymysql (>=1.1.0,<2.0.0)
|
|
53
|
+
Requires-Dist: pymysql (>=1.1.0,<2.0.0) ; extra == "all"
|
|
54
|
+
Requires-Dist: pymysql (>=1.1.0,<2.0.0) ; extra == "mem-user"
|
|
55
|
+
Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
|
|
56
|
+
Requires-Dist: qdrant-client (>=1.16.0,<2.0.0) ; extra == "all"
|
|
57
|
+
Requires-Dist: rake-nltk (>=1.0.6,<1.1.0) ; extra == "all"
|
|
58
|
+
Requires-Dist: rank-bm25 (>=0.2.2) ; extra == "all"
|
|
59
|
+
Requires-Dist: redis (>=6.2.0,<7.0.0) ; extra == "all"
|
|
60
|
+
Requires-Dist: redis (>=6.2.0,<7.0.0) ; extra == "mem-scheduler"
|
|
61
|
+
Requires-Dist: schedule (>=1.2.2,<2.0.0) ; extra == "all"
|
|
62
|
+
Requires-Dist: schedule (>=1.2.2,<2.0.0) ; extra == "tree-mem"
|
|
63
|
+
Requires-Dist: scikit-learn (>=1.7.0,<2.0.0)
|
|
64
|
+
Requires-Dist: sentence-transformers (>=4.1.0,<5.0.0) ; extra == "all"
|
|
65
|
+
Requires-Dist: sqlalchemy (>=2.0.41,<3.0.0)
|
|
66
|
+
Requires-Dist: tenacity (>=9.1.2,<10.0.0)
|
|
67
|
+
Requires-Dist: torch (>=2.7.1,<3.0.0) ; extra == "all"
|
|
68
|
+
Requires-Dist: transformers (>=4.51.3,<5.0.0)
|
|
69
|
+
Requires-Dist: volcengine-python-sdk (>=4.0.4,<5.0.0) ; extra == "all"
|
|
70
|
+
Project-URL: Documentation, https://memos-docs.openmem.net/home/overview/
|
|
71
|
+
Project-URL: Homepage, https://memos.openmem.net/
|
|
72
|
+
Project-URL: Repository, https://github.com/MemTensor/MemOS
|
|
73
|
+
Project-URL: changelog, https://github.com/MemTensor/MemOS/releases
|
|
74
|
+
Project-URL: download, https://pypi.org/project/MemoryOS/#files
|
|
75
|
+
Project-URL: issues, https://github.com/MemTensor/MemOS/issues
|
|
76
|
+
Project-URL: releasenotes, https://github.com/MemTensor/MemOS/releases
|
|
77
|
+
Description-Content-Type: text/markdown
|
|
78
|
+
|
|
79
|
+
<div align="center">
|
|
80
|
+
<a href="https://memos.openmem.net/">
|
|
81
|
+
<img src="https://statics.memtensor.com.cn/memos/memos-banner.gif" alt="MemOS Banner">
|
|
82
|
+
</a>
|
|
83
|
+
|
|
84
|
+
<h1 align="center">
|
|
85
|
+
<img src="https://statics.memtensor.com.cn/logo/memos_color_m.png" alt="MemOS Logo" width="50"/>
|
|
86
|
+
MemOS 2.0: 星尘(Stardust)
|
|
87
|
+
<img src="https://img.shields.io/badge/status-Preview-blue" alt="Preview Badge"/>
|
|
88
|
+
</h1>
|
|
89
|
+
|
|
90
|
+
<p>
|
|
91
|
+
<a href="https://www.memtensor.com.cn/">
|
|
92
|
+
<img alt="Static Badge" src="https://img.shields.io/badge/Maintained_by-MemTensor-blue">
|
|
93
|
+
</a>
|
|
94
|
+
<a href="https://pypi.org/project/MemoryOS">
|
|
95
|
+
<img src="https://img.shields.io/pypi/v/MemoryOS?label=pypi%20package" alt="PyPI Version">
|
|
96
|
+
</a>
|
|
97
|
+
<a href="https://pypi.org/project/MemoryOS">
|
|
98
|
+
<img src="https://img.shields.io/pypi/pyversions/MemoryOS.svg" alt="Supported Python versions">
|
|
99
|
+
</a>
|
|
100
|
+
<a href="https://pypi.org/project/MemoryOS">
|
|
101
|
+
<img src="https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey" alt="Supported Platforms">
|
|
102
|
+
</a>
|
|
103
|
+
<a href="https://memos-docs.openmem.net/home/overview/">
|
|
104
|
+
<img src="https://img.shields.io/badge/Documentation-view-blue.svg" alt="Documentation">
|
|
105
|
+
</a>
|
|
106
|
+
<a href="https://arxiv.org/abs/2507.03724">
|
|
107
|
+
<img src="https://img.shields.io/badge/arXiv-2507.03724-b31b1b.svg" alt="ArXiv Paper">
|
|
108
|
+
</a>
|
|
109
|
+
<a href="https://github.com/MemTensor/MemOS/discussions">
|
|
110
|
+
<img src="https://img.shields.io/badge/GitHub-Discussions-181717.svg?logo=github" alt="GitHub Discussions">
|
|
111
|
+
</a>
|
|
112
|
+
<a href="https://discord.gg/Txbx3gebZR">
|
|
113
|
+
<img src="https://img.shields.io/badge/Discord-join%20chat-7289DA.svg?logo=discord" alt="Discord">
|
|
114
|
+
</a>
|
|
115
|
+
<a href="https://statics.memtensor.com.cn/memos/qr-code.png">
|
|
116
|
+
<img src="https://img.shields.io/badge/WeChat-Group-07C160.svg?logo=wechat" alt="WeChat Group">
|
|
117
|
+
</a>
|
|
118
|
+
<a href="https://opensource.org/license/apache-2-0/">
|
|
119
|
+
<img src="https://img.shields.io/badge/License-Apache_2.0-green.svg?logo=apache" alt="License">
|
|
120
|
+
</a>
|
|
121
|
+
<a href="https://github.com/IAAR-Shanghai/Awesome-AI-Memory">
|
|
122
|
+
<img alt="Awesome AI Memory" src="https://img.shields.io/badge/Resources-Awesome--AI--Memory-8A2BE2">
|
|
123
|
+
</a>
|
|
124
|
+
</p>
|
|
125
|
+
|
|
126
|
+
<p align="center">
|
|
127
|
+
<strong>🎯 +43.70% Accuracy vs. OpenAI Memory</strong><br/>
|
|
128
|
+
<strong>🏆 Top-tier long-term memory + personalization</strong><br/>
|
|
129
|
+
<strong>💰 Saves 35.24% memory tokens</strong><br/>
|
|
130
|
+
<sub>LoCoMo 75.80 • LongMemEval +40.43% • PrefEval-10 +2568% • PersonaMem +40.75%</sub>
|
|
131
|
+
<a href="https://memos.openmem.net/">
|
|
132
|
+
<img src="https://statics.memtensor.com.cn/memos/github_api_free_banner.gif" alt="MemOS Free API Banner">
|
|
133
|
+
</a>
|
|
134
|
+
|
|
135
|
+
</p>
|
|
136
|
+
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
Get Free API: [Try API](https://memos-dashboard.openmem.net/quickstart/?source=github)
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
<br>
|
|
144
|
+
|
|
145
|
+
## 📌 MemOS: Memory Operating System for AI Agents
|
|
146
|
+
|
|
147
|
+
**MemOS** is a Memory Operating System for LLMs and AI agents that unifies **store / retrieve / manage** for long-term memory, enabling **context-aware and personalized** interactions with **KB**, **multi-modal**, **tool memory**, and **enterprise-grade** optimizations built in.
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
### Key Features
|
|
152
|
+
|
|
153
|
+
- **Unified Memory API**: A single API to add, retrieve, edit, and delete memory—structured as a graph, inspectable and editable by design, not a black-box embedding store.
|
|
154
|
+
- **Multi-Modal Memory**: Natively supports text, images, tool traces, and personas, retrieved and reasoned together in one memory system.
|
|
155
|
+
- **Multi-Cube Knowledge Base Management**: Manage multiple knowledge bases as composable memory cubes, enabling isolation, controlled sharing, and dynamic composition across users, projects, and agents.
|
|
156
|
+
- **Asynchronous Ingestion via MemScheduler**: Run memory operations asynchronously with millisecond-level latency for production stability under high concurrency.
|
|
157
|
+
- **Memory Feedback & Correction**: Refine memory with natural-language feedback—correcting, supplementing, or replacing existing memories over time.
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
### News
|
|
161
|
+
|
|
162
|
+
- **2025-12-24** · 🎉 **MemOS v2.0: Stardust (星尘) Release**
|
|
163
|
+
Comprehensive KB (doc/URL parsing + cross-project sharing), memory feedback & precise deletion, multi-modal memory (images/charts), tool memory for agent planning, Redis Streams scheduling + DB optimizations, streaming/non-streaming chat, MCP upgrade, and lightweight quick/full deployment.
|
|
164
|
+
<details>
|
|
165
|
+
<summary>✨ <b>New Features</b></summary>
|
|
166
|
+
|
|
167
|
+
**Knowledge Base & Memory**
|
|
168
|
+
- Added knowledge base support for long-term memory from documents and URLs
|
|
169
|
+
|
|
170
|
+
**Feedback & Memory Management**
|
|
171
|
+
- Added natural language feedback and correction for memories
|
|
172
|
+
- Added memory deletion API by memory ID
|
|
173
|
+
- Added MCP support for memory deletion and feedback
|
|
174
|
+
|
|
175
|
+
**Conversation & Retrieval**
|
|
176
|
+
- Added chat API with memory-aware retrieval
|
|
177
|
+
- Added memory filtering with custom tags (Cloud & Open Source)
|
|
178
|
+
|
|
179
|
+
**Multimodal & Tool Memory**
|
|
180
|
+
- Added tool memory for tool usage history
|
|
181
|
+
- Added image memory support for conversations and documents
|
|
182
|
+
|
|
183
|
+
</details>
|
|
184
|
+
|
|
185
|
+
<details>
|
|
186
|
+
<summary>📈 <b>Improvements</b></summary>
|
|
187
|
+
|
|
188
|
+
**Data & Infrastructure**
|
|
189
|
+
- Upgraded database for better stability and performance
|
|
190
|
+
|
|
191
|
+
**Scheduler**
|
|
192
|
+
- Rebuilt task scheduler with Redis Streams and queue isolation
|
|
193
|
+
- Added task priority, auto-recovery, and quota-based scheduling
|
|
194
|
+
|
|
195
|
+
**Deployment & Engineering**
|
|
196
|
+
- Added lightweight deployment with quick and full modes
|
|
197
|
+
|
|
198
|
+
</details>
|
|
199
|
+
|
|
200
|
+
<details>
|
|
201
|
+
<summary>🐞 <b>Bug Fixes</b></summary>
|
|
202
|
+
|
|
203
|
+
**Memory Scheduling & Updates**
|
|
204
|
+
- Fixed legacy scheduling API to ensure correct memory isolation
|
|
205
|
+
- Fixed memory update logging to show new memories correctly
|
|
206
|
+
|
|
207
|
+
</details>
|
|
208
|
+
|
|
209
|
+
- **2025-08-07** · 🎉 **MemOS v1.0.0 (MemCube) Release**
|
|
210
|
+
First MemCube release with a word-game demo, LongMemEval evaluation, BochaAISearchRetriever integration, NebulaGraph support, improved search capabilities, and the official Playground launch.
|
|
211
|
+
|
|
212
|
+
<details>
|
|
213
|
+
<summary>✨ <b>New Features</b></summary>
|
|
214
|
+
|
|
215
|
+
**Playground**
|
|
216
|
+
- Expanded Playground features and algorithm performance.
|
|
217
|
+
|
|
218
|
+
**MemCube Construction**
|
|
219
|
+
- Added a text game demo based on the MemCube novel.
|
|
220
|
+
|
|
221
|
+
**Extended Evaluation Set**
|
|
222
|
+
- Added LongMemEval evaluation results and scripts.
|
|
223
|
+
|
|
224
|
+
</details>
|
|
225
|
+
|
|
226
|
+
<details>
|
|
227
|
+
<summary>📈 <b>Improvements</b></summary>
|
|
228
|
+
|
|
229
|
+
**Plaintext Memory**
|
|
230
|
+
- Integrated internet search with Bocha.
|
|
231
|
+
- Added support for Nebula database.
|
|
232
|
+
- Added contextual understanding for the tree-structured plaintext memory search interface.
|
|
233
|
+
|
|
234
|
+
</details>
|
|
235
|
+
|
|
236
|
+
<details>
|
|
237
|
+
<summary>🐞 <b>Bug Fixes</b></summary>
|
|
238
|
+
|
|
239
|
+
**KV Cache Concatenation**
|
|
240
|
+
- Fixed the concat_cache method.
|
|
241
|
+
|
|
242
|
+
**Plaintext Memory**
|
|
243
|
+
- Fixed Nebula search-related issues.
|
|
244
|
+
|
|
245
|
+
</details>
|
|
246
|
+
|
|
247
|
+
- **2025-07-07** · 🎉 **MemOS v1.0: Stellar (星河) Preview Release**
|
|
248
|
+
A SOTA Memory OS for LLMs is now open-sourced.
|
|
249
|
+
- **2025-07-04** · 🎉 **MemOS Paper Release**
|
|
250
|
+
[MemOS: A Memory OS for AI System](https://arxiv.org/abs/2507.03724) is available on arXiv.
|
|
251
|
+
- **2024-07-04** · 🎉 **Memory3 Model Release at WAIC 2024**
|
|
252
|
+
The Memory3 model, featuring a memory-layered architecture, was unveiled at the 2024 World Artificial Intelligence Conference.
|
|
253
|
+
|
|
254
|
+
<br>
|
|
255
|
+
|
|
256
|
+
## 🚀 Quickstart Guide
|
|
257
|
+
|
|
258
|
+
### ☁️ 1、Cloud API (Hosted)
|
|
259
|
+
#### Get API Key
|
|
260
|
+
- Sign up on the [MemOS dashboard](https://memos-dashboard.openmem.net/cn/quickstart/?source=landing)
|
|
261
|
+
- Go to **API Keys** and copy your key
|
|
262
|
+
|
|
263
|
+
#### Next Steps
|
|
264
|
+
- [MemOS Cloud Getting Started](https://memos-docs.openmem.net/memos_cloud/quick_start/)
|
|
265
|
+
Connect to MemOS Cloud and enable memory in minutes.
|
|
266
|
+
- [MemOS Cloud Platform](https://memos.openmem.net/?from=/quickstart/)
|
|
267
|
+
Explore the Cloud dashboard, features, and workflows.
|
|
268
|
+
|
|
269
|
+
### 🖥️ 2、Self-Hosted (Local/Private)
|
|
270
|
+
1. Get the repository.
|
|
271
|
+
```bash
|
|
272
|
+
git clone https://github.com/MemTensor/MemOS.git
|
|
273
|
+
cd MemOS
|
|
274
|
+
pip install -r ./docker/requirements.txt
|
|
275
|
+
```
|
|
276
|
+
2. Configure `docker/.env.example` and copy to `MemOS/.env`
|
|
277
|
+
- The `OPENAI_API_KEY`,`MOS_EMBEDDER_API_KEY`,`MEMRADER_API_KEY` and others can be applied for through [`BaiLian`](https://bailian.console.aliyun.com/?spm=a2c4g.11186623.0.0.2f2165b08fRk4l&tab=api#/api).
|
|
278
|
+
- Fill in the corresponding configuration in the `MemOS/.env` file.
|
|
279
|
+
3. Start the service.
|
|
280
|
+
|
|
281
|
+
- Launch via Docker
|
|
282
|
+
###### Tips: Please ensure that Docker Compose is installed successfully and that you have navigated to the docker directory (via `cd docker`) before executing the following command.
|
|
283
|
+
```bash
|
|
284
|
+
# Enter docker directory
|
|
285
|
+
docker compose up
|
|
286
|
+
```
|
|
287
|
+
##### For detailed steps, see the[`Docker Reference`](https://docs.openmem.net/open_source/getting_started/rest_api_server/#method-1-docker-use-repository-dependency-package-imagestart-recommended-use).
|
|
288
|
+
|
|
289
|
+
- Launch via the uvicorn command line interface (CLI)
|
|
290
|
+
###### Tips: Please ensure that Neo4j and Qdrant are running before executing the following command.
|
|
291
|
+
```bash
|
|
292
|
+
cd src
|
|
293
|
+
uvicorn memos.api.server_api:app --host 0.0.0.0 --port 8001 --workers 1
|
|
294
|
+
```
|
|
295
|
+
##### For detailed integration steps, see the [`CLI Reference`](https://docs.openmem.net/open_source/getting_started/rest_api_server/#method-3client-install-with-CLI).
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
### Basic Usage (Self-Hosted)
|
|
300
|
+
- Add User Message
|
|
301
|
+
```python
|
|
302
|
+
import requests
|
|
303
|
+
import json
|
|
304
|
+
|
|
305
|
+
data = {
|
|
306
|
+
"user_id": "8736b16e-1d20-4163-980b-a5063c3facdc",
|
|
307
|
+
"mem_cube_id": "b32d0977-435d-4828-a86f-4f47f8b55bca",
|
|
308
|
+
"messages": [
|
|
309
|
+
{
|
|
310
|
+
"role": "user",
|
|
311
|
+
"content": "I like strawberry"
|
|
312
|
+
}
|
|
313
|
+
],
|
|
314
|
+
"async_mode": "sync"
|
|
315
|
+
}
|
|
316
|
+
headers = {
|
|
317
|
+
"Content-Type": "application/json"
|
|
318
|
+
}
|
|
319
|
+
url = "http://localhost:8000/product/add"
|
|
320
|
+
|
|
321
|
+
res = requests.post(url=url, headers=headers, data=json.dumps(data))
|
|
322
|
+
print(f"result: {res.json()}")
|
|
323
|
+
```
|
|
324
|
+
- Search User Memory
|
|
325
|
+
```python
|
|
326
|
+
import requests
|
|
327
|
+
import json
|
|
328
|
+
|
|
329
|
+
data = {
|
|
330
|
+
"query": "What do I like",
|
|
331
|
+
"user_id": "8736b16e-1d20-4163-980b-a5063c3facdc",
|
|
332
|
+
"mem_cube_id": "b32d0977-435d-4828-a86f-4f47f8b55bca"
|
|
333
|
+
}
|
|
334
|
+
headers = {
|
|
335
|
+
"Content-Type": "application/json"
|
|
336
|
+
}
|
|
337
|
+
url = "http://localhost:8000/product/search"
|
|
338
|
+
|
|
339
|
+
res = requests.post(url=url, headers=headers, data=json.dumps(data))
|
|
340
|
+
print(f"result: {res.json()}")
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
<br>
|
|
344
|
+
|
|
345
|
+
## 📚 Resources
|
|
346
|
+
|
|
347
|
+
- **Awesome-AI-Memory**
|
|
348
|
+
This is a curated repository dedicated to resources on memory and memory systems for large language models. It systematically collects relevant research papers, frameworks, tools, and practical insights. The repository aims to organize and present the rapidly evolving research landscape of LLM memory, bridging multiple research directions including natural language processing, information retrieval, agentic systems, and cognitive science.
|
|
349
|
+
- **Get started** 👉 [IAAR-Shanghai/Awesome-AI-Memory](https://github.com/IAAR-Shanghai/Awesome-AI-Memory)
|
|
350
|
+
|
|
351
|
+
<br>
|
|
352
|
+
|
|
353
|
+
## 💬 Community & Support
|
|
354
|
+
|
|
355
|
+
Join our community to ask questions, share your projects, and connect with other developers.
|
|
356
|
+
|
|
357
|
+
- **GitHub Issues**: Report bugs or request features in our <a href="https://github.com/MemTensor/MemOS/issues" target="_blank">GitHub Issues</a>.
|
|
358
|
+
- **GitHub Pull Requests**: Contribute code improvements via <a href="https://github.com/MemTensor/MemOS/pulls" target="_blank">Pull Requests</a>.
|
|
359
|
+
- **GitHub Discussions**: Participate in our <a href="https://github.com/MemTensor/MemOS/discussions" target="_blank">GitHub Discussions</a> to ask questions or share ideas.
|
|
360
|
+
- **Discord**: Join our <a href="https://discord.gg/Txbx3gebZR" target="_blank">Discord Server</a>.
|
|
361
|
+
- **WeChat**: Scan the QR code to join our WeChat group.
|
|
362
|
+
|
|
363
|
+
<div align="center">
|
|
364
|
+
<img src="https://statics.memtensor.com.cn/memos/qr-code.png" alt="QR Code" width="300" />
|
|
365
|
+
</div>
|
|
366
|
+
|
|
367
|
+
<br>
|
|
368
|
+
|
|
369
|
+
## 📜 Citation
|
|
370
|
+
|
|
371
|
+
> [!NOTE]
|
|
372
|
+
> We publicly released the Short Version on **May 28, 2025**, making it the earliest work to propose the concept of a Memory Operating System for LLMs.
|
|
373
|
+
|
|
374
|
+
If you use MemOS in your research, we would appreciate citations to our papers.
|
|
375
|
+
|
|
376
|
+
```bibtex
|
|
377
|
+
|
|
378
|
+
@article{li2025memos_long,
|
|
379
|
+
title={MemOS: A Memory OS for AI System},
|
|
380
|
+
author={Li, Zhiyu and Song, Shichao and Xi, Chenyang and Wang, Hanyu and Tang, Chen and Niu, Simin and Chen, Ding and Yang, Jiawei and Li, Chunyu and Yu, Qingchen and Zhao, Jihao and Wang, Yezhaohui and Liu, Peng and Lin, Zehao and Wang, Pengyuan and Huo, Jiahao and Chen, Tianyi and Chen, Kai and Li, Kehang and Tao, Zhen and Ren, Junpeng and Lai, Huayi and Wu, Hao and Tang, Bo and Wang, Zhenren and Fan, Zhaoxin and Zhang, Ningyu and Zhang, Linfeng and Yan, Junchi and Yang, Mingchuan and Xu, Tong and Xu, Wei and Chen, Huajun and Wang, Haofeng and Yang, Hongkang and Zhang, Wentao and Xu, Zhi-Qin John and Chen, Siheng and Xiong, Feiyu},
|
|
381
|
+
journal={arXiv preprint arXiv:2507.03724},
|
|
382
|
+
year={2025},
|
|
383
|
+
url={https://arxiv.org/abs/2507.03724}
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
@article{li2025memos_short,
|
|
387
|
+
title={MemOS: An Operating System for Memory-Augmented Generation (MAG) in Large Language Models},
|
|
388
|
+
author={Li, Zhiyu and Song, Shichao and Wang, Hanyu and Niu, Simin and Chen, Ding and Yang, Jiawei and Xi, Chenyang and Lai, Huayi and Zhao, Jihao and Wang, Yezhaohui and others},
|
|
389
|
+
journal={arXiv preprint arXiv:2505.22101},
|
|
390
|
+
year={2025},
|
|
391
|
+
url={https://arxiv.org/abs/2505.22101}
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
@article{yang2024memory3,
|
|
395
|
+
author = {Yang, Hongkang and Zehao, Lin and Wenjin, Wang and Wu, Hao and Zhiyu, Li and Tang, Bo and Wenqiang, Wei and Wang, Jinbo and Zeyun, Tang and Song, Shichao and Xi, Chenyang and Yu, Yu and Kai, Chen and Xiong, Feiyu and Tang, Linpeng and Weinan, E},
|
|
396
|
+
title = {Memory$^3$: Language Modeling with Explicit Memory},
|
|
397
|
+
journal = {Journal of Machine Learning},
|
|
398
|
+
year = {2024},
|
|
399
|
+
volume = {3},
|
|
400
|
+
number = {3},
|
|
401
|
+
pages = {300--346},
|
|
402
|
+
issn = {2790-2048},
|
|
403
|
+
doi = {https://doi.org/10.4208/jml.240708},
|
|
404
|
+
url = {https://global-sci.com/article/91443/memory3-language-modeling-with-explicit-memory}
|
|
405
|
+
}
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
<br>
|
|
409
|
+
|
|
410
|
+
## 🙌 Contributing
|
|
411
|
+
|
|
412
|
+
We welcome contributions from the community! Please read our [contribution guidelines](https://memos-docs.openmem.net/contribution/overview) to get started.
|
|
413
|
+
|
|
414
|
+
<br>
|
|
415
|
+
|
|
416
|
+
## 📄 License
|
|
417
|
+
|
|
418
|
+
MemOS is licensed under the [Apache 2.0 License](./LICENSE).
|