Skip to content

Commit 21ea68b

Browse files
author
halo
committed
feat: 添加 MemOS 记忆管理工具的 README、数据配置和 logo 文件
1 parent dd76262 commit 21ea68b

3 files changed

Lines changed: 289 additions & 0 deletions

File tree

tools/tool_memos/README.md

Lines changed: 284 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,284 @@
1+
# MemOS 记忆管理工具
2+
3+
基于 MemOS 记忆存储系统 API 封装的 Python 记忆管理工具函数,支持记忆检索、消息添加、记忆获取等功能。MemOS 会自动解析消息并处理记忆,召回包括事实记忆、偏好记忆、工具记忆三类,让 AI 拥有持续记忆与成长能力。
4+
5+
## 一、项目介绍
6+
7+
### 1.1 核心功能
8+
9+
- **记忆检索(search_memory)**:根据查询文本检索指定用户的记忆,返回与查询内容最相关的事实记忆、偏好记忆和工具记忆片段。
10+
- **消息添加(add_message)**:将会话消息批量写入 MemOS,支持多角色(user/assistant/system/tool)、多类型内容,MemOS 会自动解析并生成记忆。
11+
- **记忆获取(get_memory)**:获取某个用户的全量记忆数据,支持分页查询,包含事实记忆、偏好记忆与工具记忆。
12+
13+
### 1.2 适用场景
14+
15+
- **用户画像构建**:通过持续积累用户对话记忆,自动生成用户偏好与行为画像。
16+
- **个性化推荐**:基于用户历史记忆数据,提供更贴合用户需求的回答和推荐。
17+
- **聊天历史管理**:将对话消息持久化存储,支持跨会话的上下文回忆。
18+
- **用户行为跟踪**:记录用户交互行为,支持后续的数据分析与洞察。
19+
- **智能客服增强**:结合历史记忆为用户提供连贯、个性化的客服体验。
20+
21+
---
22+
23+
## 二、环境准备
24+
25+
### 2.1 获取 API Key
26+
27+
使用前需在 MemOS 控制台获取 API Key:
28+
29+
1. 登录 MemOS 平台
30+
2. 进入 **API 控制台** > **接口密钥**
31+
3. 创建或复制已有的 API Key
32+
33+
### 2.2 基础地址
34+
35+
```
36+
https://memos.memtensor.cn/api/openmem/v1
37+
```
38+
39+
### 2.3 认证方式
40+
41+
所有请求需在 Header 中携带 Token 认证:
42+
43+
```
44+
Authorization: Token YOUR_API_KEY
45+
Content-Type: application/json
46+
```
47+
48+
---
49+
50+
## 三、使用说明
51+
52+
本工具包含以下三个函数:
53+
54+
### 3.1 search_memory — 检索记忆
55+
56+
**接口**`POST /search/memory`
57+
58+
该接口用于检索指定用户的记忆,返回与查询内容最相关的记忆片段供 Agent 使用。召回包括事实记忆、偏好记忆、工具记忆三类。
59+
60+
**请求参数:**
61+
62+
| 参数名 | 类型 | 必填 | 说明 |
63+
| :--- | :--- | :--- | :--- |
64+
| `user_id` | string || 用户唯一标识符 |
65+
| `query` | string || 查询文本内容(token 上限 20k) |
66+
| `conversation_id` | string || 会话唯一标识符 |
67+
| `filter` | object || 记忆过滤条件,支持逻辑/比较运算符 |
68+
| `knowledgebase_ids` | string[] || 可访问知识库范围(默认空) |
69+
| `memory_limit_number` | number || 事实记忆返回条数(默认 6,最大 25) |
70+
| `include_preference` | boolean || 是否召回偏好记忆(默认 true) |
71+
| `preference_limit_number` | number || 偏好记忆条数(默认 6,最大 25) |
72+
| `include_tool_memory` | boolean || 是否召回工具记忆(默认 false) |
73+
| `tool_memory_limit_number` | number || 工具记忆条数(默认 6,最大 25) |
74+
| `include_skill` | boolean || 是否召回技能(默认 false) |
75+
| `skill_limit_number` | number || 技能条数(默认 6,最大 25) |
76+
77+
**请求示例:**
78+
79+
```python
80+
import requests, json, os
81+
82+
data = {
83+
"query": "我国庆想出去玩,帮我推荐个没去过的城市",
84+
"user_id": "memos_user_123",
85+
"conversation_id": "0928"
86+
}
87+
88+
headers = {
89+
"Content-Type": "application/json",
90+
"Authorization": f"Token {os.environ['MEMOS_API_KEY']}"
91+
}
92+
93+
res = requests.post(
94+
url=f"{os.environ['MEMOS_BASE_URL']}/search/memory",
95+
headers=headers,
96+
data=json.dumps(data)
97+
)
98+
print(res.json())
99+
```
100+
101+
**响应示例:**
102+
103+
```json
104+
{
105+
"code": 0,
106+
"data": {
107+
"memory_detail_list": [
108+
{
109+
"id": "mem_123",
110+
"memory_key": "出行偏好",
111+
"memory_value": "用户喜欢自驾游",
112+
"memory_type": "LongTermMemory",
113+
"confidence": 0.95,
114+
"relativity": 0.87,
115+
"tags": ["旅游", "偏好"],
116+
"status": "activated"
117+
}
118+
],
119+
"preference_detail_list": [
120+
{
121+
"id": "pref_456",
122+
"preference_type": "explicit_preference",
123+
"preference": "倾向选择南方城市",
124+
"reasoning": "历史对话中多次提及"
125+
}
126+
],
127+
"tool_memory_detail_list": [],
128+
"skill_detail_list": []
129+
},
130+
"message": "success"
131+
}
132+
```
133+
134+
---
135+
136+
### 3.2 add_message — 添加消息
137+
138+
**接口**`POST /add/message`
139+
140+
该接口用于添加会话消息,支持多类型内容、批量添加。MemOS 会自动解析消息并处理记忆。
141+
142+
**请求参数:**
143+
144+
| 参数名 | 类型 | 必填 | 说明 |
145+
| :--- | :--- | :--- | :--- |
146+
| `user_id` | string || 消息关联的用户唯一标识符 |
147+
| `conversation_id` | string || 消息关联的会话唯一标识符 |
148+
| `messages` | array || 消息对象数组(总 token 上限 20k) |
149+
| `agent_id` | string || Agent 唯一标识符 |
150+
| `app_id` | string || 应用唯一标识符 |
151+
| `tags` | array || 自定义标签列表 |
152+
| `info` | object || 自定义元信息字段 |
153+
| `allow_public` | boolean || 记忆是否允许写入公共库(默认 false) |
154+
| `allow_knowledgebase_ids` | array || 允许写入的知识库范围 |
155+
| `async_mode` | boolean || 是否异步添加记忆(默认 true) |
156+
157+
**消息对象字段:**
158+
159+
| 字段 | 类型 | 必填 | 说明 |
160+
| :--- | :--- | :--- | :--- |
161+
| `role` | string || 消息角色:user / assistant / system / tool |
162+
| `content` | string / object[] || 消息内容文本 |
163+
| `chat_time` | string || 对话时间(结构化或中文描述) |
164+
165+
**请求示例:**
166+
167+
```python
168+
import requests, json, os
169+
170+
data = {
171+
"user_id": "memos_user_123",
172+
"conversation_id": "0610",
173+
"messages": [
174+
{"role": "user", "content": "我暑假定好去广州旅游"},
175+
{"role": "assistant", "content": "您可以考虑【七天、全季、希尔顿】"}
176+
]
177+
}
178+
179+
headers = {
180+
"Content-Type": "application/json",
181+
"Authorization": f"Token {os.environ['MEMOS_API_KEY']}"
182+
}
183+
184+
res = requests.post(
185+
url=f"{os.environ['MEMOS_BASE_URL']}/add/message",
186+
headers=headers,
187+
data=json.dumps(data)
188+
)
189+
print(res.json())
190+
```
191+
192+
**响应示例:**
193+
194+
```json
195+
{
196+
"code": 0,
197+
"data": {
198+
"success": true,
199+
"task_id": "task_abc123",
200+
"status": "running"
201+
},
202+
"message": "ok"
203+
}
204+
```
205+
206+
---
207+
208+
### 3.3 get_memory — 获取记忆
209+
210+
**接口**`POST /get/memory`
211+
212+
该接口用于获取某个用户的记忆,包含事实记忆、偏好记忆与工具记忆,支持分页查询。
213+
214+
**请求参数:**
215+
216+
| 参数名 | 类型 | 必填 | 说明 |
217+
| :--- | :--- | :--- | :--- |
218+
| `user_id` | string || 获取的记忆所关联的用户唯一标识符 |
219+
| `page` | number || 分页页码(默认 1) |
220+
| `size` | number || 每类记忆当前页返回条目数量(默认 10,最大 50) |
221+
| `filter` | object || 记忆过滤条件,支持 agent_id、app_id、create_time、update_time 及 info 中的字段 |
222+
| `include_preference` | boolean || 是否返回偏好记忆(默认 true) |
223+
| `include_tool_memory` | boolean || 是否返回工具记忆(默认 true) |
224+
225+
**请求示例:**
226+
227+
```python
228+
import requests, json, os
229+
230+
data = {
231+
"user_id": "memos_user_123"
232+
}
233+
234+
headers = {
235+
"Content-Type": "application/json",
236+
"Authorization": f"Token {os.environ['MEMOS_API_KEY']}"
237+
}
238+
239+
res = requests.post(
240+
url=f"{os.environ['MEMOS_BASE_URL']}/get/memory",
241+
headers=headers,
242+
data=json.dumps(data)
243+
)
244+
print(res.json())
245+
```
246+
247+
**响应示例:**
248+
249+
```json
250+
{
251+
"code": 0,
252+
"data": {
253+
"memory_detail_list": [
254+
{
255+
"id": "mem_123",
256+
"memory_key": "出行偏好",
257+
"memory_value": "用户喜欢自驾游",
258+
"memory_type": "LongTermMemory",
259+
"confidence": 0.95,
260+
"tags": ["旅游"],
261+
"status": "activated"
262+
}
263+
],
264+
"preference_detail_list": [],
265+
"tool_memory_detail_list": [],
266+
"total": 1,
267+
"size": 10,
268+
"current": 1,
269+
"pages": 1
270+
},
271+
"message": "success"
272+
}
273+
```
274+
275+
**分页字段说明:**
276+
277+
| 字段 | 类型 | 说明 |
278+
| :--- | :--- | :--- |
279+
| `total` | number | 各类记忆总数中的最大值 |
280+
| `size` | number | 每类记忆当前页返回的条目数量 |
281+
| `current` | number | 当前页码 |
282+
| `pages` | number | 总页数 |
283+
284+
---

tools/tool_memos/data.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
name: MemOS记忆管理系统
2+
tags:
3+
- 模型记忆
4+
title: MemOS让您的AI拥有持续记忆与成长能力
5+
description: MemOS让您的AI拥有持续记忆与成长能力

tools/tool_memos/logo.png

3.81 KB
Loading

0 commit comments

Comments
 (0)