Skip to content

Commit 36a28e9

Browse files
authored
Update add_message.md
1 parent b48b22e commit 36a28e9

1 file changed

Lines changed: 104 additions & 11 deletions

File tree

content/cn/memos_cloud/mem_operations/add_message.md

Lines changed: 104 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: 添加消息
2+
title: Add Message
33
desc: MemOS 会将您添加的多模态内容如文本、文件、图片等,自动处理为可检索的个人记忆。
44
---
55

@@ -44,8 +44,6 @@ desc: MemOS 会将您添加的多模态内容如文本、文件、图片等,
4444

4545
* **消息(messages)**:用于添加到 MemOS 的用户与 AI 对话内容的有序消息列表。
4646

47-
* **元信息(info)**:由您自定义的、随消息一同提交的补充信息,可用于后续记忆检索时进行过滤。
48-
4947

5048
## 3. 工作原理
5149

@@ -94,9 +92,9 @@ print(f"result: {res.json()}")
9492
想知道生成了哪些记忆?一键复制上述代码并运行,前往[**检索记忆**](/memos_cloud/mem_operations/search_memory)
9593
:::
9694

97-
## 5. 使用场景
95+
## 5. 更多使用方法
9896

99-
### 5.1 实时导入对话
97+
### 实时导入对话
10098

10199
你可以在用户每次收到模型回复时,实时调用接口添加消息,随时与 MemOS 同步用户与助手的对话。MemOS将在后端不断根据新的对话,更新用户记忆。
102100

