Agent 记忆设计长期记忆不是把聊天记录全塞回去一、记忆越多不代表 Agent 越聪明AI Agent 做久了很多人会自然想到“加长期记忆”。于是把用户历史对话、工具调用、偏好和任务结果全部存起来下次再塞回上下文。这样做成本高、噪声大也容易引入隐私风险。长期记忆不是聊天记录仓库而是经过筛选、压缩和权限控制的事实集合。好的记忆应该帮助 Agent 更稳定完成任务比如用户偏好、项目约束、常用路径、已验证结论和失败经验。临时闲聊、过期上下文和不确定猜测不应该长期保存。记忆需要治理不是越多越灵。二、记忆链路提取、验证、存储、召回flowchart TD A[会话内容] -- B[候选记忆提取] B -- C[重要性判断] C -- D[用户或规则确认] D -- E[记忆存储] E -- F[任务相关召回]候选记忆要分类型。偏好类例如“用户喜欢简洁回答”项目事实类例如“当前项目使用 Next.js”安全边界类例如“不要自动执行删除命令”经验类例如“某脚本在 macOS 下失败过”。不同类型的过期策略不同。召回也要按任务相关性。用户问一个算法问题不一定需要加载全部产品偏好。上下文窗口有限召回越精准Agent 越稳定。记忆系统不是为了显得懂用户而是为了减少重复沟通和错误动作。三、记忆结构保存事实和来源下面是一份简化记忆结构。{ id: mem_001, type: project_constraint, content: 项目使用 pnpm 和 Vite测试命令是 pnpm test, source: user_confirmed, created_at: 2026-07-02, expires_at: null }source很重要。用户明确确认的记忆比模型推断的记忆可靠。模型推断可以先作为候选不应该直接变成长期事实。否则 Agent 会把一次上下文误解长期保存后面不断放大错误。记忆还要支持删除和修改。用户应能查看 Agent 记住了什么并撤销不需要的内容。隐私和控制权是记忆系统的底线。四、评测方法看任务成功率和误召回记忆系统上线后不要只看召回命中率。更重要的是任务成功率是否提升、重复提问是否减少、误召回是否造成错误。比如 Agent 因为旧项目记忆在新项目里执行了错误命令这就是严重问题。可以构建记忆评测集给定任务和记忆库检查系统是否召回必要记忆、是否忽略无关记忆、是否在冲突时询问用户。记忆像数据库也需要测试查询质量。最后敏感记忆要加密或避免保存。API Key、私钥、身份证号、医疗信息等不应进入普通记忆库。Agent 越聪明越要懂得遗忘。记忆冲突也要处理。用户今天说项目用 Vite明天说已经迁移到 Next.js系统不能同时召回两个结论还装作没事。可以给记忆加状态旧记忆标记为 superseded新记忆成为 active。冲突时让 Agent 询问用户而不是自己选择一个看似合理的答案。还有一种常见问题是记忆过度个性化。Agent 因为历史偏好总是用固定风格回答反而忽略当前任务要求。记忆召回后仍要服从当前指令和安全边界长期偏好不能覆盖即时目标。记忆写入也要设置门槛。一次对话里出现的信息不一定值得长期保存。可以要求同一事实被多次使用、用户明确确认或者任务结果证明有价值后再写入。否则记忆库会像没有整理的阁楼什么都有但找不到真正重要的东西。五、总结Agent 长期记忆不是把聊天记录全塞回上下文而是提取经过验证、可管理、可撤销的任务事实。记忆要有类型、来源、过期和评测。会记也要会忘。
Agent 记忆设计:长期记忆不是把聊天记录全塞回去
发布时间:2026/7/3 2:09:38
Agent 记忆设计长期记忆不是把聊天记录全塞回去一、记忆越多不代表 Agent 越聪明AI Agent 做久了很多人会自然想到“加长期记忆”。于是把用户历史对话、工具调用、偏好和任务结果全部存起来下次再塞回上下文。这样做成本高、噪声大也容易引入隐私风险。长期记忆不是聊天记录仓库而是经过筛选、压缩和权限控制的事实集合。好的记忆应该帮助 Agent 更稳定完成任务比如用户偏好、项目约束、常用路径、已验证结论和失败经验。临时闲聊、过期上下文和不确定猜测不应该长期保存。记忆需要治理不是越多越灵。二、记忆链路提取、验证、存储、召回flowchart TD A[会话内容] -- B[候选记忆提取] B -- C[重要性判断] C -- D[用户或规则确认] D -- E[记忆存储] E -- F[任务相关召回]候选记忆要分类型。偏好类例如“用户喜欢简洁回答”项目事实类例如“当前项目使用 Next.js”安全边界类例如“不要自动执行删除命令”经验类例如“某脚本在 macOS 下失败过”。不同类型的过期策略不同。召回也要按任务相关性。用户问一个算法问题不一定需要加载全部产品偏好。上下文窗口有限召回越精准Agent 越稳定。记忆系统不是为了显得懂用户而是为了减少重复沟通和错误动作。三、记忆结构保存事实和来源下面是一份简化记忆结构。{ id: mem_001, type: project_constraint, content: 项目使用 pnpm 和 Vite测试命令是 pnpm test, source: user_confirmed, created_at: 2026-07-02, expires_at: null }source很重要。用户明确确认的记忆比模型推断的记忆可靠。模型推断可以先作为候选不应该直接变成长期事实。否则 Agent 会把一次上下文误解长期保存后面不断放大错误。记忆还要支持删除和修改。用户应能查看 Agent 记住了什么并撤销不需要的内容。隐私和控制权是记忆系统的底线。四、评测方法看任务成功率和误召回记忆系统上线后不要只看召回命中率。更重要的是任务成功率是否提升、重复提问是否减少、误召回是否造成错误。比如 Agent 因为旧项目记忆在新项目里执行了错误命令这就是严重问题。可以构建记忆评测集给定任务和记忆库检查系统是否召回必要记忆、是否忽略无关记忆、是否在冲突时询问用户。记忆像数据库也需要测试查询质量。最后敏感记忆要加密或避免保存。API Key、私钥、身份证号、医疗信息等不应进入普通记忆库。Agent 越聪明越要懂得遗忘。记忆冲突也要处理。用户今天说项目用 Vite明天说已经迁移到 Next.js系统不能同时召回两个结论还装作没事。可以给记忆加状态旧记忆标记为 superseded新记忆成为 active。冲突时让 Agent 询问用户而不是自己选择一个看似合理的答案。还有一种常见问题是记忆过度个性化。Agent 因为历史偏好总是用固定风格回答反而忽略当前任务要求。记忆召回后仍要服从当前指令和安全边界长期偏好不能覆盖即时目标。记忆写入也要设置门槛。一次对话里出现的信息不一定值得长期保存。可以要求同一事实被多次使用、用户明确确认或者任务结果证明有价值后再写入。否则记忆库会像没有整理的阁楼什么都有但找不到真正重要的东西。五、总结Agent 长期记忆不是把聊天记录全塞回上下文而是提取经过验证、可管理、可撤销的任务事实。记忆要有类型、来源、过期和评测。会记也要会忘。