言午

忘掉《Her》吧,诺兰旧作《记忆碎片》才是LLM Agent的必修课

Image

当 OpenAI 的 CEO Sam Altman 被问及他最爱的人工智能电影时,答案几乎总是 Her。以至于去年(2024 年)OpenAI 那场惊艳的语音助手发布会后,他在社交媒体上只发了一个词:"her"。这并非巧合。电影中的萨曼莎,用斯嘉丽的迷人声线、极致的共情能力和无所不知的学识,完美定义了 Chatbot(聊天机器人) 这一范式的终极形态。在过去很长一段时间里,整个 AI 行业的叙事,几乎都是围绕着"Chatbot"这条主线展开的。

Image

然而,进入 2025 年,风向几乎在一夜之间改变。 一款现象级 Agent 的横空出世,让 Agent(智能体) 迅速取代 Chatbot,成为行业叙事绝对的主流。大家讨论的不再是"意图识别"和"多轮对话",而是任务分解、工具调用和自主规划。从硅谷到北京,"第一个通用 Agent"、"第一个 AI 程序员"的发布会此起彼伏,这股火热的浪潮,让人感觉仿佛重回了那个移动互联网大爆发的 2016 年。

在这个全新的 Agent 时代,又有那部电影,阐述了什么是 agent。我心里有一个未被认可的答案,它和 AI 毫无干系,却可能是最好的 Agent 入门电影。它不探讨 AI 的灵魂,只展示一个系统如何在信息不完整的残酷现实中,为了一个目标去 "思考" 和 "行动"。它,就是克里斯托弗·诺兰的第一部长篇电影——Memento(《记忆碎片》)。

Image

主角莱纳德不是一个被动的聊天伙伴。他是一个有明确目标(复仇)、会使用工具(相机、笔)、并试图在复杂的真实世界中执行任务的 自主系统(Agent)。他关心的是 "完成任务",而不是"取悦用户"。

莱纳德的整个悲剧,都源于他那套为了"行动"而构建的、天才而又脆弱的信息处理系统。这套系统,就是我们今天要深入探讨的核心——上下文工程(Context Engineering)。本质上,它是一套围绕着 LLM 有限的'注意力'(即上下文窗口),设计和管理信息输入(Input)与输出(Output)的综合性技术栈。它的目标,是在 Agent 每一个决策点,都为其提供"恰到好处"的信息,而这,正是决定一个 Agent 是走向成功还是陷入混乱的"脚手架"。

十八般武艺,却只有鱼的记忆

你猛地睁开双眼,发现自己身处一间陌生的汽车旅馆。口袋里有一把车钥匙,床头柜上放着一沓现金和一个信封。你为什么在这里?这些东西是谁的?更可怕的是,当你低头看自己的手,发现上面用潦草的字迹写着:"别接电话"。这是谁写的警告?是善意还是陷阱?这就是莱纳德的每一次"苏醒"。

Image

莱纳德曾经是一名顶尖的保险调查员,他懂得如何追踪线索,如何审问嫌疑人,如何像猎犬一样咬住目标不放。而一场入室袭击夺走了他妻子的生命,也摧毁了他大脑中负责"写入新记忆"的功能——顺行性遗忘症。这意味着什么?他记得妻子的一切,记得那晚的惨剧,记得自己的名字和过去的所有人生。但从那天起,他的时间就被冻结了。他无法形成新的长期记忆,每过十几分钟,他脑中的"缓存"就会被清空,一切归零。他唯一剩下的,只有一个驱动他所有行为的最终目标:找到杀害妻子的凶手,为她复仇。

这个设定,简直就是为今天 LLM 的完美隐喻。莱纳德完好无损的长期记忆,在功能上 就像是 LLM 的训练数据(Training Data)。它们共同构成了系统行动的"世界知识"基础,但这个基础是 静态的。莱纳德无法学会在袭击后认识新朋友,LLM 也无法知道训练截止日期后的任何新闻。

