记忆种类
MemOS 会生成并使用不同种类的记忆,这些记忆在后续召回时承担的作用不同:有的用于确认事件,有的用于判断偏好,有的用于总结用户画像与完整事件,有的用于指导 Agent 任务怎么做,有的用于补充知识。区分记忆种类,可以在检索时返回更相关的内容,为模型提供更准确的上下文。
1. 事实记忆
事实记忆描述相对客观的信息,通常来自用户明确说过的内容、行为事件、文件或反馈。
常见例子:
- 用户住在上海。
- 用户的设备是 MacBook Pro 13 寸 Intel 版本。
事实记忆适合回答“用户是谁”“用户做过什么”“用户现在处于什么状态”“某件事是否发生过”等问题。
2. 偏好记忆
偏好记忆描述用户长期或阶段性的倾向,既可以来自用户明确表达,也可以来自行为的总结或推断。
常见例子:
- 用户喜欢简洁直接的回答风格。
- 用户规划旅行时偏好文化景点,不喜欢购物商场。
- 用户买宠物食品时需要避开鸡肉口味。
偏好记忆适合用于推荐、生成、排序和个性化决策。它不只是回答“用户说过什么”,而是帮助 Agent 判断“怎样做更符合这个用户”。
3. 属性记忆
属性记忆(Profile)可用于构建结构化的画像,对话中的零散信息被抽取并映射到预先定义好的属性字段,并随对话深入自动更新、补全。核心特点包括:
- 结构化:画像由预先定义的字段构成,统一存储、可直接取用,不分散在零散的记忆中;
- 持续更新:随对话深入,MemOS 自动更新属性字段,让画像始终贴合用户的最新状态;
- 字段级可控:支持自定义每个字段是否允许自动更新,关键字段可锁定,保持核心设定稳定。
示例结构如下所示:
基础信息
姓名:张三
职业:工程师
居住地:杭州
兴趣爱好
爱好:露营、独立游戏
喜欢的音乐:民谣
性格标签
三个关键词:开朗、好奇、爱较真
适用于个人助理、情感陪伴 / 虚拟角色等场景,用于增强对话一致性、稳定性,让 AI 长期记住用户是谁,详见 属性记忆。
4. 事件记忆
事件记忆(Event)从对话中抽取结构化事件,保留时间、地点、参与者等关键要素。
常见例子:
- 6月14日,张三和朋友去西湖边露营,晚上一起看了星星,聊了人生规划。
- 6月10日,客户李四提交退换货申请,客服小二审核通过,6月13日完成签收。
事件记忆是对一段对话的总结与归纳,保留了关键的时间线、发生地点和参与者,详见 事件记忆。
5. 记忆自进化 Skills
MemOS 从历史消息中自动提炼技能,实现记忆的自进化,也可以直接上传已有技能包到知识库。旅行规划、报销审核、客户问题排查这类有稳定步骤的任务,都适合沉淀为技能,详见 记忆自进化。
6. 工具记忆
工具记忆记录的是“工具怎么用”。它会从 Tool Schema、工具调用参数、工具返回结果和调用轨迹中沉淀经验,帮助 Agent 更稳定地选择工具、填写参数和使用返回结果,详见 工具记忆。
7. 知识库记忆
知识库记忆来自项目级文档、制度、手册、FAQ、流程文件或 Skill 文件。它不属于某个用户的个人历史,更适合被多个用户或 Agent 共享。
常见例子:
- 公司财务报销制度。
- 产品使用手册。
- 售后退换货政策。
知识库记忆可以和用户记忆一起参与召回。员工询问【内网代理打不开了,我该重新装哪个版本?】时,知识库提供【安装说明】,用户事实记忆补充【这个员工的设备是 Intel 版本 MacBook Pro】,两者结合后回答会更准确,详见 知识库。
8. 如何生成并使用
生成记忆
当前,MemOS 默认生成所有类型的记忆,可通过 allow_memory_view 控制允许生成的记忆种类:
- 事实、偏好、事件、技能记忆在添加消息后自动抽取并更新记忆;
- 属性记忆需要先创建模板并绑定用户,添加消息时自动抽取更新;
- 工具记忆需要在添加消息时传入
"role":"tool"的工具调用信息; - 知识库记忆需要创建知识库并上传文档。
使用记忆
检索记忆时,可通过 include_memory_view 控制允许检索的记忆种类。不传时默认召回事实记忆和偏好记忆。与传入值的对应关系如下所示:
| 记忆种类 | 取值 |
|---|---|
| 事实记忆 | detail_factual |
| 偏好记忆 | preference |
| 属性记忆 | profile |
| 事件记忆 | event |
| 技能记忆 | skill |
| 工具记忆 | tool_memory |
其中,知识库记忆需要在检索记忆时,传入 knowledgebase_ids 指定参与召回的知识库记忆。使用方式参考如下所示:
{
"user_id": "memos_user_123",
"query": "最近有什么安排?",
"knowledgebase_ids": ["memos_kb_001"]
}