拟人化记忆最佳实践
一、功能介绍
1. 从认知科学理解记忆
记忆是对信息进行编码、保持和提取的能力。它不仅帮助我们回想过去,也支持当前的理解与思考,以及未来意图的执行。在智能生命体的“感知—认知—记忆—行动”框架中,记忆负责积累和提供内容,让交流与行动能够利用已有经验。
认知科学中的记忆系统通常涉及感觉记忆、工作记忆和长期记忆,其含义、例子与典型保持时间如下表所示。
| 记忆类型 | 是什么 | 例子 | 典型保持时间 |
|---|---|---|---|
| 感觉记忆(Sensory Memory) | 极短暂地保留刚接收到的感官信息 | 刚听到的声音短暂留在脑海中 | 毫秒至数秒,因感官类型而异 |
| 工作记忆(Working Memory) | 保持并加工当前任务所需的信息 | 比较两家酒店的位置与价格 | 秒级的短暂保持,可通过注意与复述持续维持 |
| 长期记忆(Long-Term Memory) | 保存经历、知识和技能 | 记得出差经历、知道城市名称、会骑自行车 | 可持续数天、数年,甚至终生 |
长期记忆可进一步分为陈述性/显性记忆和非陈述性/隐性记忆,常见形式如下。
| 分类 | 分类含义 | 常见形式 | 例子 |
|---|---|---|---|
| 陈述性/显性记忆 | 可以有意识地回想、陈述的经历与知识 | 情景记忆(Episodic Memory):“我经历过什么” | 上次去深圳出差时的经历 |
| 陈述性/显性记忆 | 可以有意识地回想、陈述的经历与知识 | 语义记忆(Semantic Memory):“我知道什么” | 知道深圳是一座城市 |
| 非陈述性/隐性记忆 | 通过技能表现等方式体现,不依赖有意识的回想 | 程序性记忆(Procedural Memory):“我会怎么做” | 会骑自行车、会打字 |
另一个重要的功能型概念是前瞻记忆(Prospective Memory):在未来恰当的时间或情境下,记得执行原先的意图。
1前瞻记忆 Prospective Memory:“未来记得要做什么”
2│
3├── 时间型 Time-based
4│ └── 到某个时间记得做:例如,晚上八点给家人打电话
5│
6└── 事件型 Event-based
7 └── 遇到某个事件记得做:例如,见到同事时转交资料
前瞻记忆按功能描述“何时想起要做的事”,会涉及意图的保持、线索识别与执行,因此不作为与感觉、工作、长期记忆并列的存储类别。
2. 本系统提供哪些记忆能力
拟人化记忆主要围绕长期信息的积累与使用,以及面向未来需求的前瞻信息展开。系统从自然对话中提炼事件、事实和计划,逐步形成画像,并在后续相关交流中提供给模型参考,让智能体能够接上以前的话题、理解用户的偏好。
例如,用户在长期交流中多次提到自己睡眠较浅、选酒店时关注安静程度和交通。本次又说:“下周三去深圳出差,周五回来,主要去科技园。机票订好了,酒店还没选。”围绕这些信息,系统提供以下能力:
| 系统能力 | 记住什么 | 对交流的帮助 | 回复示例 |
|---|---|---|---|
| 人物画像 | 用户长期的属性、习惯与偏好 | 让回复更符合用户习惯 | “你比较看重安静,可以优先考虑远离主干道的酒店。” |
| 情景记忆 | 之前交流过的内容 | 接续历史话题,减少重复询问 | “你之前说下周三去深圳、周五回来,机票已经订好了。” |
| 前瞻记忆 | 根据计划和当前状态提炼的潜在需求 | 在交流中提示可能需要关注的事项 | “你之前提到酒店还没订,要不要一起看看?” |
智能体会综合这些信息生成回复,让交流既能延续之前的话题,也能照顾用户偏好,并适时提出帮助。
二、快速接入
步骤总览
创建智能体时开启拟人化记忆,随后正常对话即可。记忆的生成、检索与使用由系统自动完成。
| 步骤 | 接入方或用户做什么 | 系统做什么 |
|---|---|---|
| ① 开启记忆 | 创建智能体时,开启拟人化记忆能力 | 开启拟人化记忆能力,允许记忆构建和检索 |
| ② 对话积累 | 通过语音或文本正常交流 | 从对话中逐步提炼记忆、形成画像 |
| ③ 对话使用 | 在后续交流中正常提问 | 检索相关记忆,结合画像与上下文生成回复 |
1. 创建智能体
创建智能体(即大模型互动实例)时,在 config 中配置 human.memory.enable_humanized_memory,开启拟人化记忆能力。
1.1 接口
1POST /api/v1/aiagent/generateAIAgentCall
2Host: rtc-aiagent.baidubce.com
鉴权、完整请求参数和响应说明见《创建大模型互动实例》。
1.2 关键请求参数
| 字段 | 类型 | 说明 |
|---|---|---|
app_id |
String | 大模型互动应用 ID |
config |
String | 实例配置,须将 JSON 对象序列化为字符串后传入 |
config.user_id |
String | 业务侧设备标识;后续使用同一设备的记忆时应保持一致 |
config.human.memory.enable_humanized_memory |
Boolean | 设为 true,开启拟人化记忆检索并将结果用于回答 |
表中的 config.xxx 表示 config 字符串内部的配置字段,不是请求体顶级字段。语言、模型、TTS 等其他配置按业务需要合并,详细说明见上述接口文档。
1.3 请求示例
以下展示请求体,替换应用 ID 和设备标识后,按接口要求添加鉴权信息并发送:
1{
2 "app_id": "yourAppId",
3 "config": "{\"user_id\":\"enterprise-1-toy-1\",\"human\":{\"memory\":{\"enable_humanized_memory\":true}}}"
4}
2. 通过自然对话积累信息
用户通过现有语音或文本对话入口表达即可,不需要额外调用记忆写入接口,也不需要说固定口令。
用户:下周三去深圳出差,周五回来,主要去科技园。机票订好了,酒店还没选。 用户:我睡眠比较浅,出差选酒店比较看重安静和交通方便。 系统会自动提炼适合形成记忆的信息,画像则随着有效交流逐步迭代。
3. 提问并体验回复
后续交流时直接提问即可。系统会根据当前问题自动检索相关记忆,结合画像和对话上下文生成回复,无需用户主动发起检索或复述全部背景:
| 用户问题 | 智能体可以参考什么 | 回复效果示意 |
|---|---|---|
| “我去深圳的安排是什么?” | 出差时间、地点和已完成的安排 | “你计划周三去、周五回,主要前往科技园,机票已经订好。” |
| “选酒店有什么建议?” | 科技园行程及安静、交通方便的偏好 | “可以优先考虑科技园附近交通方便、环境安静的酒店。” |
三、画像自定义操作
自动生成的画像可能与实际情况有偏差,系统默认生成画像的维度也可能不满足需求。此时,可以通过 HTTP API 查看和调整画像。
目前支持设备画像的查询、写入、按维度删除及清空,以及画像维度(category)的查询、添加、移除及清空。 画像在实例启动时加载。对话中新生成或通过 API 修改的画像,会在后续新实例启动时加载并用于回答。
具体参数和调用示例,请参阅《记忆管理 API》。
四、常见疑问
为什么刚说过,智能体还没记住?
记忆提炼和画像生成是异步过程,不保证刚说完立即可用。可在后续会话中围绕相关信息提问,体验记忆效果。回答未提及某条信息,也可能是该信息未被召回或未被模型采用,不代表没有保存。
为什么以前聊过的事情,这次回答没有提到?
系统只检索与当前问题相关的记忆。可以补充事件、地点或时间再问,例如“我说的深圳出差安排是什么”。
实例结束后,下次还能使用之前的记忆吗?
可以,已生成并保存的记忆可在后续会话中继续检索。
有前瞻记忆就会自动提醒吗?
不会。前瞻记忆用于理解用户近期可能需要的帮助,不会自动创建提醒或执行任务。
通过 API 写入的画像,会被后续对话自动覆盖吗?
通过 API 写入的画像维度不会被后续对话自动覆盖,其他维度仍可自动更新。需要修改已写入维度时,再次调用画像写入接口即可。
添加自定义画像维度后,默认维度还会保留吗?
不会自动保留。系统使用应用级与设备级自定义维度的合并结果,需要的默认维度也应一并加入;两级自定义配置均为空时,恢复使用默认维度。
评价此篇文章