而他那只有 15 分钟的短期记忆,正是 LLM 最著名、也是最致命的阿喀琉斯之踵——上下文窗口(Context Window)。在这个窗口内,它可以完美地理解和关联所有信息;但窗口之外,就是它无法触及的世界。如果输入超出一个字,系统就会报错。

好了,现在问题来了。莱纳德,以及我们开发的 Agent,面临着同一个地狱级难度的工程挑战:

如何在一个本质上无状态(Stateless)的、记忆窗口极其有限(或信息过载)的系统中,去执行一个需要长期有状态(Stateful)跟踪的复杂任务?

莱纳德的复仇之路,可能需要耗费数周甚至数月。我们的 Agent,要完成一个自动化研究项目,也需要调用上百次 API,处理数万字的文档。

面对这个看似无解的困局,莱纳德没有放弃。他做了任何一个优秀的工程师都会做的事:既然无法修复硬件(他的大脑),那就为它构建一套强大的外部系统。

这套系统,就是我们今天所说的 上下文工程。

莱纳德的记忆系统:上下文工程的三大支柱

Image

莱纳德对抗遗忘的武器库,看似混乱,实则遵循着一套严谨的信息处理架构。这套架构,恰好完美对应了构建一个高效 LLM Agent 所需的三大核心支柱。

第一支柱:外部知识管理系统 (External Knowledge Management) —— 拍立得照片

Image

这是整个系统的"记忆扩展模块",负责突破短期记忆的限制,为 Agent 在每个决策点提供必要的历史信息。在 Agent 技术栈中,这对应着一套完整的 知识管理系统,其中最为人熟知的实现方式就是 RAG(检索增强生成)。

莱纳德的拍立得系统,恰好展示了一个完整的知识管理闭环是如何运作的:

  • • 信息采集与固化 (Information Capture): 当莱纳德遇到关键人物或地点时,他会立即举起相机。这个看似简单的动作,实际上是将流动的、转瞬即逝的现实,固化成可以永久保存的"知识单元"。对于 Agent 而言,这相当于将 API 返回的数据、用户的关键指令、或执行过程中的重要状态,持久化存储到知识库中。
  • • 上下文标注 (Context Annotation): 莱纳德从不满足于单纯的照片。他会立刻在背面写下"泰迪,别信他的谎言"这样的关键笔记。这个细节揭示了一个深刻的工程智慧:原始数据本身往往是不够的,真正有价值的是数据背后的判断和洞察。在 RAG 系统中,这对应着为文档添加元数据、生成嵌入向量、或创建知识图谱——让信息不仅"存在",更要"可被理解"和"可被检索"。
  • • 按需调用 (On-Demand Retrieval): 每当莱纳德从失忆中"重启",面对一个陌生人时,他会本能地翻找口袋里的照片。找到匹配的照片后,背面的笔记会立即告诉他该如何行动。这个过程完美诠释了 RAG 的核心价值:在 Agent 需要做决策的精确时刻,为它注入最相关的历史知识。就像 ChatGPT 在回答"2024年奥运会"相关问题时,会先从知识库中检索相关新闻,再基于这些"增强"后的上下文生成答案。

莱纳德系统最令人赞叹的,是他对"什么值得记录"的直觉判断。他不会给早餐拍照,不会记录天气,只会捕捉那些与复仇任务直接相关的关键信息。这种选择性记录,恰恰是许多 Agent 系统所缺失的。

工程师的教训: 构建 Agent 的外部记忆不是"存储越多越好",而是要设计一套智能的信息价值评估机制。就像莱纳德只为"任务相关"的人和地点拍照,我们的 Agent 也应该学会判断:哪些信息值得进入长期记忆,哪些只是过眼云烟。一个不加选择就把所有对话历史都存入向量数据库的 Agent,最终只会在检索时被无关信息淹没。

