Deep Agents 新增自主上下文压缩工具


4 分钟阅读 2026年3月11日
TL;DR:我们为 Deep Agents SDK (Python)和 CLI 新增了一个工具,让模型能在合适时机自主压缩自己的上下文窗口。
为什么要压缩上下文?
上下文压缩是一种减少智能体工作记忆中信息的操作。旧消息会被替换为智能体进度的摘要或浓缩表示,保留与任务相关的部分。这个操作通常是为了适应有限的上下文窗口,减少上下文腐化(Context Rot)。
智能体执行框架(Harness)通常通过固定 token 阈值来控制压缩(deepagents 使用模型配置文件,在任何给定模型上下文限制的 85% 时压缩)。这种设计不够理想,因为压缩时机有好有坏:
- 在复杂重构中途压缩并不理想;
- 开始新任务或认为先前上下文将失去相关性时压缩更好。
许多交互式编码工具都有 /compact 命令或类似功能,允许用户在合适时机手动触发上下文压缩。在 deepagents 的最新版本中,我们更进一步,向智能体暴露了一个工具,让它能自己触发上下文压缩。这实现了更机会主义的压缩,无需应用程序用户了解有限上下文窗口或发出特定命令。
该工具目前在 Deep Agents CLI 中默认启用,在 deepagents SDK 中需手动启用。
我们普遍看好一个观点:执行框架应尽可能“让路”,利用底层推理模型的改进。这是苦涩的教训的一个实例:我们能否给智能体更多对自己上下文的控制,避免手动调整执行框架?
什么时候该压缩?
有多种情况可能需要进行上下文压缩操作。
在清晰的任务边界:
- 用户表示将转向新任务,早期上下文可能无关
- 智能体已完成交付物,用户确认任务完成
从大量上下文中提取结果后:
- 智能体通过消耗大量上下文获得了事实、结论、摘要或其他结果,如在研究任务中
在消耗大量新上下文之前:
- 智能体即将生成长篇草稿
- 智能体即将读取大量新上下文
在进入复杂多步骤过程之前:
- 智能体即将开始冗长的重构、迁移、多文件编辑或事件响应
- 智能体已制定计划,即将开始执行步骤
已做出取代先前上下文的新决策:
- 新需求出现,使先前上下文失效
- 有许多切线或死胡同可以简化为摘要
枚举所有可能场景不切实际,但我们的观察是:人和 LLM 能识别这些场景,在合适时机压缩,避免上下文窗口接近限制时才进行压缩步骤。你可以在其系统提示中阅读我们为模型提供的关于此工具的指导。
调用工具时会发生什么?
该工具的参数设置与现有的 Deep Agents 摘要中间件相同:我们保留最近的消息(可用上下文的 10%),并总结之前的内容。最近的消息,包括对压缩工具的调用和相关响应,都保留在最近上下文中。

查看示例跟踪。
如何使用
该工具作为单独的中间件实现,因此你可以通过将其添加到 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 # if using default backend
model = "openai:gpt-5.4"
agent = create_deep_agent(
model=model,
middleware=[
create_summarization_tool_middleware(model, backend),
],
)
更多细节请参阅 SDK 文档。
在 CLI 中,只需在准备好修剪上下文或转向新任务时调用 /compact。
我们的使用体验
我们调整了这个功能,使其保持保守。Deep Agents 在其虚拟文件系统中保留所有对话历史,允许在摘要后恢复上下文,但错误的上下文压缩步骤会破坏工作流。我们测试了:
- 自定义评估套件,使用(我们自己的)LangSmith 跟踪向需要和不需要压缩的线程注入后续提示;
- Terminal-bench-2,未观察到任何自主压缩实例;
- 我们在 Deep Agents CLI 中的编码任务。
实践中,智能体对触发压缩持保守态度,但当它们触发时,往往选择明显改善工作流的时刻。
自主上下文压缩是一个小功能,但它指向智能体设计的更广泛方向:给模型更多对自己工作记忆的控制,减少执行框架中僵化的、手动调整的规则。如果你正在构建长期运行或交互式智能体,请在 Deep Agents SDK 或 CLI 中试用,并告诉我们你的反馈以及你希望它接下来处理哪些模式。
加入我们的通讯
来自 LangChain 团队和社区的更新
输入你的邮箱
处理你的申请...
成功!请检查你的收件箱并点击链接确认订阅。
抱歉,出错了。请重试。
觉得有用?分享给更多人