LangChain 上下文工程让智能体可靠性不再依赖更大的上下文窗口
尽管业界持续关注越来越大的上下文窗口,LangChain 上下文工程如今将四种机制视为长时运行智能体的关键:上下文预算、卸载、压缩、结构化待办状态和持久记忆。这些控制机制共同将责任从语言模型转移到智能体运行框架中。
这一区别至关重要,因为标注的上下文上限只代表容量,并不能保证智能体在数百次工具调用之后仍能注意到正确的指令;当旧消息消失时,它也无法保留未完成的工作。
因此,正在形成的竞争并非 LangChain 与某个竞争框架之间的较量,而是由运行框架管理的状态与“模型能够从不断扩大的对话记录中可靠恢复目标”这一假设之间的对抗。OpenAI 和 Anthropic 也在采取类似的架构举措,这表明该问题跨越模型和平台。
LangChain 上下文工程将上下文转化为受管理的资源
重要的变化在于:上下文正成为经过工程化管理的运行时资源,而非无限增长的对话记录。
9 月 12 日的一篇报道强调了智能体运行框架中的四种机制:预算管理、压缩、待办状态重复和跨会话记忆。相关的 上下文工程 文档则为这些理念定义了具体的运行时行为。
LangChain 的 Deep Agents 框架将上下文划分为多个类别。输入上下文包含提示词、记忆文件、技能和工具指令。运行时上下文则在一次运行中传递用户标识符或凭证等配置。压缩用于管理溢出的对话,而持久存储则支持必须跨线程保留的信息。
这种分类改变了开发者诊断智能体故障的方式。模型忘记某项要求,并不必然意味着模型缺乏智能;运行框架可能将该要求放在了错误的存储层中、将其埋没在噪声之下,或在压缩过程中将其移除。
该框架的默认设置显示,这些决策已经变得相当具体。大型工具结果可以移入文件系统存储,并以引用替代。根据文档,超过 20,000 个 token 的结果可自动卸载。
当活跃上下文达到配置阈值,例如模型可用输入窗口的 85%,系统便开始进行摘要处理。框架会保留最近的一部分内容,同时将较早的历史记录转换为结构化摘要。
这些数字是实现层面的默认值,而非普遍规律。处理长文档的研究智能体可能需要更早卸载内容;调试局部故障的编程智能体则可能更适合更长时间保留最近的终端输出。
更持久的原则是:原始历史记录不应仅仅因为曾经有用,就一直留在模型提示词中。
Deep Agents 在发生摘要处理时,也会在活跃提示词之外保留完整对话。摘要成为工作表征,而原始记录仍可供后续检索。
这一设计将聊天界面经常混为一谈的两项需求区分开来。智能体需要紧凑的工作集来做出下一步决策;系统则需要规范记录,以支持恢复、检查和审计。
这一区别也解释了为何 9 月的报道不只是又一个提示词编写的故事。它真正讨论的是状态架构。提示词措辞依然重要,但指令能否在长任务中存续,如今取决于其放置、保留和恢复方式。
开发者可以在代码库迁移期间观察到这一模式。智能体首先读取规范、依赖文件、测试和构建日志。短短几分钟内,多项输出的体量就可能超过原始请求。
将每一个字节都保留在活跃提示词中,会让下一步决策成本更高、焦点更分散;移除所有内容,又可能抹去解释最新测试为何失败的错误信息。运行框架必须持续决定哪些内容保持活跃、哪些内容变为引用、哪些内容进入持久状态。
这一选择构成了核心张力。压缩可防止上下文溢出导致连续性中断,但压缩本身也可能丢弃正确延续任务所需的细节。
更大的窗口并不保证目标稳定
长上下文更容易解决存储容量问题,却不一定能解决注意力、相关性或任务控制问题。
智能体工作负载不同于阅读一份长文档。对话记录会随着反复决策、工具调用、失败、修正和环境变化而增长。在某一步看似不重要的信息,可能在几步之后变得决定性。
研究一再挑战这样一种观点:上下文窗口内的所有 token 都能获得同等程度的实际注意力。有关 位置注意力问题 的早期研究发现,模型可能无法充分利用置于长输入中间位置的相关信息。
该研究还将这一效应与 U 形注意力偏差联系起来。无论相关性如何,靠近开头和结尾的 token 都会获得更多注意力。其提出的校准方法在所评估的检索任务中最高提升了 15 个百分点。
较新的模型已改善了简单检索测试中的表现。Google 研究发现,Gemini 2.5 Flash 在接近上下文上限时能够处理某些事实查找任务,且未出现同样的位置性衰减。然而,检索一项事实并不等同于控制不断演变的智能体循环。
长时运行的智能体必须在响应新证据的同时记住最初的验收标准。它必须区分已完成的工作与仅尝试过的工作,还必须注意到新的失败何时会使先前计划失效。
LOCA-bench 通过在可控的上下文增长条件下评估智能体,处理了这一区别。其 长上下文基准测试 在增加环境历史的同时,保持底层任务语义稳定。
研究人员报告称,随着环境状态变得更复杂,智能体性能通常会下降。他们还发现,先进的上下文管理策略能够提升整体成功率。这一结果将关注点从模型容量转向模型与运行框架构成的组合系统。
压力实际落在构建编程智能体、研究智能体和计算机使用产品的团队身上。他们已无法将大型上下文窗口描述为一套完整的可靠性策略。
每增加一种工具,潜在对话记录都会扩张。浏览器输出会带来导航文本和重复页面元素;Shell 工具会返回日志、编译器追踪和测试输出;文档工具则可能从相关性尚不确定的文件中注入数千行内容。
因此,更多输入反而可能降低信号密度。即使模型在技术上能够接受这些 token,智能体仍必须识别哪些观察结果决定下一步行动。
预算管理会在达到上限前处理这一问题。上下文预算依据运行价值分配稀缺的提示词空间。当前目标和安全规则应比旧的、已成功的工具输出获得更强的保留优先级。
预算还必须为下一次模型响应预留空间。将输入窗口填满至标注的上限,可能会为推理、工具参数或恢复指令留下过少空间。
正是在这里,智能体上下文压缩成为一项运行政策,而不再是紧急功能。团队需要设定阈值、受保护字段、近期历史保留额度和检索路径;还需要通过真实轨迹测试该政策的表现。
一项有用的评估应在任务后期引入修正,将必要细节隐藏在较早的工具输出中,并迫使智能体在压缩后恢复任务,以判断每项要求是否仍然处于活跃状态。
测试还应衡量虚假的连续性。智能体即使在失去目标后,仍可能生成流畅的文字。表面的连贯性并不能证明其内部任务状态依然正确。
卸载和压缩分别解决溢出的不同部分
卸载会将庞大的证据移出提示词,而压缩则会重写智能体的运行历史。
两种机制彼此相关,但将它们视为可以互换的做法,会造成本可避免的故障。卸载会将原始材料保留在其他位置;压缩则会生成更小的表征,无法保留每一项细节。
设想一次代码搜索返回数千个匹配项。完整结果可以存放在文件、数据库或对象存储中。活跃提示词只需要一个路径、简短预览,以及足以在后续检索相关行的元数据。
这能保留保真度,因为原始内容仍然可用。智能体无需记住每一个匹配项;它只需记住结果存放在哪里,以及为何收集该结果。
压缩的影响更为深远。它将一系列消息转换为更小的状态表征。该表征必须保留决策、要求、未解决的故障和当前计划。
Anthropic 将压缩描述为:在对话接近上限时对其进行摘要处理,然后以该摘要开启新的上下文。其 智能体上下文指南 建议保留架构决策、未解决的 bug 和实现细节。
Anthropic 还警告,激进的压缩可能会移除重要性在后续才显现的细微信息。这正是根本性的权衡:系统必须在尚不了解未来所有步骤之前丢弃材料。
OpenAI 得出了类似的架构结论。其 Responses API 为长时运行、重度使用工具的工作流提供了原生的 响应压缩 功能。
OpenAI 表示,压缩后的表征会以高 token 效率的形式保留关键先前状态。下一段上下文会包含该压缩项,以及从先前窗口中选取的高价值信息。
这些实现有所不同,但方向一致。两者都将连续性逻辑置于运行框架和 API 层,而非假定开发者应重新发送无限增长的原始对话记录。
最安全的首要目标通常是冗余的工具输出。已完成的文件写入操作,不需要将完整写入文件持续嵌入对话历史;成功的依赖安装,也很少需要保留数百行历史日志。
失败操作则需要更谨慎处理。确切错误、产生该错误的命令以及相关环境细节,可能决定下一次尝试。仅用“构建失败”的通用摘要,会破坏有用的状态。
因此,良好的智能体上下文压缩应保留因果关联。它应记录哪项操作产生了哪项观察、随后得出了什么结论,以及该结论是否仍具暂定性质。
它还应区分源材料与智能体推断。若摘要将二者混合,恢复后的智能体可能会将先前的猜测视为已验证的证据。
一种实用设计采用三层结构。热层包含目标、约束、待办状态、近期消息和即时证据。温层包含摘要和已索引的工件。冷层则存储权威原始记录、文件和较早的结果。
因此,检索与存储同等重要。只有当智能体知道何时查阅文件引用时,它才有帮助。元数据应说明工件的主题、来源、时间戳,以及与当前目标的关系。
研究型智能体提供了一个清晰的例子。它可以卸载完整论文,同时保留引文记录和主张摘要。在发布前,它可以回到原始段落,核实每条摘要仍然准确。
编程智能体也可以采用同样的模式。它可以在活跃上下文中保留当前失败的测试和计划中的修复方案。较早的构建日志仍可搜索,而架构决策则写入持久化的项目笔记。
这种分层方法并不会消除信息丢失。它让丢失变得明确、可恢复且可测试。
待办状态是让工作保持正轨的小型控制平面
结构化待办状态通过持续告知智能体哪些工作尚未完成,来保护任务方向。
待办清单看起来比压缩或记忆简单。这种简单性也使人容易低估它。在长任务中,待办状态充当覆盖大量证据的小型控制平面。
LangChain 的 Deep Agents 包含 write_todos 功能,可将工作拆分为离散步骤。相关的待办模式会将项目存储为待处理、进行中和已完成等状态。
这些标签比叙述式进度段落提供了更可靠的表述。一个段落可能提到多项行动,却无法清楚区分已经完成和仅仅计划完成的事项。结构化状态迫使每个项目都有明确状态。
待办状态也比零散承诺更容易在摘要化过程中保留下来。压缩器可以保护一个结构化对象,而无须在完整记录中定位每一项承诺。
当智能体遇到颇具吸引力的旁支工作时,这一点尤为重要。编程智能体在实现功能时,可能发现无关的 lint 错误。若没有稳定的任务清单,它可能会将剩余上下文花在修复范围之外的问题上。
待办状态会将验收标准重新带回视野。它可以说明:请求的功能尚未完成,新发现的 lint 问题已被延后,回归测试仍需执行。
一个有用的项目不应只有简短标签。它还需要状态、完成条件以及任何阻塞依赖。高风险任务可能还需要列明完成前必须具备的证据。
例如,“更新认证”过于模糊。更好的项目应明确:令牌刷新行为必须改变,现有登录测试必须通过,并且需要验证一个新的过期场景。
重复是这一机制的一部分。编排层可以在模型下一次决策附近注入当前待办状态,让工作目标始终靠近提示词末端。
这种位置安排弥补了仅依赖记录控制的结构性弱点。原始请求位于开头附近,而近期工具输出则主导末尾。任务清单在模型当前行动的位置重申了实际目标。
不过,待办状态也会引入自身的失败模式。智能体可能在编辑文件后、运行测试前就将项目标记为完成。它也可能创建大量细碎项目,消耗注意力却没有澄清进展。
因此,状态更新需要证据规则。代码变更不能仅因补丁已应用就被视为已验证。研究结论也不能仅因搜索结果提及它就被视为已证实。
编排层可以要求在将项目状态改为已完成时附上验证引用。该引用可以指向通过的测试、已审查的工件,或被引用的一手来源。
人工审查也会因此更容易。人们可以检查明确列出的已完成和待处理工作,而不必从数百条消息中重建任务。
待办状态不应成为长期记忆。它描述当前任务,而非所有偏好或历史决策。混合这些职能会产生另一个职责过载的状态对象。
它也不应取代详细证据。清单将注意力引向工件,但无法承载所有相关事实。待办项目可以链接至测试日志,而不必嵌入整份日志。
对于知识工作者而言,这种模式类似于有纪律的 AI 工作流 设计。目标、证据、决策和后续行动保持分离,而不是混杂在单一的对话流中。
这种分离才是真正的价值。记录保存活动,待办状态记录责任。
AI 智能体记忆将连续性延伸至单次会话之外
持久化记忆解决跨会话连续性问题,但前提是编排层控制写入和检索的内容。
压缩帮助智能体在一次长时间运行中跨越上下文边界。记忆解决的是另一种边界:一个线程的结束与另一个线程的开始。
LangChain 的设计采用基于文件系统的记忆路由,用于保存应在对话之间持续存在的信息。复合后端可以将指定路径,例如 memories 目录,发送到持久化存储中。
文档建议将始终加载的记忆保持在最小范围内。项目惯例和稳定的用户偏好应放在其中。详细工作流则可以保留在仅于相关时加载的技能中。
这是一项伪装成组织规则的预算决策。持久化信息在被检索时仍会消耗活跃上下文。保存一切,只是将上下文污染从记录转移到记忆存储中。
因此,有效的 AI 智能体记忆需要筛选。稳定事实值得持久化。临时观察、已过期的计划和未经验证的猜测通常不应如此。
写入策略很重要,因为由智能体生成的记忆可能放大错误。如果智能体将错误结论存储为持久规则,未来会话可能会重复它,而不再回溯原始证据。
每条记忆都应携带来源、适用范围和更新条件。来源说明信息来自何处。适用范围界定它适用于哪些项目或用户。更新条件解释何时应替换该条目。
冲突需要明确处理。新的项目指令应覆盖该项目内较旧的惯例,但不应悄然改写适用于其他地方的全局偏好。
记忆检索同样需要相关性控制。在启动时加载每一条已保存笔记,会重新制造上下文过大的问题。编排层应只注入少量稳定核心,并在当前任务与其他记录匹配时再检索它们。
这形成了有用的职责分工。系统提示词包含不可妥协的行为。待办状态包含当前义务。工作上下文包含即时证据。持久化记忆则包含早期会话中筛选出的知识。
权威工件仍处于这四者之外。源文件、记录、测试结果和文档应以原始形式保持可检索。
Anthropic 将结构化记笔记描述为一种让智能体在单个上下文窗口之外保持进展的方法。其示例包括任务笔记、已探索的位置、已取得的成果,以及在重置后复用的策略。
其收益并非完美回忆,而是重建。重置后,智能体可以恢复目标、定位证据,并从明确状态继续工作。
这种重建需要安全边界。个人记忆不应在用户之间流转。项目机密不应进入全局共享存储。被检索的文本也必须仍被视为数据,而非可信指令。
这些风险使可观测性不可或缺。开发者应能够检查哪些记忆进入了提示词、为何被选中,以及它们是否影响了行动。
删除同样重要。持久化记忆系统需要一种方式来移除过时偏好、错误结论和敏感信息。没有生命周期控制的持久化会成为负担。
最可信的系统会将记忆视为受管理的数据,而非类似人类的回忆。它们将公开记录、来源、权限、保留期和检索行为。
这种框架也避免了夸大其词。AI 智能体记忆并不会赋予模型持续的个人体验。它只是让无状态或部分有状态的过程能够访问早期工作中经过筛选的记录。
下一项测试是恢复质量,而非最大 Token 容量
智能体平台如今需要证明,其编排层能在反复的状态转换后保留目标和证据。
未来几个月有三个信号值得关注。第一个是多次压缩循环后的恢复准确性。供应商应测试智能体能否在多次重置后保留约束、未完成项目和来源归属。
一个有用的基准测试应包含在不同阶段引入的要求。随后,它将衡量智能体在卸载、压缩、中断和恢复之后是否仍遵循这些要求。
如果结构化状态持续优于原始长记录,这一信号将强化编排层管理的方法。如果压缩反复改变决策或丢失受保护约束,则会削弱这一论点。
第二个信号是记忆可观测性。开发者需要记录,展示智能体存储了什么、检索了什么,以及每个项目为何进入活跃上下文。
清晰的检查工具将使 AI 智能体记忆更适合企业使用。隐藏或无法复现的检索会让团队无法解释,为何智能体重复了过时决策。
第三个信号是与验证关联的待办状态。框架应将完成状态与具体证据连接起来,而不是允许模型在未经验证的情况下宣称成功。
对于编程工作,这类证据可以包括测试和构建结果。对于研究工作,可以包括一手来源核查。对于计算机操作任务,可以包括应用状态中已确认的变更。
在这一信号上的成功,将表明待办状态不只是进度展示。它将确立任务清单作为可执行的控制界面。
怀疑论的理由依然充分。每种压缩算法都在不确定性下做出保留选择。每个记忆系统都可能检索错误记录。每份任务清单都可能以令人印象深刻的一致性保留错误计划。
编排层还可能用流畅的连续性掩盖模型局限。智能体可能顺畅恢复工作,却误解了在摘要化中消失的需求。用户需要基于结果的评估,而非展示流畅持久性的演示。
成本带来了另一项权衡。频繁摘要需要额外的模型调用。检索会增加延迟。持久化存储会带来治理义务。丰富的状态追踪会增加工程复杂度。
然而,替代方案也并非免费。重复工作会消耗 Token 和时间。目标丢失可能造成错误变更、不完整研究或不安全的工具使用。更大的窗口只会延后这些失败,而不会消除其原因。
LangChain 上下文工程之所以重要,是因为它让这些权衡变得可见。OpenAI 的压缩工作和 Anthropic 的结构化记忆指导指向同一方向。长期可靠性正成为一个系统问题。
因此,评估智能体的团队应提出运营层面的问题。哪些信息保持活跃?哪些内容会被摘要?哪些记录仍然是权威版本?智能体如何在中断后恢复未完成的工作?
还应测试对抗性时机:在压缩前不久纠正 agent;在完成若干步骤后修改验收标准;并在新会话中恢复任务,检查哪些内容得以保留。
最稳健的设计不应依赖任何单一机制。预算可避免不必要的过载;卸载可保留体量庞大的证据;压缩可维持可用的叙事脉络。待办状态保护即时义务,而记忆则在之后恢复经过筛选的知识。
这一组合正是 LangChain 上下文工程的核心启示。下一代 agent 的胜出关键不在于记住一切,而在于保留正确的状态、检索原始证据,并证明已完成的工作仍符合目标。
构建者现在该怎么做?为一项有代表性的长任务添加监测,强制触发数次压缩事件,并将最终结果与最初的验收标准进行对比。记录每一项丢失的约束、缺乏依据的完成声明,以及不必要的检索。随后,在扩大 agent 自主性之前,调整预算、受保护的待办状态和记忆策略。