@@ -138,7 +136,9 @@ add_message("memos_user_123", "memos_conversation_123",
138136

139137
```
140138

141-
### 5.2 导入历史对话
139+
<br>
140+
141+
### 导入历史对话
142142

143143
如果你已经构建了 AI 对话应用,MemOS 也支持批量导入已有聊天记录,帮助对话助手记住用户,更个性化地回复。
144144

@@ -154,7 +154,9 @@ add_message("memos_user_123", "memos_conversation_123",
154154
]
155155
```
156156

157-
### 5.3 记录用户偏好或行为
157+
<br>
158+
159+
### 记录用户偏好或行为
158160

159161
除了导入对话内容,用户的个人偏好、行为等数据,例如首次启动应用时填写的兴趣问卷信息,同样可以导入 MemOS,作为记忆的一部分。
160162

@@ -180,6 +182,100 @@ add_message("memos_user_123", "memos_conversation_123",
180182
]
181183
```
182184

185+
<br>
186+
187+
### 配合记忆过滤器添加消息
188+
MemOS 支持开发者针对自己的需求从选定的记忆范围中召回记忆。在添加消息时,使用以下字段对生成的记忆进行标记,就能在检索记忆时使用[记忆过滤器(filter)](/memos_cloud/features/basic/filters)完成精确过滤。
189+
190+
191+
1. **同一个用户与多 Agent (在多个应用内)聊天**
192+
193+
添加消息时带上 `agent_id` `app_id` 等信息,标识当前与用户对话所关联的 Agent、应用,用来区分“同一用户在不同 Agent / App 下的记忆”。
194+
195+
```python
196+
data = {
197+
"user_id": "memos_user_123",
198+
"agent_id":"health_assistant", #开发者传入的当前对话的 agent。
199+
"conversation_id": 0610,
200+
"messages":[
201+
{"role": "user", "content": "我今天早上跑了5公里,膝盖有点酸"},
202+
{"role": "assistant", "content": "你今天跑了5公里,膝盖有点酸,说明关节和肌肉还在适应强度。明天建议把距离控制在3公里左右,重点放在充分热身和放松。"
203+
}
204+
]
205+
}
206+
207+
# 在后续检索中,您可以传入"agent_id":"health_assistant"来检索用户与该助手聊天的记忆。
208+
```
209+
210+
<br>
211+
212+
2. **用已有的标签体系,对记忆进行语义分类**
213+
214+
MemOS 会为每条记忆自动生成标签,但这些标签可能与您业务中所使用的标签不完全一致。您可以在添加消息时带上自定义的`tags`,MemOS 将基于您提供的标签含义,对记忆内容自动应用相关标签。
215+
216+
```python
217+
data = {
218+
"user_id": "memos_user_123",
219+
"conversation_id": 0610,
220+
"tags":["运动建议","健身规划","运动记录"], #开发者传入的对“健身助手话题分类”的自定义标签。
221+
"messages":[
222+
{"role": "user", "content": "我今天早上跑了5公里,膝盖有点酸"},
223+
{"role": "assistant", "content": "你今天跑了5公里,膝盖有点酸,说明关节和肌肉还在适应强度。明天建议把距离控制在3公里左右,重点放在充分热身和放松。"
224+
}
225+
]
226+
}
227+
228+
# 在后续检索中,您可以传入"tags":"运动建议"来检索围绕“运动建议”的用户记忆。
229+
```
230+
231+
::note
232+
如果你想了解更多,详见[自定义标签](/memos_cloud/features/basic/custom_tags)
233+
::
234+
235+
<br>
236+
237+
3. **使用自带的业务信息,精确过滤**
238+
239+
添加消息时带上`info`,传入更多结构化的业务字段或自定义补充信息,例如`scene = 订单`等,用来按照业务维度精确区分当前的场景、业务线、来源、状态等等。
240+
241+
242+
```python
243+
data = {
244+
"user_id": "memos_user_123",
245+
"conversation_id": 0610,
246+
"messages":[
247+
{"role": "user", "content": "帮我查找时间合适的机票"},
248+
{"role": "assistant", "content": "我帮你查到了几班时间合适的航班:\n1. 北京 → 上海,2月15日08:30出发,12:30到达\n2. 北京 → 上海,2月15日14:00出发,18:00到达\n3. 北京 → 上海,2月16日09:00出发,13:00到达\n你希望我帮你预订哪一班,或者需要我筛选其他条件吗?"
249+
}
250+
],
251+
"info":{
252+
"scene":"机票"
253+
}
254+
}
255+
256+
# 在后续检索中,您可以传入"info":{"scene":"机票"}来检索围绕“机票购买”业务场景的用户记忆。
257+
```
258+
259+
<br>
260+
261+
**使用提示**
262+
263+
`info`支持传入任意自定义键值对,所有字段均可正常存储和检索。
264+
265+
当前系统对以下字段提供了更优的查询性能支持(因为这些字段已经添加索引):
266+
- business_type(业务类型)
267+
- biz_id(业务唯一标识)
268+
- scene(业务或对话场景)
269+
- custom_status(自定义状态)
270+
271+
是否使用上述字段并非强制要求,使用其他自定义字段在功能上完全一致,仅在检索性能上可能有所差异。
272+
273+
::note 注意
274+
info 为扁平化的键值对结构,字段名和字段值均需为字符串类型,用于在检索时进行条件过滤;非字符串值需先转换为字符串再传入。
275+
::
276+
277+
<br>
278+
183279
## 6. 更多功能
184280

185281
:::note
@@ -188,10 +284,7 @@ add_message("memos_user_123", "memos_conversation_123",
188284

189285
| **功能** | **字段** | **说明** |
190286
| --- | --- | --- |
191-
| 关联更多实体 | `agent_id` `app_id` | 当前用户的对话消息关联 Agent、应用等实体的唯一标识符,便于后续按实体维度检索记忆。 |
192-
| 消息 | `messages` | 用于添加的对话消息列表。<br>支持的角色类型包括:user / assistant / system / tool;<br>支持的消息类型包括:<br>• 文本<br>• 文档、图片,详见[多模态消息](/memos_cloud/features/basic/multimodal)。<br>• 工具调用信息,详见[工具调用](/memos_cloud/features/advanced/tool_calling)|
287+
| 多模态消息 | `messages` | 用于添加的对话消息列表。<br>支持的角色类型包括:user / assistant / system / tool;<br>支持的消息类型包括:<br>• 文本<br>• 文档、图片,详见[多模态消息](/memos_cloud/features/basic/multimodal)。<br>• 工具调用信息,详见[工具调用](/memos_cloud/features/advanced/tool_calling)|
193288
| 异步模式 | `async_mode` | 控制添加消息后的处理方式,支持异步与同步两种模式,详见[异步模式](/memos_cloud/features/basic/async_mode)|
194-
| 自定义标签 | `tags` | 为当前用户的对话消息添加自定义标签,用于后续记忆检索与过滤,例如检索时的"图召回"和其他内部推理的节点召回,详见[自定义标签](/memos_cloud/features/basic/custom_tags)|
195-
| 元信息 | `info` | 自定义元信息字段,用于补充当前用户的对话消息,并在后续记忆检索中作为过滤条件使用。<br><br>`info` 支持传入任意自定义键值对,所有字段均可正常存储和检索。<br><br>当前系统对以下字段提供了更优的查询性能支持(因为这些字段已经添加索引):<br>• `business_type`(业务类型)<br>• `biz_id`(业务唯一标识)<br>• `scene`(业务或对话场景)<br>• `custom_status`(自定义状态)<br><br>是否使用上述字段并非强制要求,使用其他自定义字段在功能上完全一致,仅在检索性能上可能有所差异。<br><br>注意 info 为扁平化的键值对结构,字段名和字段值均需为字符串类型,用于在检索时进行条件过滤;非字符串值需先转换为字符串再传入。 |
196289
| 写入公共记忆 | `allow_public` | 控制当前用户对话消息生成的记忆是否要写入项目级公共记忆,供项目下所有用户共享,默认关闭。 |
197290
| 写入知识库记忆 | `allow_knowledgebase_ids` | 控制当前用户对话消息生成的记忆是否写入指定的项目关联的知识库中,供所有可访问该知识库的用户共享。默认为空,使用时您可以将需要写入的知识库列表传入。详见[知识库](/memos_cloud/features/advanced/knowledge_base)|

0 commit comments

Comments
 (0)