Agent 学习笔记 07:做一个有记忆的个人助理:Memory 的工程实现
一个有记忆的个人助理,体验差异不在于它能复述昨天聊过什么,而在于它能把已确认的信息用到新任务里,并且知道哪些信息已经过期、哪些动作仍需重新确认。
我会把记忆拆成四层
第一层是不可变的事件日志,用于追溯发生过什么;第二层是会话摘要,用于压缩长对话;第三层是用户画像,只保存稳定且可修改的偏好;第四层是任务工作区,保存当前目标、证据、产物和待办。这样的分层比一个统一的 memory 数组更容易维护。
一次完整的读写循环
用户输入
-> 读取相关任务工作区与用户画像
-> 构建本轮上下文
-> 生成回复或执行动作
-> 抽取候选记忆
-> 去重、评分、确认与写入
-> 更新任务状态和审计日志
写入不应发生在模型每说一句话之后。可以先由 extractor 提出候选,再由规则判断敏感性、稳定性和时效,必要时询问用户是否保存。
从 MemGPT/Letta 学到的思路
这类架构把有限上下文看成“内存”,把外部存储看成可换入换出的“磁盘”。这个比喻很有启发:Agent 不需要时刻带着全部历史,而应在任务需要时主动检索,在上下文紧张时压缩工作记忆。工程上还要保存换入换出的原因,否则出现错误时无法判断是模型推理错了,还是记忆供给错了。
一个个人助理的边界示例
用户说“以后会议默认安排下午”可以写入偏好,但真正发出邀请前仍要检查当天日历、时区和参与人,并展示最终时间。“我今天身体不舒服”可能只服务当前对话,不应默认成为长期健康档案。记忆能力越强,数据最小化越重要。
这章给我的启发
有记忆的 Agent 不是更会囤积数据,而是更会管理状态。日志、摘要、画像和工作区各司其职,再配上可见、可改、可删除的机制,才是可以长期使用的个人助理。

浙公网安备 33010602011771号