详细解释
**Agent Memory(智能体记忆,简称 Agent 记忆)**一句话:你用 Agent 帮你做「调研 20 家竞品 → 写报告 → 发给老板」这种跨 3 天、中间停了好几次的长周期任务,它第二天开工时还记不记得昨天已经调研了哪 15 家、每家结论是什么、昨天跟你确认过的写作风格要求是什么——记不住的 Agent 就是一次性的工具人,只能跑单轮;记得住的 Agent 才是真正的长期工作伙伴。
Agent 记忆借鉴了认知科学对人类记忆的三层分类:(1)Sensory Memory(感官记忆 / 极短期,毫秒到秒级,当前输入的瞬时缓存);(2)Short-term / Working Memory(短期/工作记忆,秒到分钟级,当前这轮对话和当前任务的推理上下文,对应 LLM 的 Context Window);(3)Long-term Memory(长期记忆,小时到年级,海量历史信息持久化存储,检索时按需加载到 Context Window)。绝大多数工程师说「Agent 记忆」时特指第三层长期记忆的工程实现(前两层本质就是 LLM Context 和输入 buffer,没什么工程花活)。
唯元智创 的 Agentic SDK 把三层记忆做了统一工程封装:Sensory Memory 做了 Last-N 对话 + Tool 输入的滑动窗口缓存(默认 20 轮,自动做 Token 预算管理),Working Memory 用了一个结构化的「Task Tracker JSON」把当前任务进度、已完成步骤、用户确认过的关键决策持久化到 Context 顶部,Long-term Memory 则对接任意 Vector Database 做 embedding 索引检索 + 关系图谱实体记忆;默认给每个用户独立一个 memory namespace,企业版还能支持「跨用户共享的组织记忆」(比如整个团队对某个客户的历史交互信息所有人都能检索到)。
Agent 记忆三层架构 + 工程实现建议
| 记忆层级 | 人类对应 | 容量 | 保留时长 | 工程实现方式 | 7B 模型 Agent 推荐配置 |
|---|---|---|---|---|---|
| ① Sensory(感官 / 输入缓存) | 视觉听觉瞬时印象 | 极大 | 毫秒级 | 最近 N 条消息的 raw 队列;Token 超限时按策略丢弃最老 | 20 条最近消息;超限先丢工具的原始返回(通常最长) |
| ② Working Memory(工作记忆) | 当前对话上下文+脑子里正在想的事 | LLM Context Window 上限 | 会话期间 | 当前对话历史 + 当前多步任务的结构化 Task Tracker(建议放在 System Prompt 顶部 JSON 格式,模型每步可读可写) | Task Tracker 结构固定 1000 Token 以内;历史消息先压缩再截断 |
| ③ Long-term Memory(长期记忆) | 你几年前的经验和知识 | 几乎无限(按存储) | 会话外永久保留 | (a)文本 embedding + 向量库语义检索;(b)结构化实体图谱(记住「用户A的预算上限2万」「客户B的CTO姓张」等三元组事实);(c)Reflection 总结记忆(Self-Reflection 生成的 lessons learned,每完成一个任务写入一次) | 3 路召回融合:向量 Top20 + 精确实体命中 + 最近 7 天任务总结;每轮取 Top 10 条注入 Context |
设计 Agent 记忆系统的 4 个大坑(几乎所有新手都会踩)
- 坑 1:把整个历史对话原封不动塞进 Context,觉得就是「有记忆了」——大错特错。10 轮对话之后原始历史能吃掉 4K Token,里面 90% 是废话和工具原始返回,模型注意力被稀释,真正重要的事实(比如「用户是糖尿病人不能吃糖」这种致命约束)反而被淹没;正确做法是对话总结压缩 + 事实提取 + 只存 Key-Value 级的结构化事实,不要存原文。
- 坑 2:长期记忆只做向量语义检索,没有事实遗忘/冲突检测——用户第一次说「我预算 1 万」后来又改口说「预算 2 万」,两条记忆都在向量库里,检索时可能同时召回 1 万和 2 万,模型会混乱。必须加最新性权重:最近 7 天的记忆 ×3 权重、一个月前的 ×0.3;同时同一字段出现新版本时,旧版本标记为「已被版本 N 覆盖」不再参与召回。
- 坑 3:没有「记忆的写入权限控制」——工具调用失败的结果、用户在试错阶段说的废话全被写入长期记忆,下次检索出来一堆垃圾。推荐采用「三级写入门控」:自动写入的只有用户显式确认的内容;工具调用的中间结果默认只进 Working Memory 不进 Long-term;任务结束时触发一次 Self-Reflection 提炼 lessons learned,再写入长期记忆(这时候写入的才是真正有价值的经验)。
- 坑 4:用一个 7B 模型既做推理又做记忆检索的 embedding——7B 模型做 embedding 检索效果比专门的 embedding 模型(bge-large / text-embedding-3-large)差 20 个百分点以上,记忆检索不准就等于 Agent 失忆。记忆的 embedding 模型和推理模型一定要分开,推理用 70B 大模型,记忆检索用专门的强 embedding 小模型,成本低效果还好。