第二支柱:上下文提炼与结构化 (Context Distillation & Structuring) —— 关键笔记

信息并非越多越好。如果每次决策都翻阅所有照片,莱纳德很快就会在信息的海洋中迷失。他必须对信息进行 处理,筛选出那些真正重要、不可动摇的"事实"。

他的核心处理手段,是将信息 从照片的背面,升级到纹身。

Image
  • • 提炼与压缩 (Distillation & Compression): 莱纳德不会把"我今天在咖啡馆遇到了泰迪"这种日常琐事纹在身上。他只纹那些经过反复验证、足以构成他世界观基石的核心信息,比如"事实 5:John G. 强奸并谋杀了我的妻子"。这是一种极致的信息压缩,将无数的线索和推论,提炼成一句不可更改的"断言"。
  • • 结构化 (Structuring): 纹身的位置也极有讲究。关键线索和数字纹在最容易看到的大腿上,而最终目标"找到他,杀掉他"则纹在胸口,每次照镜子都能看到。这是一种物理上的 信息结构化,确保最重要的信息拥有最高的"读取优先级"。

在 Agent 设计中,这一步同样至关重要。从 API 或文档中检索到的冗长信息,必须经过压缩、总结、提取关键实体,甚至转换成更精简的 JSON 格式,才能在有限的"Token 预算"内最大化 信息密度。

工程师的教训: Agent 必须是一个高效的"信息炼金术士",而不是一个杂乱的"信息搬运工"。糟糕的上下文处理,会让 Agent 陷入"大海捞针"的困境。

第三支柱:分层记忆管理 (Hierarchical Memory Management) —— 纹身系统

一个单一、扁平的记忆系统是脆弱且低效的。莱纳德的生存智慧在于,他本能地为自己构建了一套 分层式的记忆架构。这对于设计一个能在长期任务中保持不"迷航"的 Agent 至关重要。

我们可以将莱纳德的记忆系统看作三个功能不同的层次:

  1. 1. 核心任务层 (Core Mission Layer) - 纹身: 这是 Agent 的"宪法"或"最高指令"。它定义了 Agent 的身份("你是一个复仇者")和终极目标("找到并杀死凶手")。这一层的信息是 几乎不可变的(Immutable),拥有最高的决策权重。它的作用,是确保 Agent 无论在执行多少步子任务后,都不会偏离最初的战略意图。每当莱纳德"重启"时,正是这些纹身让他能立刻重建自我,找回使命。
  2. 2. 情景工作记忆层 (Episodic Working Memory) - 照片与笔记: 这是 Agent 的"任务日志"。它存储着与当前长期任务相关的、动态变化的状态和观察结果。比如"泰迪的照片"和背面的笔记"别信他"。这一层是 可读可写的(Read/Write),记录了任务的中间步骤、遇到的障碍、收集到的证据。它使得 Agent 的行动具有连续性,而不是一系列孤立的操作。
  3. 3. 瞬时处理窗口 (Volatile Processing Window) - 15 分钟的大脑记忆: 这直接对应 LLM 那有限的 上下文窗口。它是真正的"思考"发生的地方。在每一个决策点,Agent 会将"核心任务层"的最高指令,与"工作记忆层"中最相关的几条情景信息,一起 加载(Load) 到这个窗口中进行处理,然后做出下一步行动的判断。这个窗口是 高度易失的(Volatile),每次调用后都会被清空。

工程师的教训: 上下文管理设计的核心,不是去追求一个无限大的记忆池,而是 设计一套高效的记忆分层与调度系统。要明确定义哪些信息是需要永久铭刻的"宪法",哪些是可供随时读写的"日志"。忘记设计这套记忆层级的 Agent,要么会忘记自己的核心使命,要么会淹没在自己海量的操作日志中。

莱纳德的双重悲剧:Agent 设计的两大"致命漏洞"

