MemoryOS 2.0.14__tar.gz → 2.0.15__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. {memoryos-2.0.14 → memoryos-2.0.15}/PKG-INFO +39 -67
  2. {memoryos-2.0.14 → memoryos-2.0.15}/README.md +38 -66
  3. {memoryos-2.0.14 → memoryos-2.0.15}/pyproject.toml +1 -1
  4. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/__init__.py +1 -1
  5. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/handlers/component_init.py +7 -0
  6. memoryos-2.0.15/src/memos/dream/README.md +246 -0
  7. memoryos-2.0.15/src/memos/dream/README_ZH.md +243 -0
  8. memoryos-2.0.15/src/memos/dream/__init__.py +11 -0
  9. memoryos-2.0.15/src/memos/dream/hook_defs.py +25 -0
  10. memoryos-2.0.15/src/memos/dream/hooks.py +88 -0
  11. memoryos-2.0.15/src/memos/dream/maintenance.py +56 -0
  12. memoryos-2.0.15/src/memos/dream/pipeline/__init__.py +16 -0
  13. memoryos-2.0.15/src/memos/dream/pipeline/base.py +88 -0
  14. memoryos-2.0.15/src/memos/dream/pipeline/diary.py +148 -0
  15. memoryos-2.0.15/src/memos/dream/pipeline/motive.py +119 -0
  16. memoryos-2.0.15/src/memos/dream/pipeline/persistence.py +350 -0
  17. memoryos-2.0.15/src/memos/dream/pipeline/reasoning.py +189 -0
  18. memoryos-2.0.15/src/memos/dream/pipeline/recall.py +112 -0
  19. memoryos-2.0.15/src/memos/dream/plugin.py +99 -0
  20. memoryos-2.0.15/src/memos/dream/prompts/__init__.py +8 -0
  21. memoryos-2.0.15/src/memos/dream/prompts/motive_prompt.py +74 -0
  22. memoryos-2.0.15/src/memos/dream/prompts/reasoning_prompt.py +80 -0
  23. memoryos-2.0.15/src/memos/dream/routers/__init__.py +5 -0
  24. memoryos-2.0.15/src/memos/dream/routers/diary_router.py +92 -0
  25. memoryos-2.0.15/src/memos/dream/routers/trigger_router.py +42 -0
  26. memoryos-2.0.15/src/memos/dream/routes.py +21 -0
  27. memoryos-2.0.15/src/memos/dream/signal_store.py +85 -0
  28. memoryos-2.0.15/src/memos/dream/types.py +152 -0
  29. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_feedback/feedback.py +1 -1
  30. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_skill_memory/process_skill_memory.py +1 -2
  31. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/general_modules/init_components_for_scheduler.py +1 -4
  32. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/schemas/task_schemas.py +1 -0
  33. memoryos-2.0.15/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_dream_handler.py +156 -0
  34. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_read_handler.py +43 -1
  35. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/registry.py +4 -0
  36. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/plugins/base.py +5 -0
  37. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/plugins/component_bootstrap.py +5 -0
  38. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/plugins/hook_defs.py +16 -0
  39. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/plugins/manager.py +62 -3
  40. {memoryos-2.0.14 → memoryos-2.0.15}/LICENSE +0 -0
  41. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/README_api.md +0 -0
  42. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/__init__.py +0 -0
  43. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/client.py +0 -0
  44. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/config.py +0 -0
  45. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/context/dependencies.py +0 -0
  46. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/exceptions.py +0 -0
  47. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/handlers/__init__.py +0 -0
  48. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/handlers/add_handler.py +0 -0
  49. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/handlers/base_handler.py +0 -0
  50. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/handlers/chat_handler.py +0 -0
  51. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/handlers/config_builders.py +0 -0
  52. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/handlers/feedback_handler.py +0 -0
  53. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/handlers/formatters_handler.py +0 -0
  54. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/handlers/memory_handler.py +0 -0
  55. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/handlers/scheduler_handler.py +0 -0
  56. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/handlers/search_handler.py +0 -0
  57. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/handlers/suggestion_handler.py +0 -0
  58. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/mcp_serve.py +0 -0
  59. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/middleware/__init__.py +0 -0
  60. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/middleware/auth.py +0 -0
  61. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/middleware/rate_limit.py +0 -0
  62. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/middleware/request_context.py +0 -0
  63. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/product_models.py +0 -0
  64. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/routers/__init__.py +0 -0
  65. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/routers/admin_router.py +0 -0
  66. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/routers/server_router.py +0 -0
  67. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/server_api.py +0 -0
  68. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/server_api_ext.py +0 -0
  69. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/utils/__init__.py +0 -0
  70. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/api/utils/api_keys.py +0 -0
  71. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/chunkers/__init__.py +0 -0
  72. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/chunkers/base.py +0 -0
  73. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/chunkers/charactertext_chunker.py +0 -0
  74. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/chunkers/factory.py +0 -0
  75. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/chunkers/markdown_chunker.py +0 -0
  76. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/chunkers/sentence_chunker.py +0 -0
  77. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/chunkers/simple_chunker.py +0 -0
  78. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/cli.py +0 -0
  79. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/__init__.py +0 -0
  80. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/base.py +0 -0
  81. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/chunker.py +0 -0
  82. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/embedder.py +0 -0
  83. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/graph_db.py +0 -0
  84. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/internet_retriever.py +0 -0
  85. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/llm.py +0 -0
  86. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/mem_agent.py +0 -0
  87. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/mem_chat.py +0 -0
  88. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/mem_cube.py +0 -0
  89. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/mem_os.py +0 -0
  90. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/mem_reader.py +0 -0
  91. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/mem_scheduler.py +0 -0
  92. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/mem_user.py +0 -0
  93. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/memory.py +0 -0
  94. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/parser.py +0 -0
  95. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/reranker.py +0 -0
  96. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/utils.py +0 -0
  97. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/configs/vec_db.py +0 -0
  98. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/context/context.py +0 -0
  99. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/dependency.py +0 -0
  100. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/deprecation.py +0 -0
  101. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/embedders/__init__.py +0 -0
  102. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/embedders/ark.py +0 -0
  103. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/embedders/base.py +0 -0
  104. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/embedders/factory.py +0 -0
  105. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/embedders/ollama.py +0 -0
  106. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/embedders/sentence_transformer.py +0 -0
  107. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/embedders/universal_api.py +0 -0
  108. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/exceptions.py +0 -0
  109. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/extras/__init__.py +0 -0
  110. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/graph_dbs/__init__.py +0 -0
  111. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/graph_dbs/base.py +0 -0
  112. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/graph_dbs/factory.py +0 -0
  113. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/graph_dbs/item.py +0 -0
  114. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/graph_dbs/neo4j.py +0 -0
  115. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/graph_dbs/neo4j_community.py +0 -0
  116. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/graph_dbs/polardb.py +0 -0
  117. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/graph_dbs/postgres.py +0 -0
  118. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/hello_world.py +0 -0
  119. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/llms/__init__.py +0 -0
  120. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/llms/base.py +0 -0
  121. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/llms/deepseek.py +0 -0
  122. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/llms/factory.py +0 -0
  123. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/llms/hf.py +0 -0
  124. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/llms/hf_singleton.py +0 -0
  125. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/llms/minimax.py +0 -0
  126. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/llms/ollama.py +0 -0
  127. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/llms/openai.py +0 -0
  128. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/llms/openai_new.py +0 -0
  129. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/llms/qwen.py +0 -0
  130. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/llms/utils.py +0 -0
  131. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/llms/vllm.py +0 -0
  132. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/log.py +0 -0
  133. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_agent/base.py +0 -0
  134. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_agent/deepsearch_agent.py +0 -0
  135. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_agent/factory.py +0 -0
  136. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_chat/__init__.py +0 -0
  137. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_chat/base.py +0 -0
  138. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_chat/factory.py +0 -0
  139. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_chat/simple.py +0 -0
  140. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_cube/__init__.py +0 -0
  141. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_cube/base.py +0 -0
  142. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_cube/general.py +0 -0
  143. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_cube/navie.py +0 -0
  144. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_cube/utils.py +0 -0
  145. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_feedback/base.py +0 -0
  146. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_feedback/simple_feedback.py +0 -0
  147. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_feedback/utils.py +0 -0
  148. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_os/core.py +0 -0
  149. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_os/main.py +0 -0
  150. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_os/utils/default_config.py +0 -0
  151. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_os/utils/format_utils.py +0 -0
  152. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_os/utils/reference_utils.py +0 -0
  153. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/__init__.py +0 -0
  154. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/base.py +0 -0
  155. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/factory.py +0 -0
  156. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/memory.py +0 -0
  157. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/multi_modal_struct.py +0 -0
  158. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/__init__.py +0 -0
  159. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/assistant_parser.py +0 -0
  160. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/base.py +0 -0
  161. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/file_content_parser.py +0 -0
  162. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/image_parser.py +0 -0
  163. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/multi_modal_parser.py +0 -0
  164. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/string_parser.py +0 -0
  165. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/system_parser.py +0 -0
  166. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/text_content_parser.py +0 -0
  167. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/tool_parser.py +0 -0
  168. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/user_parser.py +0 -0
  169. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_multi_modal/utils.py +0 -0
  170. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/read_pref_memory/process_preference_memory.py +0 -0
  171. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/simple_struct.py +0 -0
  172. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/strategy_struct.py +0 -0
  173. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_reader/utils.py +0 -0
  174. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/__init__.py +0 -0
  175. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/analyzer/__init__.py +0 -0
  176. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/analyzer/api_analyzer.py +0 -0
  177. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/analyzer/eval_analyzer.py +0 -0
  178. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/analyzer/mos_for_test_scheduler.py +0 -0
  179. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/analyzer/scheduler_for_eval.py +0 -0
  180. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/base_mixins/__init__.py +0 -0
  181. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/base_mixins/memory_ops.py +0 -0
  182. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/base_mixins/queue_ops.py +0 -0
  183. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/base_mixins/web_log_ops.py +0 -0
  184. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/base_scheduler.py +0 -0
  185. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/general_modules/__init__.py +0 -0
  186. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/general_modules/api_misc.py +0 -0
  187. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/general_modules/base.py +0 -0
  188. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/general_modules/misc.py +0 -0
  189. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/general_modules/scheduler_logger.py +0 -0
  190. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/general_modules/task_threads.py +0 -0
  191. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/general_scheduler.py +0 -0
  192. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/__init__.py +0 -0
  193. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/activation_memory_manager.py +0 -0
  194. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/enhancement_pipeline.py +0 -0
  195. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/filter_pipeline.py +0 -0
  196. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/memory_filter.py +0 -0
  197. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/post_processor.py +0 -0
  198. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/rerank_pipeline.py +0 -0
  199. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/retriever.py +0 -0
  200. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/search_pipeline.py +0 -0
  201. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/memory_manage_modules/search_service.py +0 -0
  202. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/monitors/__init__.py +0 -0
  203. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/monitors/dispatcher_monitor.py +0 -0
  204. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/monitors/general_monitor.py +0 -0
  205. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/monitors/task_schedule_monitor.py +0 -0
  206. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/optimized_scheduler.py +0 -0
  207. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/orm_modules/__init__.py +0 -0
  208. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/orm_modules/api_redis_model.py +0 -0
  209. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/orm_modules/base_model.py +0 -0
  210. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/orm_modules/monitor_models.py +0 -0
  211. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/orm_modules/redis_model.py +0 -0
  212. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/scheduler_factory.py +0 -0
  213. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/schemas/__init__.py +0 -0
  214. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/schemas/analyzer_schemas.py +0 -0
  215. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/schemas/api_schemas.py +0 -0
  216. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/schemas/general_schemas.py +0 -0
  217. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/schemas/message_schemas.py +0 -0
  218. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/schemas/monitor_schemas.py +0 -0
  219. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/__init__.py +0 -0
  220. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/base_handler.py +0 -0
  221. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/context.py +0 -0
  222. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/dispatcher.py +0 -0
  223. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/__init__.py +0 -0
  224. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/add_handler.py +0 -0
  225. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/answer_handler.py +0 -0
  226. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/feedback_handler.py +0 -0
  227. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_reorganize_handler.py +0 -0
  228. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/memory_update_handler.py +0 -0
  229. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/pref_add_handler.py +0 -0
  230. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/handlers/query_handler.py +0 -0
  231. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/local_queue.py +0 -0
  232. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/orchestrator.py +0 -0
  233. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/redis_queue.py +0 -0
  234. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/task_schedule_modules/task_queue.py +0 -0
  235. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/__init__.py +0 -0
  236. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/api_utils.py +0 -0
  237. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/config_utils.py +0 -0
  238. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/db_utils.py +0 -0
  239. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/filter_utils.py +0 -0
  240. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/metrics.py +0 -0
  241. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/misc_utils.py +0 -0
  242. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/monitor_event_utils.py +0 -0
  243. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/utils/status_tracker.py +0 -0
  244. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/webservice_modules/__init__.py +0 -0
  245. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py +0 -0
  246. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_scheduler/webservice_modules/redis_service.py +0 -0
  247. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_user/factory.py +0 -0
  248. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_user/mysql_persistent_user_manager.py +0 -0
  249. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_user/mysql_user_manager.py +0 -0
  250. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_user/persistent_factory.py +0 -0
  251. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_user/persistent_user_manager.py +0 -0
  252. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_user/redis_persistent_user_manager.py +0 -0
  253. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/mem_user/user_manager.py +0 -0
  254. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/__init__.py +0 -0
  255. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/activation/__init__.py +0 -0
  256. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/activation/base.py +0 -0
  257. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/activation/item.py +0 -0
  258. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/activation/kv.py +0 -0
  259. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/activation/vllmkv.py +0 -0
  260. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/base.py +0 -0
  261. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/factory.py +0 -0
  262. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/parametric/__init__.py +0 -0
  263. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/parametric/base.py +0 -0
  264. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/parametric/item.py +0 -0
  265. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/parametric/lora.py +0 -0
  266. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/__init__.py +0 -0
  267. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/base.py +0 -0
  268. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/general.py +0 -0
  269. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/item.py +0 -0
  270. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/naive.py +0 -0
  271. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/__init__.py +0 -0
  272. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/adder.py +0 -0
  273. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/config.py +0 -0
  274. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/extractor.py +0 -0
  275. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/factory.py +0 -0
  276. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/retrievers.py +0 -0
  277. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/spliter.py +0 -0
  278. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/prefer_text_memory/utils.py +0 -0
  279. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/preference.py +0 -0
  280. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/simple_preference.py +0 -0
  281. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/simple_tree.py +0 -0
  282. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree.py +0 -0
  283. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/__init__.py +0 -0
  284. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/organize/__init__.py +0 -0
  285. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/organize/handler.py +0 -0
  286. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/organize/manager.py +0 -0
  287. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/organize/relation_reason_detector.py +0 -0
  288. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/organize/reorganizer.py +0 -0
  289. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/__init__.py +0 -0
  290. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/advanced_searcher.py +0 -0
  291. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/bm25_util.py +0 -0
  292. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/bochasearch.py +0 -0
  293. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py +0 -0
  294. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever_factory.py +0 -0
  295. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/reasoner.py +0 -0
  296. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/recall.py +0 -0
  297. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/reranker.py +0 -0
  298. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/retrieval_mid_structs.py +0 -0
  299. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/retrieve_utils.py +0 -0
  300. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/searcher.py +0 -0
  301. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/task_goal_parser.py +0 -0
  302. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/tavilysearch.py +0 -0
  303. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/utils.py +0 -0
  304. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py +0 -0
  305. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memos_tools/dinding_report_bot.py +0 -0
  306. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memos_tools/lockfree_dict.py +0 -0
  307. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memos_tools/notification_service.py +0 -0
  308. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memos_tools/notification_utils.py +0 -0
  309. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memos_tools/singleton.py +0 -0
  310. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memos_tools/thread_safe_dict.py +0 -0
  311. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/memos_tools/thread_safe_dict_segment.py +0 -0
  312. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/multi_mem_cube/__init__.py +0 -0
  313. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/multi_mem_cube/composite_cube.py +0 -0
  314. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/multi_mem_cube/single_cube.py +0 -0
  315. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/multi_mem_cube/views.py +0 -0
  316. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/parsers/__init__.py +0 -0
  317. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/parsers/base.py +0 -0
  318. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/parsers/factory.py +0 -0
  319. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/parsers/markitdown.py +0 -0
  320. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/plugins/__init__.py +0 -0
  321. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/plugins/hooks.py +0 -0
  322. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/__init__.py +0 -0
  323. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/base.py +0 -0
  324. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/concat.py +0 -0
  325. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/cosine_local.py +0 -0
  326. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/factory.py +0 -0
  327. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/http_bge.py +0 -0
  328. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/http_bge_strategy.py +0 -0
  329. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/noop.py +0 -0
  330. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/strategies/__init__.py +0 -0
  331. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/strategies/base.py +0 -0
  332. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/strategies/concat_background.py +0 -0
  333. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/strategies/concat_docsource.py +0 -0
  334. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/strategies/dialogue_common.py +0 -0
  335. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/strategies/factory.py +0 -0
  336. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/strategies/single_turn.py +0 -0
  337. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/reranker/strategies/singleturn_outmem.py +0 -0
  338. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/search/__init__.py +0 -0
  339. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/search/search_service.py +0 -0
  340. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/settings.py +0 -0
  341. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/__init__.py +0 -0
  342. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/advanced_search_prompts.py +0 -0
  343. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/cloud_service_prompt.py +0 -0
  344. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/instruction_completion.py +0 -0
  345. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/mem_agent_prompts.py +0 -0
  346. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/mem_feedback_prompts.py +0 -0
  347. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/mem_reader_prompts.py +0 -0
  348. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/mem_reader_strategy_prompts.py +0 -0
  349. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/mem_scheduler_prompts.py +0 -0
  350. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/mem_search_prompts.py +0 -0
  351. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/mos_prompts.py +0 -0
  352. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/prefer_complete_prompt.py +0 -0
  353. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/skill_mem_prompt.py +0 -0
  354. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/tool_mem_prompts.py +0 -0
  355. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/templates/tree_reorganize_prompts.py +0 -0
  356. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/__init__.py +0 -0
  357. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/general_types.py +0 -0
  358. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/__init__.py +0 -0
  359. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_assistant_message_param.py +0 -0
  360. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_image_param.py +0 -0
  361. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_input_audio_param.py +0 -0
  362. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_param.py +0 -0
  363. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_refusal_param.py +0 -0
  364. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_text_param.py +0 -0
  365. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_message_custom_tool_call_param.py +0 -0
  366. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_message_function_tool_call_param.py +0 -0
  367. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_message_param.py +0 -0
  368. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_message_tool_call_union_param.py +0 -0
  369. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_system_message_param.py +0 -0
  370. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_tool_message_param.py +0 -0
  371. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/types/openai_chat_completion_types/chat_completion_user_message_param.py +0 -0
  372. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/utils.py +0 -0
  373. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/vec_dbs/__init__.py +0 -0
  374. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/vec_dbs/base.py +0 -0
  375. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/vec_dbs/factory.py +0 -0
  376. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/vec_dbs/item.py +0 -0
  377. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/vec_dbs/milvus.py +0 -0
  378. {memoryos-2.0.14 → memoryos-2.0.15}/src/memos/vec_dbs/qdrant.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: MemoryOS
