Skip to content

Commit f2217d3

Browse files
author
yuan.wang
committed
Merge branch 'dev' into feat/fix_palyground_bug
2 parents e6de2c1 + 2dcf1af commit f2217d3

File tree

4 files changed

+26
-9
lines changed

4 files changed

+26
-9
lines changed

README.md

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
MemOS is an open-source **Agent Memory framework** that empowers AI agents with **long-term memory, personality consistency, and contextual recall**. It enables agents to **remember past interactions**, **learn over time**, and **build evolving identities** across sessions.
44

55
Designed for **AI companions, role-playing NPCs, and multi-agent systems**, MemOS provides a unified API for **memory representation, retrieval, and update** — making it the foundation for next-generation **memory-augmented AI agents**.
6+
7+
🆕 **MemOS 2.0** introduces **knowledge base system**, **multi-modal memory** (images & documents), **tool memory** for Agent optimization, **memory feedback mechanism** for precise control, and **enterprise-grade architecture** with Redis Streams scheduler and advanced DB optimizations.
68
<div align="center">
79
<a href="https://memos.openmem.net/">
810
<img src="https://statics.memtensor.com.cn/memos/memos-banner.gif" alt="MemOS Banner">
911
</a>
1012

1113
<h1 align="center">
12-
<img src="https://statics.memtensor.com.cn/logo/memos_color_m.png" alt="MemOS Logo" width="50"/> MemOS 1.0: 星河 (Stellar) <img src="https://img.shields.io/badge/status-Preview-blue" alt="Preview Badge"/>
14+
<img src="https://statics.memtensor.com.cn/logo/memos_color_m.png" alt="MemOS Logo" width="50"/> MemOS 2.0: 星尘(Stardust) <img src="https://img.shields.io/badge/status-Preview-blue" alt="Preview Badge"/>
1315
</h1>
1416