通过这套天才的"上下文工程"系统,莱纳德成功地将一个有严重生理缺陷的个体,变成了一个能够执行长期复杂任务的 Agent。他成功了吗?电影的结局给了我们一个残酷的否定答案。

漏洞一:外部投毒 —— 被泰迪警官"喂"了谎言

泰迪警官一直在利用莱纳德的失忆症,向他提供精心筛选甚至扭曲的信息。这完美地诠释了 Agent 设计的第一个风险:上下文投毒(Context Poisoning)。在 LLM Agent 的时代,我们进入了一个 "垃圾进,真理出" (Garbage In, Gospel Out) 的新范式。Agent 不仅会处理错误的信息,更可怕的是,它会以一种充满权威和自信的口吻,将基于这些错误信息得出的结论,当作"真理"一样呈现和执行。我们的 Agent 如果无条件信任互联网上的所有信息,其后果不堪设想。

漏洞二:内部污染 —— 被自己写下的笔记所欺骗

Image

电影最具讽刺性的一幕,是莱纳德在某个瞬间做出了一个决定:他在一张关键人物的照片背面写下了一条误导性的笔记。这不是别人对他的欺骗,而是他对未来的自己设下的陷阱。当他下次"重启"看到这张照片时,他会毫不怀疑地相信自己写下的话——毕竟,谁会怀疑自己亲手写下的"事实"呢?他用一个谎言,编程了未来的自己。这揭示了比外部投毒更隐蔽的漏洞:自我强化的认知牢笼(Self-Reinforcing Cognitive Prison)。

当 Agent 在多步骤任务中执行第 N 步时,它可能会生成一个带有微小偏差的中间结论。在执行第 N+1 步时,它会从自己的"记忆"中,将这个错误的结论 当作一个可信的事实 来检索,并在此基础上继续行动。

这个问题在目前流行的 多步任务规划 Agent 中尤为突出。例如,一个 Agent 在第一步生成的代码存在一个微小的逻辑错误,在第二步进行代码审查时,它会把第一步的"错误代码"当作"既定事实"来审查,导致它很可能无法发现自己的问题。它缺乏一个独立的、批判性的"自我审查"视角,这也是当前从最简单的 ReAct 到更复杂的 树状搜索(Tree of Thoughts) 等框架都在试图解决的核心难题。

结语:缺失的"反思"模块

莱纳德的悲剧,源于他的系统只有"检索-处理-行动"的单向循环。它缺少了一个能抵御外部投毒和内部污染的关键模块——验证与反思 (Verification & Reflection)。

对于 Agent 而言,"反思"不是哲学层面的自我审问,而是一个 工程模块。它意味着在行动之后,系统需要有一个机制,去比对行动结果与预期目标之间的差距,生成一份"误差报告",并将这份报告作为下一次行动的关键上下文输入。莱纳德的悲剧在于,他没有能力去反思"我亲手写下的笔记,就一定是真的吗?"。他陷入了一个由自己创造的"现实"中,无法自拔。

一个没有反思能力的 Agent,同样会陷入自己生成的"代码 bug"或"错误事实"中,并在循环里不断放大这个错误,最终离目标越来越远。

所以,当我们惊叹于 Agent 能自动编写代码、预订机票时,不如先回头看看莱纳德的结局。他用自己的悲剧提醒我们:构建一个能"行动"的系统只是第一步,构建一个能 "可靠地行动" 的系统,才是我们真正漫长而艰巨的征程。

在追求 Agent"自主性"的狂热中,为它构建一个强大的"反思"与"验证"机制,可能才是通往真正通用智能的唯一路径。否则,我们最终创造的,可能不是一个无所不能的助手,而是一支由无数个高效、执着、且永不怀疑的"莱纳德"所组成的军队。

而这,正是《记忆碎片》在 25 年后,依然是每个 Agent 工程师必修课的根本原因。

* 本文由AI协作,共同完成