3
- Version: 2.0.14
3
+ Version: 2.0.15
4
4
  Summary: Intelligence Begins with Memory
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -88,51 +88,24 @@ Description-Content-Type: text/markdown
88
88
  </a>
89
89
 
90
90
  <h1 align="center">
91
- <img src="https://statics.memtensor.com.cn/logo/memos_color_m.png" alt="MemOS Logo" width="50"/>
92
- MemOS 2.0: 星尘(Stardust
93
- <img src="https://img.shields.io/badge/status-Preview-blue" alt="Preview Badge"/>
91
+ <img src="https://statics.memtensor.com.cn/logo/memos_color_m.png" alt="MemOS Logo" width="48"/>&nbsp;
92
+ MemOS 2.0&ensp;Stardust(星尘)
93
+
94
94
  </h1>
95
95
 
96
- <p>
97
- <a href="https://www.memtensor.com.cn/">
98
- <img alt="Static Badge" src="https://img.shields.io/badge/Maintained_by-MemTensor-blue">
99
- </a>
100
- <a href="https://pypi.org/project/MemoryOS">
101
- <img src="https://img.shields.io/pypi/v/MemoryOS?label=pypi%20package" alt="PyPI Version">
102
- </a>
103
- <a href="https://pypi.org/project/MemoryOS">
104
- <img src="https://img.shields.io/pypi/pyversions/MemoryOS.svg" alt="Supported Python versions">
105
- </a>
106
- <a href="https://pypi.org/project/MemoryOS">
107
- <img src="https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey" alt="Supported Platforms">
108
- </a>
109
- <a href="https://memos-docs.openmem.net/home/overview/">
110
- <img src="https://img.shields.io/badge/Documentation-view-blue.svg" alt="Documentation">
111
- </a>
112
- <a href="https://arxiv.org/abs/2507.03724">
113
- <img src="https://img.shields.io/badge/arXiv-2507.03724-b31b1b.svg" alt="ArXiv Paper">
114
- </a>
115
- <a href="https://github.com/MemTensor/MemOS/discussions">
116
- <img src="https://img.shields.io/badge/GitHub-Discussions-181717.svg?logo=github" alt="GitHub Discussions">
117
- </a>
118
- <a href="https://discord.gg/Txbx3gebZR">
119
- <img src="https://img.shields.io/badge/Discord-join%20chat-7289DA.svg?logo=discord" alt="Discord">
120
- </a>
121
- <a href="https://statics.memtensor.com.cn/memos/qr-code.png">
122
- <img src="https://img.shields.io/badge/WeChat-Group-07C160.svg?logo=wechat" alt="WeChat Group">
123
- </a>
124
- <a href="https://opensource.org/license/apache-2-0/">
125
- <img src="https://img.shields.io/badge/License-Apache_2.0-green.svg?logo=apache" alt="License">
126
- </a>
127
- <a href="https://github.com/IAAR-Shanghai/Awesome-AI-Memory">
128
- <img alt="Awesome AI Memory" src="https://img.shields.io/badge/Resources-Awesome--AI--Memory-8A2BE2">
129
- </a>
130
- </p>
96
+ <p align="center">
97
+ <br>
98
+ <a href="https://memos-docs.openmem.net/home/overview/"><img src="https://img.shields.io/badge/Docs-Get--Start-002FA7?labelColor=gray&style=for-the-badge&logo=googledocs&logoColor=white" alt="Docs"></a>
99
+ <a href="https://arxiv.org/abs/2507.03724"><img src="https://img.shields.io/badge/ArXiv-2507.03724-B31B1B?labelColor=gray&style=for-the-badge&logo=arxiv&logoColor=white" alt="ArXiv"></a>
100
+ <a href="https://x.com/MemOS_dev"><img src="https://img.shields.io/badge/Follow-MemOS-000000?labelColor=gray&style=for-the-badge&logo=x&logoColor=white" alt="X"></a>
101
+ <a href="https://discord.gg/Txbx3gebZR"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdiscord.com%2Fapi%2Fv10%2Finvites%2FTxbx3gebZR%3Fwith_counts%3Dtrue&query=%24.approximate_presence_count&suffix=%20online&label=Discord&color=404EED&labelColor=gray&style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
102
+ <a href="https://github.com/IAAR-Shanghai/Awesome-AI-Memory"><img src="https://img.shields.io/badge/Resources-Awesome--AI--Memory-8A2BE2?labelColor=gray&style=for-the-badge&logo=awesomelists&logoColor=white" alt="Resources"></a>
103
+ </p>
131
104
 
132
105
  <p align="center">
133
106
  <strong>🎯 +43.70% Accuracy vs. OpenAI Memory</strong><br/>
134
- <strong>🏆 Top-tier long-term memory + personalization</strong><br/>
135
- <strong>💰 Saves 35.24% memory tokens</strong><br/>
107
+ <strong>🏆 Top-tier Long-term Memory + Personalization</strong><br/>
108
+ <strong>💰 Saves 35.24% Memory Tokens</strong><br/>
136
109
  <sub>LoCoMo 75.80 • LongMemEval +40.43% • PrefEval-10 +2568% • PersonaMem +40.75%</sub>
137
110
  <!-- <a href="https://memos.openmem.net/">
138
111
  <img src="https://statics.memtensor.com.cn/memos/github_api_free_banner.gif" alt="MemOS Free API Banner">
@@ -148,35 +121,27 @@ Description-Content-Type: text/markdown
148
121
 
149
122
  <!-- <br> -->
150
123
 
151
- ## 🦞 Enhanced OpenClaw with MemOS Plugin
152
-
153
- ![](https://cdn.memtensor.com.cn/img/1770612303123_mnaisk_compressed.png)
154
-
155
- 🦞 Your lobster now has a working memory system — choose **Cloud** or **Local** to get started.
156
-
157
- ### ☁️ Cloud Plugin — Hosted Memory Service
158
-
159
- - [**72% lower token usage**](https://x.com/MemOS_dev/status/2020854044583924111) — intelligent memory retrieval instead of loading full chat history
160
- - [**Multi-agent memory sharing**](https://x.com/MemOS_dev/status/2020538135487062094) — multi-instance agents share memory via same user_id, automatic context handoff
124
+ ## 🧠 MemOS Plugin: Persistent Memory for Your AI Agents ✨
161
125
 
162
- Get your API key: [MemOS Dashboard](https://memos-dashboard.openmem.net/cn/login/)
163
- Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)
126
+ <div align="center">
127
+
128
+ <img width="1660" height="664" alt="MemOS Plugin Banner" src="https://github.com/user-attachments/assets/9d15dde2-196e-4f71-a364-dd5a33062117" />
164
129
 
165
- ### 🧠 Local Plugin100% On-Device Memory
130
+ Your lobsters and Hermes Agents now have **the best** memory system choose ***Cloud Service*** or ***Self-hosted*** to get started 🏃🏻
166
131
 
167
- - **Zero cloud dependency** all data stays on your machine, persistent local SQLite storage
168
- - **Hybrid search + task & skill evolution** — FTS5 + vector search, auto task summarization, reusable skills that self-upgrade
169
- - **Multi-agent collaboration + Memory Viewer** memory isolation, skill sharing, full web dashboard with 7 management pages
132
+ | 🔌 Plugin | <div align="center"> 💡 Core Features </div> | 🧩 Resources |
133
+ | :----: | :--- | :---: |
134
+ | 🧠 [**memos-local-plugin 2.0**](https://github.com/hijzy/MemOS/tree/main/apps/memos-local-plugin) | <ul><li>One local-first memory core for **Hermes Agent** and **OpenClaw**.</li><li>Self-evolving memory: L1 trace, L2 policy, L3 world model,<br>and crystallized Skills driven by feedback.</li></ul> | 🐙 [GitHub](https://github.com/hijzy/MemOS/tree/main/apps/memos-local-plugin) · 📦 [NPM](https://www.npmjs.com/package/@memtensor/memos-local-plugin) |
135
+ | ☁️ [**OpenClaw Cloud Plugin**](https://x.com/MemOS_dev/status/2019254160919769171?s=20) | <ul><li>[Reduces token usage by 72%.](https://x.com/MemOS_dev/status/2020854044583924111)</li><li>[Multi-agent memory sharing by `user_id`.](https://x.com/MemOS_dev/status/2020538135487062094)</li></ul> | 🖥️ [MemOS Dashboard](https://memos-dashboard.openmem.net/login/) · 📖 [Full Tutorial](https://memos-docs.openmem.net/openclaw/guide#_4-update-plugin) |
170
136
 
171
- 🌐 [Homepage](https://memos-claw.openmem.net) ·
172
- 📖 [Documentation](https://memos-claw.openmem.net/docs/index.html) · 📦 [NPM](https://www.npmjs.com/package/@memtensor/memos-local-openclaw-plugin)
137
+ </div>
138
+ <br>
173
139
 
174
- ## 📌 MemOS: Memory Operating System for AI Agents
140
+ ## 👾 MemOS: Memory Operating System for LLM & AI Agents
175
141
 
176
142
  **MemOS** is a Memory Operating System for LLMs and AI agents that unifies **store / retrieve / manage** for long-term memory, enabling **context-aware and personalized** interactions with **KB**, **multi-modal**, **tool memory**, and **enterprise-grade** optimizations built in.
177
143
 
178
144
 
179
-
180
145
  ### Key Features
181
146
 
182
147
  - **Unified Memory API**: A single API to add, retrieve, edit, and delete memory—structured as a graph, inspectable and editable by design, not a black-box embedding store.
@@ -188,6 +153,12 @@ Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/Mem
188
153
 
189
154
  ### News
190
155
 
156
+ - **2026-05-09** · 🧠 **memos-local-plugin 2.0**
157
+ Official local memory plugin for **Hermes Agent** and **OpenClaw**. One core powers self-evolving memory across L1 traces, L2 policies, L3 world models, and crystallized Skills, with local-first storage and feedback-driven retrieval.
158
+
159
+ - **2026-04-10** · 👧🏻 **MemOS Hermes Agent Local Plugin**
160
+ Official Hermes Agent memory plugins launched: Hybrid retrieval (FTS5 + vector), smart dedup, tiered skill evolution, multi-agent collaboration. 100% local, zero cloud dependency.
161
+
191
162
  - **2026-03-08** · 🦞 **MemOS OpenClaw Plugin — Cloud & Local**
192
163
  Official OpenClaw memory plugins launched. **Cloud Plugin**: hosted memory service with 72% lower token usage and multi-agent memory sharing ([MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)). **Local Plugin** (`v1.0.0`): 100% on-device memory with persistent SQLite, hybrid search (FTS5 + vector), task summarization & skill evolution, multi-agent collaboration, and a full Memory Viewer dashboard.
193
164
 
@@ -285,7 +256,7 @@ Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/Mem
285
256
 
286
257
  <br>
287
258
 
288
- ## 🚀 Quickstart Guide
259
+ ## 🚀 Quick-start Guide
289
260
 
290
261
  ### ☁️ 1、Cloud API (Hosted)
291
262
  #### Get API Key
@@ -372,17 +343,18 @@ Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/Mem
372
343
  res = requests.post(url=url, headers=headers, data=json.dumps(data))
373
344
  print(f"result: {res.json()}")
374
345
  ```
375
-
346
+
376
347
  <br>
377
348
 
378
349
  ## 📚 Resources
379
350
 
380
351
  - **Awesome-AI-Memory**
381
- This is a curated repository dedicated to resources on memory and memory systems for large language models. It systematically collects relevant research papers, frameworks, tools, and practical insights. The repository aims to organize and present the rapidly evolving research landscape of LLM memory, bridging multiple research directions including natural language processing, information retrieval, agentic systems, and cognitive science.
382
- - **Get started** 👉 [IAAR-Shanghai/Awesome-AI-Memory](https://github.com/IAAR-Shanghai/Awesome-AI-Memory)
352
+ This is a curated repository dedicated to resources on memory and memory systems for large language models. It systematically collects relevant research papers, frameworks, tools, and practical insights. The repository aims to organize and present the rapidly evolving research landscape of LLM memory, bridging multiple research directions including natural language processing, information retrieval, agentic systems, and cognitive science.<br/>
353
+ **Get started** 👉🏻 [IAAR-Shanghai/Awesome-AI-Memory](https://github.com/IAAR-Shanghai/Awesome-AI-Memory)
354
+
383
355
  - **MemOS Cloud OpenClaw Plugin**
384
- Official OpenClaw lifecycle plugin for MemOS Cloud. It automatically recalls context from MemOS before the agent starts and saves the conversation back to MemOS after the agent finishes.
385
- - **Get started** 👉 [MemTensor/MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)
356
+ Official OpenClaw lifecycle plugin for MemOS Cloud. It automatically recalls context from MemOS before the agent starts and saves the conversation back to MemOS after the agent finishes.<br/>
357
+ **Get started** 👉🏻 [MemTensor/MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)
386
358
 
387
359
  <br>
388
360
 
@@ -4,51 +4,24 @@
4
4
  </a>
5
5
 
6
6
  <h1 align="center">
7
- <img src="https://statics.memtensor.com.cn/logo/memos_color_m.png" alt="MemOS Logo" width="50"/>
8
- MemOS 2.0: 星尘(Stardust
9
- <img src="https://img.shields.io/badge/status-Preview-blue" alt="Preview Badge"/>
7
+ <img src="https://statics.memtensor.com.cn/logo/memos_color_m.png" alt="MemOS Logo" width="48"/>&nbsp;
8
+ MemOS 2.0&ensp;Stardust(星尘)
9
+
10
10
  </h1>
11
11
 
12
- <p>
13
- <a href="https://www.memtensor.com.cn/">
14
- <img alt="Static Badge" src="https://img.shields.io/badge/Maintained_by-MemTensor-blue">
15
- </a>
16
- <a href="https://pypi.org/project/MemoryOS">
17
- <img src="https://img.shields.io/pypi/v/MemoryOS?label=pypi%20package" alt="PyPI Version">
18
- </a>
19
- <a href="https://pypi.org/project/MemoryOS">
20
- <img src="https://img.shields.io/pypi/pyversions/MemoryOS.svg" alt="Supported Python versions">
21
- </a>
22
- <a href="https://pypi.org/project/MemoryOS">
23
- <img src="https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey" alt="Supported Platforms">
24
- </a>
25
- <a href="https://memos-docs.openmem.net/home/overview/">
26
- <img src="https://img.shields.io/badge/Documentation-view-blue.svg" alt="Documentation">
27
- </a>
28
- <a href="https://arxiv.org/abs/2507.03724">
29
- <img src="https://img.shields.io/badge/arXiv-2507.03724-b31b1b.svg" alt="ArXiv Paper">
30
- </a>
31
- <a href="https://github.com/MemTensor/MemOS/discussions">
32
- <img src="https://img.shields.io/badge/GitHub-Discussions-181717.svg?logo=github" alt="GitHub Discussions">
33
- </a>
34
- <a href="https://discord.gg/Txbx3gebZR">
35
- <img src="https://img.shields.io/badge/Discord-join%20chat-7289DA.svg?logo=discord" alt="Discord">
36
- </a>
37
- <a href="https://statics.memtensor.com.cn/memos/qr-code.png">
38
- <img src="https://img.shields.io/badge/WeChat-Group-07C160.svg?logo=wechat" alt="WeChat Group">
39
- </a>
40
- <a href="https://opensource.org/license/apache-2-0/">
41
- <img src="https://img.shields.io/badge/License-Apache_2.0-green.svg?logo=apache" alt="License">
42
- </a>
43
- <a href="https://github.com/IAAR-Shanghai/Awesome-AI-Memory">
44
- <img alt="Awesome AI Memory" src="https://img.shields.io/badge/Resources-Awesome--AI--Memory-8A2BE2">
45
- </a>
46
- </p>
12
+ <p align="center">
13
+ <br>
14
+ <a href="https://memos-docs.openmem.net/home/overview/"><img src="https://img.shields.io/badge/Docs-Get--Start-002FA7?labelColor=gray&style=for-the-badge&logo=googledocs&logoColor=white" alt="Docs"></a>
15
+ <a href="https://arxiv.org/abs/2507.03724"><img src="https://img.shields.io/badge/ArXiv-2507.03724-B31B1B?labelColor=gray&style=for-the-badge&logo=arxiv&logoColor=white" alt="ArXiv"></a>
16
+ <a href="https://x.com/MemOS_dev"><img src="https://img.shields.io/badge/Follow-MemOS-000000?labelColor=gray&style=for-the-badge&logo=x&logoColor=white" alt="X"></a>
17
+ <a href="https://discord.gg/Txbx3gebZR"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdiscord.com%2Fapi%2Fv10%2Finvites%2FTxbx3gebZR%3Fwith_counts%3Dtrue&query=%24.approximate_presence_count&suffix=%20online&label=Discord&color=404EED&labelColor=gray&style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
18
+ <a href="https://github.com/IAAR-Shanghai/Awesome-AI-Memory"><img src="https://img.shields.io/badge/Resources-Awesome--AI--Memory-8A2BE2?labelColor=gray&style=for-the-badge&logo=awesomelists&logoColor=white" alt="Resources"></a>
19
+ </p>
47
20
 
48
21
  <p align="center">
49
22
  <strong>🎯 +43.70% Accuracy vs. OpenAI Memory</strong><br/>
50
- <strong>🏆 Top-tier long-term memory + personalization</strong><br/>
51
- <strong>💰 Saves 35.24% memory tokens</strong><br/>
23
+ <strong>🏆 Top-tier Long-term Memory + Personalization</strong><br/>
24
+ <strong>💰 Saves 35.24% Memory Tokens</strong><br/>
52
25
  <sub>LoCoMo 75.80 • LongMemEval +40.43% • PrefEval-10 +2568% • PersonaMem +40.75%</sub>
53
26
  <!-- <a href="https://memos.openmem.net/">
54
27
  <img src="https://statics.memtensor.com.cn/memos/github_api_free_banner.gif" alt="MemOS Free API Banner">
@@ -64,35 +37,27 @@
64
37
 
65
38
  <!-- <br> -->
66
39
 
67
- ## 🦞 Enhanced OpenClaw with MemOS Plugin
68
-
69
- ![](https://cdn.memtensor.com.cn/img/1770612303123_mnaisk_compressed.png)
70
-
71
- 🦞 Your lobster now has a working memory system — choose **Cloud** or **Local** to get started.
72
-
73
- ### ☁️ Cloud Plugin — Hosted Memory Service
74
-
75
- - [**72% lower token usage**](https://x.com/MemOS_dev/status/2020854044583924111) — intelligent memory retrieval instead of loading full chat history
76
- - [**Multi-agent memory sharing**](https://x.com/MemOS_dev/status/2020538135487062094) — multi-instance agents share memory via same user_id, automatic context handoff
40
+ ## 🧠 MemOS Plugin: Persistent Memory for Your AI Agents ✨
77
41
 
78
- Get your API key: [MemOS Dashboard](https://memos-dashboard.openmem.net/cn/login/)
79
- Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)
42
+ <div align="center">
43
+
44
+ <img width="1660" height="664" alt="MemOS Plugin Banner" src="https://github.com/user-attachments/assets/9d15dde2-196e-4f71-a364-dd5a33062117" />
80
45
 
81
- ### 🧠 Local Plugin100% On-Device Memory
46
+ Your lobsters and Hermes Agents now have **the best** memory system choose ***Cloud Service*** or ***Self-hosted*** to get started 🏃🏻
82
47
 
83
- - **Zero cloud dependency** all data stays on your machine, persistent local SQLite storage
84
- - **Hybrid search + task & skill evolution** — FTS5 + vector search, auto task summarization, reusable skills that self-upgrade
85
- - **Multi-agent collaboration + Memory Viewer** memory isolation, skill sharing, full web dashboard with 7 management pages
48
+ | 🔌 Plugin | <div align="center"> 💡 Core Features </div> | 🧩 Resources |
49
+ | :----: | :--- | :---: |
50
+ | 🧠 [**memos-local-plugin 2.0**](https://github.com/hijzy/MemOS/tree/main/apps/memos-local-plugin) | <ul><li>One local-first memory core for **Hermes Agent** and **OpenClaw**.</li><li>Self-evolving memory: L1 trace, L2 policy, L3 world model,<br>and crystallized Skills driven by feedback.</li></ul> | 🐙 [GitHub](https://github.com/hijzy/MemOS/tree/main/apps/memos-local-plugin) · 📦 [NPM](https://www.npmjs.com/package/@memtensor/memos-local-plugin) |
51
+ | ☁️ [**OpenClaw Cloud Plugin**](https://x.com/MemOS_dev/status/2019254160919769171?s=20) | <ul><li>[Reduces token usage by 72%.](https://x.com/MemOS_dev/status/2020854044583924111)</li><li>[Multi-agent memory sharing by `user_id`.](https://x.com/MemOS_dev/status/2020538135487062094)</li></ul> | 🖥️ [MemOS Dashboard](https://memos-dashboard.openmem.net/login/) · 📖 [Full Tutorial](https://memos-docs.openmem.net/openclaw/guide#_4-update-plugin) |
86
52
 
87
- 🌐 [Homepage](https://memos-claw.openmem.net) ·
88
- 📖 [Documentation](https://memos-claw.openmem.net/docs/index.html) · 📦 [NPM](https://www.npmjs.com/package/@memtensor/memos-local-openclaw-plugin)
53
+ </div>
54
+ <br>
89
55
 
90
- ## 📌 MemOS: Memory Operating System for AI Agents
56
+ ## 👾 MemOS: Memory Operating System for LLM & AI Agents
91
57
 
92
58
  **MemOS** is a Memory Operating System for LLMs and AI agents that unifies **store / retrieve / manage** for long-term memory, enabling **context-aware and personalized** interactions with **KB**, **multi-modal**, **tool memory**, and **enterprise-grade** optimizations built in.
93
59
 
94
60
 
95
-
96
61
  ### Key Features
97
62
 
98
63
  - **Unified Memory API**: A single API to add, retrieve, edit, and delete memory—structured as a graph, inspectable and editable by design, not a black-box embedding store.
@@ -104,6 +69,12 @@ Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/Mem
104
69
 
105
70
  ### News
106
71
 
72
+ - **2026-05-09** · 🧠 **memos-local-plugin 2.0**
73
+ Official local memory plugin for **Hermes Agent** and **OpenClaw**. One core powers self-evolving memory across L1 traces, L2 policies, L3 world models, and crystallized Skills, with local-first storage and feedback-driven retrieval.
74
+
75
+ - **2026-04-10** · 👧🏻 **MemOS Hermes Agent Local Plugin**
76
+ Official Hermes Agent memory plugins launched: Hybrid retrieval (FTS5 + vector), smart dedup, tiered skill evolution, multi-agent collaboration. 100% local, zero cloud dependency.
77
+
107
78
  - **2026-03-08** · 🦞 **MemOS OpenClaw Plugin — Cloud & Local**
108
79
  Official OpenClaw memory plugins launched. **Cloud Plugin**: hosted memory service with 72% lower token usage and multi-agent memory sharing ([MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)). **Local Plugin** (`v1.0.0`): 100% on-device memory with persistent SQLite, hybrid search (FTS5 + vector), task summarization & skill evolution, multi-agent collaboration, and a full Memory Viewer dashboard.
109
80
 
@@ -201,7 +172,7 @@ Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/Mem
201
172
 
202
173
  <br>
203
174
 
204
- ## 🚀 Quickstart Guide
175
+ ## 🚀 Quick-start Guide
205
176
 
206
177
  ### ☁️ 1、Cloud API (Hosted)
207
178
  #### Get API Key
@@ -288,17 +259,18 @@ Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/Mem
288
259
  res = requests.post(url=url, headers=headers, data=json.dumps(data))
289
260
  print(f"result: {res.json()}")
290
261
  ```
291
-
262
+
292
263
  <br>
293
264
 
294
265
  ## 📚 Resources
295
266
 
296
267
  - **Awesome-AI-Memory**
297
- This is a curated repository dedicated to resources on memory and memory systems for large language models. It systematically collects relevant research papers, frameworks, tools, and practical insights. The repository aims to organize and present the rapidly evolving research landscape of LLM memory, bridging multiple research directions including natural language processing, information retrieval, agentic systems, and cognitive science.
298
- - **Get started** 👉 [IAAR-Shanghai/Awesome-AI-Memory](https://github.com/IAAR-Shanghai/Awesome-AI-Memory)
268
+ This is a curated repository dedicated to resources on memory and memory systems for large language models. It systematically collects relevant research papers, frameworks, tools, and practical insights. The repository aims to organize and present the rapidly evolving research landscape of LLM memory, bridging multiple research directions including natural language processing, information retrieval, agentic systems, and cognitive science.<br/>
269
+ **Get started** 👉🏻 [IAAR-Shanghai/Awesome-AI-Memory](https://github.com/IAAR-Shanghai/Awesome-AI-Memory)
270
+
299
271
  - **MemOS Cloud OpenClaw Plugin**
300
- Official OpenClaw lifecycle plugin for MemOS Cloud. It automatically recalls context from MemOS before the agent starts and saves the conversation back to MemOS after the agent finishes.
301
- - **Get started** 👉 [MemTensor/MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)
272
+ Official OpenClaw lifecycle plugin for MemOS Cloud. It automatically recalls context from MemOS before the agent starts and saves the conversation back to MemOS after the agent finishes.<br/>
273
+ **Get started** 👉🏻 [MemTensor/MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)
302
274
 
303
275
  <br>
304
276
 
@@ -4,7 +4,7 @@
4
4
  ##############################################################################
5
5
 
6
6
  name = "MemoryOS"
7
- version = "2.0.14"
7
+ version = "2.0.15"
8
8
  description = "Intelligence Begins with Memory"
9
9
  license = {text = "Apache-2.0"}
10
10
  readme = "README.md"
@@ -1,4 +1,4 @@
1
- __version__ = "2.0.14"
1
+ __version__ = "2.0.15"
2
2
 
3
3
  from memos.configs.mem_cube import GeneralMemCubeConfig
4
4
  from memos.configs.mem_os import MOSConfig
@@ -179,6 +179,7 @@ def init_server() -> dict[str, Any]:
179
179
  plugin_context = build_plugin_context(
180
180
  graph_db=graph_db,
181
181
  embedder=embedder,
182
+ llm=llm,
182
183
  default_cube_config=default_cube_config,
183
184
  nli_client_config=nli_client_config,
184
185
  mem_reader_config=mem_reader_config,
@@ -285,6 +286,12 @@ def init_server() -> dict[str, Any]:
285
286
  # Initialize SchedulerAPIModule
286
287
  api_module = mem_scheduler.api_module
287
288
 
289
+ # Plugins keep a reference to the original context dict, so updating the shared
290
+ # section here makes the runtime handles visible without adding a second init step.
291
+ plugin_context["shared"]["mem_scheduler"] = mem_scheduler
292
+ plugin_context["shared"]["submit_scheduler_messages"] = mem_scheduler.submit_messages
293
+ plugin_context["shared"]["api_module"] = api_module
294
+
288
295
  # Start scheduler if enabled
289
296
  if os.getenv("API_SCHEDULER_ON", "true").lower() == "true":
290
297
  mem_scheduler.start()
@@ -0,0 +1,246 @@
1
+ # Dream Plugin
2
+
3
+ **MemOS Dream** is a motive-driven, offline memory consolidation system — it forms internal motives first, recalls heterogeneous memories around those motives, and persists the results as both **dream diaries** (explainable traces) and **dream memories** (affecting future behavior).
4
+
5
+ > Without motives, it's batch summarization, not dreaming.
6
+ > Real dreams are driven by *"what's worth dreaming about"*, not *"what memories exist"*.
7
+
8
+ ## Design Philosophy
9
+
10
+ Human dreams don't randomly compress the day's material. They revolve around:
11
+
12
+ - **Repeatedly activated** things
13
+ - **Unfinished** goals
14
+ - **Emotionally intense** events
15
+ - **Conflicting** information
16
+ - **Anticipated future needs**
17
+
18
+ Dream mirrors this: it starts from *unresolved internal motives*, not from a raw memory list.
19
+
20
+ ## Narrative Scenario: Dreaming One Day Into One Strategy
21
+
22
+ This scenario explains why Dream is more than a nightly summary. During the day, the AI does not necessarily fail because each answer is wrong. It can fail because it treats one continuous user struggle as several unrelated tasks.
23
+
24
+ In this example, the user first asks for help preparing next week's weekly meeting, then discusses the future direction of an AI memory system, and finally asks for a concrete design for a filter module. The AI gives locally reasonable answers, but the user remains dissatisfied because the three topics need one shared strategic narrative.
25
+
26
+ Daytime chat input follows the codebase `MessageList` shape: each message is a dict with `role` and `content`.
27
+
28
+ ```json
29
+ [
30
+ {
31
+ "role": "user",
32
+ "content": "I need to present in next week's weekly meeting. Help me summarize this week's progress on Dream and the memory system."
33
+ },
34
+ {
35
+ "role": "assistant",
36
+ "content": "This week you completed retrieval experiments, filter interface changes, an initial Dream pipeline, user interviews, and evaluation preparation. Next week you can continue improving recall quality, metrics, and product validation."
37
+ },
38
+ {
39
+ "role": "user",
40
+ "content": "This sounds like a task list. I need it to have direction, not just a list of what happened."
41
+ },
42
+ {
43
+ "role": "assistant",
44
+ "content": "You can frame it as an OKR: the objective is improving long-term memory quality, with key results around retrieval quality, interface stability, Dream flow validation, and early user feedback."
45
+ },
46
+ {
47
+ "role": "user",
48
+ "content": "Still not right. Let's switch topics: where should this AI memory system go in the future? Stronger search, or an agent that actively understands people?"
49
+ },
50
+ {
51
+ "role": "assistant",
52
+ "content": "A practical roadmap is to improve search and recall in the short term, add personalization in the middle term, and evolve into a proactive assistant in the long term."
53
+ },
54
+ {
55
+ "role": "user",
56
+ "content": "That's too generic. Anyone could say that. It doesn't explain why this direction is necessary."
57
+ },
58
+ {
59
+ "role": "assistant",
60
+ "content": "You can describe the direction as moving from passive retrieval to proactive memory, where the system reminds users of important information at the right time."
61
+ },
62
+ {
63
+ "role": "user",
64
+ "content": "Now let's discuss a concrete design. The current project recalls many memories, but only a few are actually useful. I want to build a new filter module. How should it work?"
65
+ },
66
+ {
67
+ "role": "assistant",
68
+ "content": "You can combine relevance, importance, and recency scores, then add a reranker. The interface can support metadata constraints and a user feedback loop."
69
+ },
70
+ {
71
+ "role": "user",
72
+ "content": "These are all components. The design has no soul. I don't know how to convince people that it matters."
73
+ }
74
+ ]
75
+ ```
76
+
77
+ The daytime failure is not caused by missing facts. It is caused by over-fragmented problem boundaries. The AI treats the weekly report as writing, the future plan as a roadmap, and the filter as an engineering module. It produces correct but shallow local answers. The real user need is different: how to turn this week's progress, the long-term direction, and the current module design into one coherent story.
78
+
79
+ At night, Dream does not need to replay every message. It focuses on repeated failure signals: "too scattered", "too generic", "like components", and "no direction". Dream can cluster those memories into one motive:
80
+
81
+ ```json
82
+ {
83
+ "motive_id": "motive:dream_memory_strategy_alignment",
84
+ "description": "Several conversations failed for the same hidden reason: weekly reporting, future planning, and filter design were treated as separate tasks, while the user needed a shared strategic narrative.",
85
+ "memory_ids": ["weekly_report_thread", "future_planning_thread", "filter_design_thread"]
86
+ }
87
+ ```
88
+
89
+ In the dream, the AI sees three tables. On the first table is the weekly report, full of completed tasks but without a title. On the second is the future roadmap, long and ambitious but with no starting point. On the third is the filter architecture, full of valves, scores, and rerankers, but it is unclear whose pain this machine is meant to solve.
90
+
91
+ The AI first tries to patch each table separately: add a better title to the report, add a vision to the roadmap, add formulas to the filter. Each patch collapses because it still does not answer the same hidden question. Then one sentence appears in the dream:
92
+
93
+ > The user does not want an AI that searches better. The user wants an AI that knows what is worth remembering, when it should be recalled, and why it matters now.
94
+
95
+ The global conclusion after waking is:
96
+
97
+ > This week's work can be unified around the "memory selection layer". In the short term, it is a filter that selects truly useful memories from many candidates. In the middle term, it becomes a reflection mechanism that turns daytime failures, conflicts, and fragments into insights. In the long term, it is the starting point for moving AI from passive search toward active cognition.
98
+
99
+ With that conclusion, the AI can rewrite all three answers the next morning.
100
+
101
+ The weekly report becomes:
102
+
103
+ > The core finding this week is that the bottleneck of long-term memory is not only whether the system can recall more content, but whether it can judge which memories are truly important in the current context. Around this finding, we ran retrieval experiments, user interviews, filter interface updates, and the first Dream pipeline validation. Together, these efforts point to a new middle layer: the memory selection layer.
104
+
105
+ The future plan becomes:
106
+
107
+ > The future system should not only be searchable memory. It should become reflective memory. It should not only store the past, but continuously judge which experiences are becoming patterns, which failures deserve reflection, and which information should proactively surface later.
108
+
109
+ The filter design becomes:
110
+
111
+ > The filter is the smallest implementation of the memory selection layer. Version one uses relevance, importance, recency, and the current user goal for explainable selection. Version two adds user feedback to learn which memories were actually used. Version three connects to Dream, so fragmented daytime memories that were not understood in the moment can be reorganized into new insights at night.
112
+
113
+ In this example, Dream is not mystical inspiration. It is offline problem reframing. It treats the user's three dissatisfied reactions as one system signal: the user did not need isolated advice, but a cognitive throughline connecting reporting, strategy, and engineering design.
114
+
115
+ ## Pipeline
116
+
117
+ ```
118
+ STEP 1 STEP 2 STEP 3 STEP 4
119
+ Form Motives ──► Recall Around ──► Directed Dream ──► Persist
120
+ (why dream?) Motives (consolidate) (diary + memory)
121
+ (cross-type)
122
+ ```
123
+
124
+ | Step | Stage Class | What It Does |
125
+ |------|-------------|--------------|
126
+ | 1 | `MotiveFormation` | LLM-powered: cluster pending memories into dream motives by identifying cross-conversation patterns, unresolved tensions, and repeated themes. Falls back to single-cluster heuristic without LLM. |
127
+ | 2 | `DirectRecall` | Use source-memory embeddings to recall related memories from `UserMemory` and `LongTermMemory` scopes. Results are deduplicated and ranked by similarity. |
128
+ | 3 | `ConsolidationReasoning` | LLM-powered deep dreaming: combine source and recalled memories, ask the LLM to reframe problems and produce concrete insights. Output: `DreamAction` (CREATE → `InsightMemory`) with hypothetical-deduction rationale. Falls back to placeholder without LLM. |
129
+ | 4a | `StructuredDiarySummary` | Package reasoning output into a human-readable diary entry (title, summary, dream content, motive context). Deterministic — no additional LLM call. |
130
+ | 4b | `DreamPersistence` | Execute DreamActions against `graph_db` (create/update/merge/archive across memory types) + persist diary. Fires `dream.before_persist` / `dream.after_persist` hooks. |
131
+
132
+ All four stages are fully implemented. Steps 1 and 3 are LLM-powered (each with dedicated prompts in `prompts/`); step 2 uses embedding-based similarity search; steps 4a and 4b are deterministic. When the LLM is unavailable, steps 1 and 3 fall back to simple heuristics. Each stage can be independently replaced — see [Contributing](#contributing).
133
+
134
+ ## Triggering
135
+
136
+ ```
137
+ add memory ──► on_add_signal ──► DreamSignalStore ──► threshold reached?
138
+ (accumulate IDs) ├─ yes → submit scheduler task → pipeline
139
+ └─ no → keep accumulating
140
+ ```
141
+
142
+ Manual trigger is also available via `POST /dream/trigger/cube`.
143
+
144
+ ## Directory Structure
145
+
146
+ ```
147
+ dream/
148
+ ├── plugin.py # Plugin entry point, wiring & registration
149
+ ├── hooks.py # Hook handlers (signal capture + execution orchestration)
150
+ ├── hook_defs.py # Plugin-scoped hooks (before/after persist)
151
+ ├── maintenance.py # Lifecycle maintenance (contribution entry point)
152
+ ├── signal_store.py # In-memory signal accumulator
153
+ ├── types.py # Data models (DreamAction, DreamResult, DreamMemoryLifecycle, etc.)
154
+ ├── pipeline/
155
+ │ ├── base.py # Pipeline orchestrator
156
+ │ ├── motive.py # Stage 1 — motive formation
157
+ │ ├── recall.py # Stage 2 — cross-type recall
158
+ │ ├── reasoning.py # Stage 3 — consolidation reasoning (produces DreamActions)
159
+ │ ├── diary.py # Stage 4a — diary generation
160
+ │ └── persistence.py # Stage 4b — memory write-back + diary persistence
161
+ ├── prompts/
162
+ │ ├── motive_prompt.py # Motive formation prompt
163
+ │ └── reasoning_prompt.py # Consolidation reasoning prompt
164
+ └── routers/
165
+ ├── trigger_router.py # POST /dream/trigger/cube
166
+ └── diary_router.py # POST /dream/diary
167
+ ```
168
+
169
+ ## API
170
+
171
+ ### Dream plugin endpoints
172
+
173
+ | Method | Endpoint | Description |
174
+ |--------|----------|-------------|
175
+ | POST | `/dream/trigger/cube` | Manually trigger a Dream run for a cube |
176
+ | POST | `/dream/diary` | Query diary entries with filter |
177
+ | GET | `/dream/diary/health` | Plugin status & scheduler connectivity |
178
+
179
+ ### External endpoints that feed Dream signals
180
+
181
+ | Method | Endpoint | How it connects |
182
+ |--------|----------|-----------------|
183
+ | POST | `/add` | `@hookable("add")` → `add.after` hook → `on_add_signal` accumulates memory IDs |
184
+ | POST | `/chat/complete`, `/chat/stream` | Chat internally calls `handle_add_memories` → same `add.after` hook chain |
185
+
186
+ ### Internal
187
+
188
+ | Component | How it connects |
189
+ |-----------|-----------------|
190
+ | `MemDreamMessageHandler` (scheduler) | Consumes dream tasks → `trigger_single_hook(H.DREAM_EXECUTE)` → pipeline |
191
+
192
+ ### Query example
193
+
194
+ ```json
195
+ POST /dream/diary
196
+ {
197
+ "cube_id": "user_123",
198
+ "filter": { "created_after": "2026-05-06", "limit": 5 }
199
+ }
200
+ ```
201
+
202
+ ## Persistence Design
203
+
204
+ ### Two-track write
205
+
206
+ Dream persistence produces **two kinds of output**:
207
+
208
+ 1. **Memory store write-back** — `DreamAction` mutations applied to the heterogeneous memory system:
209
+ - `LongTermMemory` / `UserMemory`
210
+ - `SkillMemory`
211
+ - `ProfileMemory`
212
+ - `PreferenceMemory`
213
+ - `InsightMemory`
214
+
215
+ 2. **Dream Diary** — an explainable trace stored in `graph_db` and queryable via the diary API.
216
+
217
+ ### Persistence conditions
218
+
219
+ A `DreamAction` is only persisted when:
220
+
221
+ - **Hypothetical deduction passes**: the `rationale` field must demonstrate that a concrete question can be answered better with this memory. Empty rationale → action is skipped.
222
+ - **Confidence > 0**: the reasoning stage must assign non-zero confidence.
223
+
224
+ ### Lifecycle maintenance
225
+
226
+ Each Dream-produced memory carries `DreamMemoryLifecycle` metadata (defined in `types.py`) and is designed for periodic maintenance. **The data model is in place but the maintenance logic is not yet implemented** — see `maintenance.py` for the contribution guide.
227
+
228
+ | Condition | Action |
229
+ |-----------|--------|
230
+ | Long time not hit (`last_hit_at` stale) | Decay / archive |
231
+ | Hit but low usefulness (`usefulness_score` below threshold) | Archive |
232
+ | Overturned by feedback (`invalidated_by_feedback = true`) | Immediate archive |
233
+
234
+ ## Contributing
235
+
236
+ Each stage can be replaced independently:
237
+
238
+ | Want to improve… | Start here | Implement |
239
+ |------------------|------------|-----------|
240
+ | Motive detection — add signal sources beyond newness (conflict, frequency, feedback) | `motive.py`, `prompts/motive_prompt.py` | `form()` |
241
+ | Recall scope — extend beyond UserMemory / LongTermMemory | `recall.py` | `gather()` |
242
+ | Reasoning depth — multi-strategy or multi-action output | `reasoning.py`, `prompts/reasoning_prompt.py` | `reason()` |
243
+ | Diary narrative — LLM-generated prose instead of structured packaging | `diary.py` | `generate()` |
244
+ | Persistence logic — validation, conflict detection before write | `persistence.py` | `persist()` |
245
+ | Lifecycle maintenance (not yet implemented) | `maintenance.py` | `run_maintenance()` |
246
+ | Signal policies (dedup, decay, cooldown) | `signal_store.py` | `record_add()` / `should_trigger()` |