对于正在构建长时运行或交互式 Agent 的开发者来说,这个功能值得一试。它本身不算大,但它所指向的方向——让模型更主动地管理自己的工作记忆——可能会成为下一代 Agent 框架的标配。​

AI Agent 在执行长任务时有一个绕不开的问题:上下文窗口是有限的。

当对话历史、工具调用结果、文件内容不断堆积,模型的注意力会被稀释,关键指令被淹没,决策质量随之下滑——这种现象被称为"上下文腐烂"(context rot)。

LangChain 的 Deep Agents SDK 此前已经实现了自动压缩:当上下文使用量达到模型窗口的 85% 时,系统会自动触发摘要化,将旧消息替换为结构化摘要。

这套机制能用,但不够聪明——它不知道现在是不是压缩的好时机。

最新发布的版本做了一件有意思的事:把"何时压缩"这个决定权交给了模型本身。

为什么固定阈值不够好

压缩上下文这件事,有好时机,也有坏时机。

如果模型正在进行一次复杂的代码重构,中途突然压缩,很可能丢失关键的中间状态,导致后续步骤出错。

但如果一个阶段性任务刚刚完成,用户准备开启新话题,这时候压缩就非常合适——旧的上下文已经没什么用了,清掉反而能让模型更专注。

很多交互式编程工具(比如 Claude Code)提供了 /compact 这样的手动命令,让用户自己决定什么时候清理上下文。但这要求用户理解上下文窗口的概念,并且在合适的时机主动操作——对大多数人来说这个门槛并不低。

Deep Agents 的新方案是:把这个工具暴露给模型,让它自己判断。

哪些时刻适合压缩

LangChain 在系统提示中为模型提供了判断指引,总结下来大致有这几类场景:

• 任务边界:用户明确表示要切换到新任务,或者当前交付物已完成并得到确认
• 信息提取完毕:模型从大量上下文中得出了结论、摘要或关键事实,原始内容已不再需要
• 即将消费大量新内容:准备生成长文档,或者要读入大量新文件
• 进入复杂多步流程前:大型重构、迁移、多文件编辑等任务开始之前,或者计划已制定、即将进入执行阶段
• 旧上下文已被新决策覆盖:新需求推翻了之前的方向,或者存在大量无效的探索路径需要清理

这些场景的共同特点是:历史上下文的边际价值已经很低,而接下来的任务需要更清晰的工作记忆。

压缩时发生了什么

这个工具的实现复用了 Deep Agents 已有的摘要化中间件逻辑:保留最近 10% 的可用上下文作为近期消息,对更早的内容生成结构化摘要。

触发压缩的工具调用本身及其响应,也会被保留在近期上下文中。

图片

值得一提的是,Deep Agents 会把完整的对话历史保存在虚拟文件系统中,即便压缩之后,原始内容依然可以通过文件系统检索找回。这在一定程度上降低了误触发压缩的风险。

如何启用

在 SDK 中,这个功能作为独立中间件提供,需要手动加入到 create_deep_agent 的中间件列表:

from deepagents import create_deep_agent
from deepagents.backends import StateBackend
from deepagents.middleware.summarization import (
  create_summarization_tool_middleware,
)

backend = StateBackend
model = "openai:gpt-5.4"
agent = create_deep_agent(
  model=model,
  middleware=[
    create_summarization_tool_middleware(model, backend),
  ],
)

在 Deep Agents CLI 中,这个功能默认开启。用户也可以继续使用 /compact 命令手动触发。

实测表现:保守但有效

LangChain 在调优时刻意让这个功能偏保守。

他们用三种方式进行了测试:

  • 基于自家 LangSmith 追踪记录构建的评估集(注入后续 prompt,判断是否应该触发压缩)
  • Terminal-bench-2 基准测试(未观察到任何自主压缩行为)
  • 团队内部在 Deep Agents CLI 上的日常编码任务。

结果是:模型触发压缩的频率不高,但每次触发都发生在比较合理的节点,而且确实改善了后续的工作流。

这背后有一个更大的设计哲学:Agent 框架应该尽量"让开",把更多控制权交给底层推理模型本身,而不是靠手工调参来打补丁。这是"苦涩的教训"(bitter lesson)在 Agent 设计上的一次具体实践——与其精心设计触发规则,不如让模型自己学会判断。

对于正在构建长时运行或交互式 Agent 的开发者来说,这个功能值得一试。它本身不算大,但它所指向的方向——让模型更主动地管理自己的工作记忆——可能会成为下一代 Agent 框架的标配。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