Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
</a>
<a href="https://github.com/IAAR-Shanghai/Awesome-AI-Memory">
<img alt="Awesome AI Memory" src="https://img.shields.io/badge/Resources-Awesome--AI--Memory-8A2BE2">
</a>
</a>
</p>

<p align="center">
Expand All @@ -55,7 +55,7 @@
</a>

</p>

</div>

Get Free API: [Try API](https://memos-dashboard.openmem.net/quickstart/?source=github)
Expand All @@ -68,11 +68,11 @@ Get Free API: [Try API](https://memos-dashboard.openmem.net/quickstart/?source=g
![](https://cdn.memtensor.com.cn/img/1770612303123_mnaisk_compressed.png)

- [**72% lower token usage**](https://x.com/MemOS_dev/status/2020854044583924111) – intelligent memory retrieval instead of loading full chat history
- [**Multi-agent memory sharing**](https://x.com/MemOS_dev/status/2020538135487062094) – multi-instance agents share memory via same user_id. Automatic context handoff.
- [**Multi-agent memory sharing**](https://x.com/MemOS_dev/status/2020538135487062094) – multi-instance agents share memory via same user_id. Automatic context handoff.

🦞 Your lobster now has a working memory system.

Get your API key: [MemOS Dashboard](https://memos-dashboard.openmem.net/cn/login/)
Get your API key: [MemOS Dashboard](https://memos-dashboard.openmem.net/cn/login/)
Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin)

## 📌 MemOS: Memory Operating System for AI Agents
Expand All @@ -92,7 +92,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe

### News

- **2025-12-24** · 🎉 **MemOS v2.0: Stardust (星尘) Release**
- **2025-12-24** · 🎉 **MemOS v2.0: Stardust (星尘) Release**
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.
<details>
<summary>✨ <b>New Features</b></summary>
Expand Down Expand Up @@ -139,7 +139,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe

</details>

- **2025-08-07** · 🎉 **MemOS v1.0.0 (MemCube) Release**
- **2025-08-07** · 🎉 **MemOS v1.0.0 (MemCube) Release**
First MemCube release with a word-game demo, LongMemEval evaluation, BochaAISearchRetriever integration, NebulaGraph support, improved search capabilities, and the official Playground launch.

<details>
Expand Down Expand Up @@ -177,11 +177,11 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe

</details>

- **2025-07-07** · 🎉 **MemOS v1.0: Stellar (星河) Preview Release**
- **2025-07-07** · 🎉 **MemOS v1.0: Stellar (星河) Preview Release**
A SOTA Memory OS for LLMs is now open-sourced.
- **2025-07-04** · 🎉 **MemOS Paper Release**
- **2025-07-04** · 🎉 **MemOS Paper Release**
[MemOS: A Memory OS for AI System](https://arxiv.org/abs/2507.03724) is available on arXiv.
- **2024-07-04** · 🎉 **Memory3 Model Release at WAIC 2024**
- **2024-07-04** · 🎉 **Memory3 Model Release at WAIC 2024**
The Memory3 model, featuring a memory-layered architecture, was unveiled at the 2024 World Artificial Intelligence Conference.

<br>
Expand All @@ -194,9 +194,9 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
- Go to **API Keys** and copy your key

#### Next Steps
- [MemOS Cloud Getting Started](https://memos-docs.openmem.net/memos_cloud/quick_start/)
- [MemOS Cloud Getting Started](https://memos-docs.openmem.net/memos_cloud/quick_start/)
Connect to MemOS Cloud and enable memory in minutes.
- [MemOS Cloud Platform](https://memos.openmem.net/?from=/quickstart/)
- [MemOS Cloud Platform](https://memos.openmem.net/?from=/quickstart/)
Explore the Cloud dashboard, features, and workflows.

### 🖥️ 2、Self-Hosted (Local/Private)
Expand Down Expand Up @@ -234,7 +234,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
```python
import requests
import json

data = {
"user_id": "8736b16e-1d20-4163-980b-a5063c3facdc",
"mem_cube_id": "b32d0977-435d-4828-a86f-4f47f8b55bca",
Expand All @@ -250,15 +250,15 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
"Content-Type": "application/json"
}
url = "http://localhost:8000/product/add"

res = requests.post(url=url, headers=headers, data=json.dumps(data))
print(f"result: {res.json()}")
```
- Search User Memory
```python
import requests
import json

data = {
"query": "What do I like",
"user_id": "8736b16e-1d20-4163-980b-a5063c3facdc",
Expand All @@ -268,7 +268,7 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe
"Content-Type": "application/json"
}
url = "http://localhost:8000/product/search"

res = requests.post(url=url, headers=headers, data=json.dumps(data))
print(f"result: {res.json()}")
```
Expand All @@ -277,8 +277,8 @@ Try it: Full tutorial → [MemOS-Cloud-OpenClaw-Plugin](https://github.com/MemTe

## 📚 Resources

- **Awesome-AI-Memory**
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.
- **Awesome-AI-Memory**
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.
- **Get started** 👉 [IAAR-Shanghai/Awesome-AI-Memory](https://github.com/IAAR-Shanghai/Awesome-AI-Memory)
- **MemOS Cloud OpenClaw Plugin**
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.
Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile.krolik
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# MemOS with Krolik Security Extensions
#
#
# This Dockerfile builds MemOS with authentication, rate limiting, and admin API.
# It uses the overlay pattern to keep customizations separate from base code.

Expand Down
2 changes: 1 addition & 1 deletion examples/data/mem_cube_tree/textual_memory.json
Original file line number Diff line number Diff line change
Expand Up @@ -4216,4 +4216,4 @@
"edges": [],
"total_nodes": 4,
"total_edges": 0
}
}
2 changes: 1 addition & 1 deletion src/memos/graph_dbs/polardb.py
Original file line number Diff line number Diff line change
Expand Up @@ -1919,7 +1919,7 @@ def search_by_embedding(
else:
pass

logger.info(" search_by_embedding query: %s", query)
logger.info(" search_by_embedding query: %s user_name: %s", query, user_name)

with self._get_connection() as conn, conn.cursor() as cursor:
if params:
Expand Down
9 changes: 5 additions & 4 deletions src/memos/mem_feedback/feedback.py
Original file line number Diff line number Diff line change
Expand Up @@ -559,23 +559,24 @@ def check_has_edges(mem_item: TextualMemoryItem) -> tuple[TextualMemoryItem, boo
edges = self.searcher.graph_store.get_edges(mem_item.id, user_name=user_name)
return (mem_item, len(edges) == 0)

logger.info(f"[feedback _retrieve] query: {query}, user_name: {user_name}")
text_mems = self.searcher.search(
query,
query=query,
top_k=top_k,
info=info,
memory_type="AllSummaryMemory",
user_name=user_name,
top_k=top_k,
full_recall=True,
)
text_mems = [item[0] for item in text_mems if float(item[1]) > 0.01]

if self.pref_feedback:
pref_mems = self.searcher.search(
query,
query=query,
top_k=top_k,
info=info,
memory_type="PreferenceMemory",
user_name=user_name,
top_k=top_k,
include_preference_memory=True,
full_recall=True,
)
Expand Down
2 changes: 2 additions & 0 deletions src/memos/mem_os/utils/default_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@
"""

import logging

from typing import Literal

from memos.configs.mem_cube import GeneralMemCubeConfig
from memos.configs.mem_os import MOSConfig
from memos.mem_cube.general import GeneralMemCube


logger = logging.getLogger(__name__)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def retrieve(
**kwargs,
) -> list[tuple[TextualMemoryItem, float]]:
logger.info(
f"[RECALL] Start query='{query}', top_k={top_k}, mode={mode}, memory_type={memory_type}"
f"[RECALL] Start query='{query}', top_k={top_k}, mode={mode}, memory_type={memory_type}, user_name={user_name}"
)
parsed_goal, query_embedding, _context, query = self._parse_task(
query,
Expand Down Expand Up @@ -859,6 +859,7 @@ def _retrieve_from_skill_memory(
mode: str = "fast",
):
"""Retrieve and rerank from SkillMemory"""

if memory_type not in ["All", "SkillMemory"]:
logger.info(f"[PATH-E] '{query}' Skipped (memory_type does not match)")
return []
Expand Down