AI自主运行时常出现重复工作或决策矛盾,表面像上下文窗口问题,实则是记忆架构错位。聊天历史只是对话日志,真正的Agent记忆需要结构化记录学习成果、任务状态、实体关系,且工作记忆与长期记忆的数据结构和生命周期完全不同。
自主运行的 AI Agent 会撞上一堵看起来像是上下文窗口问题的墙,但实际上根本不是。进程运行了几小时,被中断了,恢复之后要么重复已经完成的工作,要么走上了一条与一小时前所做的决策相矛盾的路径。把窗口开大并不能解决问题,因为存储的东西从来就不是正确的东西。
对话历史是一条说了什么的记录。Agent 记忆是一份结构化的记录,记的是学到了什么、尝试了什么、什么成功了、什么失败了、每个任务的当前状态是什么,以及涉及的各个实体之间如何关联。这些是完全不同的数据结构,有着不同的生命周期,把其中一个当成另一个来用,就是大多数 Agent 构建跑偏的原因。
Working memory 是单个任务执行时的活跃上下文:当前目标、计划、中间结果、Agent 正在执行的步骤,以及尚未被验证的新发现的信息。它快、小、不稳定。实际上它对应的是上下文窗口加上单次 Agent 循环中维护的任何草稿区或状态变量。
Long term memory 是跨每个会话积累的验证过的知识的持久存储。它保存关于环境的事实(哪些服务依赖哪些数据库、每个组件归谁所有)、学到的流程(上一次真正诊断出连接池问题的步骤序列),以及情景记录(具体的事件、它们的原因、它们的解决方案)。访问它较慢,因为检索是一个步骤,但它能在重启后存活,并且会不断增长。
有趣的部分是两者之间的晋升机制。朴素的做法是把整个对话都倒进长期存储,这会让存储里塞满低价值的中间步骤,并且在系统运行时间越长时悄然降低检索质量。有效的做法是选择性的:任务完成后,存储结果、关键决策以及任何令人惊讶的发现,然后丢弃导致结果的逐步推理过程。这大致相当于睡眠期间记忆巩固所做的——保留模式,丢弃噪声。
多 Agent 系统会产生单一 Agent 从不会面对的记忆问题。没有共享存储,两个调查同一事件的 Agent 会独立地重新发现同一个事实,而彼此都无法从对方排除掉的结论中受益。有几种模式值得了解。
共享记忆总线给予每个 Agent 对一个存储的读写访问。当 Agent 角色互补、写入冲突风险低时,这很简单且有效。弱点是污染:一个 Agent 写入了冗长且低置信度的笔记,会降低所有人的检索质量。
作用域命名空间给每个 Agent 自己的写空间,同时保留对其他空间的读取访问。Agent A 写入 research,Agent B 写入 execution,两者都可以读两者。这防止了写入冲突同时保留了共享,一个协调者可以将验证过的发现晋升到共享命名空间。
黑板模式将观察结果发布到一个公共空间,控制组件根据黑板上的内容决定下一个运行哪个 Agent。事件驱动更新更进一步:一条新记忆触发一个事件,唤醒其专长与之相关的 Agent。这减少了协调开销,代价是需要断路器,以避免 Agent A 的发现触发 Agent B,而 Agent B 的发现又重新触发 Agent A。
无论哪种模式,冲突是不可避免的,而"最后写入者胜出"是错误的默认策略。当两个 Agent 记录了相互矛盾的解释时,保留两者并加上来源归属和置信度分数。后来的佐证会提升一个、降低另一个,检索排序会在没有任何内容被静默删除的情况下整理出结果。
任何运行时间足够长的 Agent 都会被中断。Checkpointing 是标准答案:在每个重要步骤,写入当前目标、计划、哪些步骤完成了,以及目前的结果。每一次工具调用后都做 checkpoint 可以获得细粒度的恢复,但每次操作都有延迟。在任务边界做 checkpoint 可以获得粗粒度的恢复,开销低得多,这对大多数系统是正确的权衡。
重要的细节是 checkpoint 里放什么。LLM Agent 没有确定性状态,所以重放一段存储的对话可能产生与已经运行过的延续不同的结果。存储事实状态,然后在恢复时从这些事实重建一个全新的上下文。重启的 Agent 从已知信息出发做决策,而不是从一段可能导致它走向不同方向的对话记录出发。
事件溯源是另一种方案:将每个动作和观察记录为不可变事件,重放来重建状态。你得到了完整的审计跟踪和在任意过去时间点检查的能力,代价是重放时间随日志增长,因此长期运行的 Agent 需要定期快照压缩。当你需要审计跟踪用于合规或事后回顾高风险决策时,它才值得它的复杂性。
如果你的 Agent 会遗忘,要问的问题不是窗口有多大。而是有没有任何不是对话记录的东西被写下来。Working memory 用于实时任务,Long term memory 用于从任务中存活下来的内容,两者之间选择性晋升,Checkpoint 存储事实而不是聊天记录,以及当涉及多个 Agent 时的带置信度分数的命名空间。
完整的行为模式分析、失败模式背后的基准测试和实现指南:https://www.adaptiverecall.com/ai-agent-memory/