1517
<p>
@@ -60,7 +62,7 @@ Get Free API: [Try API](https://memos-dashboard.openmem.net/quickstart/?source=g
6062

6163
<img src="https://cdn.memtensor.com.cn/img/1762436050812_3tgird_compressed.png" alt="SOTA SCORE">
6264

63-
**MemOS** is an operating system for Large Language Models (LLMs) that enhances them with long-term memory capabilities. It allows LLMs to store, retrieve, and manage information, enabling more context-aware, consistent, and personalized interactions.
65+
**MemOS** is an operating system for Large Language Models (LLMs) that enhances them with long-term memory capabilities. It allows LLMs to store, retrieve, and manage information, enabling more context-aware, consistent, and personalized interactions. **MemOS 2.0** features comprehensive knowledge base management, multi-modal memory support, tool memory for Agent enhancement, and enterprise-grade architecture optimizations.
6466

6567
- **Website**: https://memos.openmem.net/
6668
- **Documentation**: https://memos-docs.openmem.net/home/overview/
@@ -71,7 +73,8 @@ Get Free API: [Try API](https://memos-dashboard.openmem.net/quickstart/?source=g
7173

7274
Stay up to date with the latest MemOS announcements, releases, and community highlights.
7375

74-
76+
- **2025-12-24** - 🎉 **MemOS v2.0: Stardust (星尘) Release**:
77+
Major upgrade featuring comprehensive Knowledge Base system with automatic document/URL parsing and cross-project sharing; Memory feedback mechanism for correction and precise deletion; Multi-modal memory supporting images and charts; Tool Memory to enhance Agent planning; Full architecture upgrade with Redis Streams multi-level queue scheduler and DB optimizations; New streaming/non-streaming Chat interfaces; Complete MCP upgrade; Lightweight deployment modes (quick & full).
7578
- **2025-11-06** - 🎉 MemOS v1.1.3 (Async Memory & Preference):
7679
Millisecond-level async memory add (support plain-text-memory and
7780
preference memory); enhanced BM25, graph recall, and mixture search; full
@@ -114,7 +117,19 @@ showcasing its capabilities in **information extraction**, **temporal and cross-
114117
- **Textual Memory**: For storing and retrieving unstructured or structured text knowledge.
115118
- **Activation Memory**: Caches key-value pairs (`KVCacheMemory`) to accelerate LLM inference and context reuse.
116119
- **Parametric Memory**: Stores model adaptation parameters (e.g., LoRA weights).
120+
- **Tool Memory** 🆕: Records Agent tool call trajectories and experiences to improve planning capabilities.
121+
- **📚 Knowledge Base System** 🆕: Build multi-dimensional knowledge bases with automatic document/URL parsing, splitting, and cross-project sharing capabilities.
122+
- **🔧 Memory Controllability** 🆕:
123+
- **Feedback Mechanism**: Use `add_feedback` API to correct, supplement, or replace existing memories with natural language.
124+
- **Precise Deletion**: Delete specific memories by User ID or Memory ID via API or MCP tools.
125+
- **👁️ Multi-Modal Support** 🆕: Support for image understanding and memory, including chart parsing in documents.
126+
- **⚡ Advanced Architecture**:
127+
- **DB Optimization**: Enhanced connection management and batch insertion for high-concurrency scenarios.
128+
- **Advanced Retrieval**: Custom tag and info field filtering with complex logical operations.
129+
- **Redis Streams Scheduler**: Multi-level queue architecture with intelligent orchestration for fair multi-tenant scheduling.
130+
- **Stream & Non-Stream Chat**: Ready-to-use streaming and non-streaming chat interfaces.
117131
- **🔌 Extensible**: Easily extend and customize memory modules, data sources, and LLM integrations.
132+
- **🏂 Lightweight Deployment** 🆕: Support for quick mode and complete mode deployment options.
118133

119134
## 🚀 Getting Started
120135

docs/openapi.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -884,7 +884,7 @@
884884
"type": "string",
885885
"title": "Session Id",
886886
"description": "Session ID for the MOS. This is used to distinguish between different dialogue",
887-
"default": "41bb5e18-252d-4948-918c-07d82aa47086"
887+
"default": "8dcdbd62-c231-4678-a3ae-0946b7d9ce14"
888888
},
889889
"chat_model": {
890890
"$ref": "#/components/schemas/LLMConfigFactory",

src/memos/api/config.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ def get_reranker_config() -> dict[str, Any]:
378378
return {
379379
"backend": embedder_backend,
380380
"config": {
381-
"url": os.getenv("MOS_RERANKER_URL"),
381+
"url": os.getenv("MOS_RERANKER_URL", "localhost:8000/v1/rerank"),
382382
"model": os.getenv("MOS_RERANKER_MODEL", "bge-reranker-v2-m3"),
383383
"timeout": 10,
384384
"headers_extra": json.loads(os.getenv("MOS_RERANKER_HEADERS_EXTRA", "{}")),
@@ -404,7 +404,7 @@ def get_feedback_reranker_config() -> dict[str, Any]:
404404
return {
405405
"backend": embedder_backend,
406406
"config": {
407-
"url": os.getenv("MOS_RERANKER_URL"),
407+
"url": os.getenv("MOS_RERANKER_URL", "localhost:8000/v1/rerank"),
408408
"model": os.getenv("MOS_FEEDBACK_RERANKER_MODEL", "bge-reranker-v2-m3"),
409409
"timeout": 10,
410410
"headers_extra": json.loads(os.getenv("MOS_RERANKER_HEADERS_EXTRA", "{}")),
@@ -468,7 +468,7 @@ def get_internet_config() -> dict[str, Any]:
468468
return {
469469
"backend": "bocha",
470470
"config": {
471-
"api_key": os.getenv("BOCHA_API_KEY"),
471+
"api_key": os.getenv("BOCHA_API_KEY", "bocha"),
472472
"max_results": 15,
473473
"num_per_request": 10,
474474
"reader": {
@@ -671,7 +671,7 @@ def is_scheduler_enabled() -> bool:
671671
@staticmethod
672672
def is_default_cube_config_enabled() -> bool:
673673
"""Check if default cube config is enabled via environment variable."""
674-
return os.getenv("MOS_ENABLE_DEFAULT_CUBE_CONFIG", "false").lower() == "true"
674+
return os.getenv("MOS_ENABLE_DEFAULT_CUBE_CONFIG", "true").lower() == "true"
675675

676676
@staticmethod
677677
def is_dingding_bot_enabled() -> bool:

src/memos/api/handlers/search_handler.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ def handle_search_memories(self, search_req: APISearchRequest) -> SearchResponse
5454

5555
results = cube_view.search_memories(search_req)
5656

57-
self.logger.info(f"[SearchHandler] Final search results count={len(results)}")
57+
self.logger.info(
58+
f"[SearchHandler] Final search results: count={len(results)} results={results}"
59+
)
5860

5961
return SearchResponse(
6062
message="Search completed successfully",

0 commit comments

Comments
 (0)