Skip to content

Commit eb81c66

Browse files
author
halo
committed
feat: 支持MemOS记忆搜索、添加
1 parent 21ea68b commit eb81c66

12 files changed

Lines changed: 314 additions & 289 deletions

File tree

tools/tool_memos/README.md

Lines changed: 0 additions & 284 deletions
This file was deleted.

tools/tool_memos/data.yaml

Lines changed: 0 additions & 5 deletions
This file was deleted.
3.32 KB
Binary file not shown.

tools/tool_memos_add/README.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# MemOS 记忆添加工具
2+
3+
基于 MemOS 记忆存储系统 API 封装的记忆添加工具,将会话消息写入 MemOS,系统会自动解析消息并生成记忆,让 AI 拥有持续记忆与成长能力。
4+
5+
## 一、功能说明
6+
7+
- 将对话消息批量写入 MemOS 记忆存储
8+
- 支持多角色消息(user / assistant)
9+
- MemOS 会自动解析消息内容并生成事实记忆、偏好记忆
10+
11+
## 二、参数说明
12+
13+
### 2.1 启动参数
14+
15+
| 参数 | 组件类型 | 必填 | 说明 |
16+
| :--- | :--- | :--- | :--- |
17+
| `access_key` | 密码框 || MemOS API Key,在 API 控制台 > 接口密钥中获取 |
18+
19+
### 2.2 输入参数
20+
21+
| 参数名 | 数据类型 | 必填 | 来源 | 说明 |
22+
| :--- | :--- | :--- | :--- | :--- |
23+
| `user_id` | string || 引用参数 | 消息关联的用户唯一标识符 |
24+
| `conversation_id` | string || 引用参数 | 消息关联的会话唯一标识符 |
25+
| `user_message` | string || 引用参数 | 用户发送的消息内容 |
26+
| `assistant_message` | string || 引用参数 | AI 助手回复的消息内容 |
27+
28+
> **参数获取说明**
29+
> - `user_id`:MaxKB 中使用系统变量 `{{user_id}}`,建议添加前缀如 `maxkb_{{user_id}}`
30+
> - `conversation_id`:MaxKB 中使用系统变量 `{{chat_id}}`
31+
32+
---
33+
34+
## 三、工具内容(Python)
35+
36+
```python
37+
import requests
38+
39+
40+
def add_message(user_id: str, conversation_id: str, user_message: str, assistant_message: str, access_key: str = ""):
41+
"""
42+
MemOS 消息添加
43+
44+
参数类型(根据官方API文档):
45+
- user_id: string, 必填, 消息关联的用户唯一标识符
46+
- conversation_id: string, 必填, 消息关联的会话唯一标识符
47+
- user_message: string, 必填, 用户消息内容(对应 messages[].content)
48+
- assistant_message: string, 必填, 助手消息内容(对应 messages[].content)
49+
- access_key: string, 必填, API密钥
50+
51+
原始API messages数组字段:
52+
- role: string, 必填, 消息角色(user/assistant/system/tool)
53+
- content: string, 必填, 消息内容文本
54+
- chat_time: string, 可选, 对话时间
55+
"""
56+
http_session = requests.Session()
57+
try:
58+
messages = []
59+
if user_message:
60+
messages.append({"role": "user", "content": user_message})
61+
if assistant_message:
62+
messages.append({"role": "assistant", "content": assistant_message})
63+
64+
if not messages:
65+
return "错误:消息内容不能为空"
66+
67+
data = {
68+
"user_id": user_id,
69+
"conversation_id": conversation_id,
70+
"messages": messages
71+
}
72+
73+
rep = http_session.post(
74+
url="https://memos.memtensor.cn/api/openmem/v1/add/message",
75+
headers={
76+
"Content-Type": "application/json",
77+
"Authorization": f"Token {access_key}"
78+
},
79+
json=data
80+
).json()
81+
82+
if rep.get("code") == 0:
83+
task_id = rep.get("data", {}).get("task_id", "")
84+
return f"信息:消息添加成功,任务ID: {task_id}"
85+
else:
86+
return f"错误:消息添加失败:{rep.get('message', '未知错误')}"
87+
except requests.exceptions.RequestException as e:
88+
return f"错误:添加消息时发生网络错误: {e}"
89+
except Exception as e:
90+
return f"错误:处理消息添加响应时发生错误: {e}"
91+
```
92+
93+
---

0 commit comments

Comments
 (0)