产品LangChain Blog·原文 2026年10月14日本站收录 2026年10月15日

LangChain发布Deep Agents上下文管理方案,用中间件应对长任务“上下文腐化”

LangChain在博客中介绍其开源harness Deep Agents如何通过卸载、摘要、技能按需加载、子代理和长期记忆五类中间件,把长任务中不断膨胀的上下文搬出模型活动窗口,称这些能力多数已内置,无需自行编写中间件。

AI解读:LangChain博客指出,代理执行长任务时会累积指令、工具结果和文件等信息,超过模型上下文窗口后准确率和推理能力往往下降,其内部把这一现象称为“上下文腐化”(context rot)。

Deep Agents的应对方式是中间件:在代理循环的特定节点读取并改写上下文。LangChain称这些中间件多数已内置,用户无需自行编写,除非要定制特定环节。

五类技术分别为:卸载(超过约 20,000 token的工具结果写入文件系统,模型只看到首尾预览和路径)、摘要(token用量达到模型窗口 85% 时,由另一次LLM调用把较早消息压缩成摘要)、按需加载技能、用子代理隔离噪声工作、把长期记忆存为markdown文件。

卸载与摘要针对不同增长形态:卸载拦截大工具结果和超大用户消息(阈值 50,000 token)带来的尖峰,摘要处理长期累积的整体攀升;被摘要的原始消息写入会话历史文件,可再读回,且后续摘要会包含上一次摘要,形成循环。

博客用一个竞品分析代理演示:每周一调研五家公司并按模板出报告,单次运行会携带五份原始数据、数十条搜索结果和两份旧草稿,其中大部分与最终格式化报告无关。

LangChain同时说明,记忆以普通文件形式存放在用户自己的存储中,因此可更换模型或供应商后继续读取同一文件;文末列举的注意事项包括大输入应卸载而非截断、压缩应可恢复、知识应按需加载、噪声工作应隔离、记忆应自有、阈值应可配置。

LangChain在其博客中介绍开源harness Deep Agents如何管理代理的上下文窗口,并说明这些技术以中间件形式接入代理运行循环。

博客把代理执行长任务时因信息累积导致准确率和推理能力下降的现象称为“上下文腐化”(context rot),称上下文管理技术主要分为两类:阻止不必要信息进入上下文窗口,以及管理、过滤已在窗口中的内容。

Deep Agents的五类上下文中间件

LangChain称Deep Agents是其开源harness,用以下技术把上下文移出活动窗口,使主代理只携带所需内容,并可在需要时取回原始数据。

卸载:工具结果超过约 20,000 token时,完整结果写入 /large_tool_results/{tool_call_id},模型只看到首尾几行预览和文件路径;超大用户消息阈值更高,为 50,000 token,保存至 /conversation_history/。

摘要:每次模型调用前检查token用量,超过模型上下文窗口 85%(默认值)时,由一次独立的LLM调用把较早消息压缩成一条摘要,较早消息移出窗口,最近消息原样保留,模型先看到摘要再看到最近消息。被摘要的消息写入 /conversation_history/{session_id}.md,可读回;后续摘要会包含上一次摘要。

技能:把特定任务(如季度业务回顾格式)的指令打包成文件夹,代理先只看到简短描述,在判断相关时才用read_file加载完整指令,LangChain称之为渐进式披露。

子代理:把已知会产生大量噪声的工作放到独立上下文窗口执行,只把最终结果返回主代理。博客示例中market-researcher子代理读完整报告后只返回三条要点。

长期记忆:以markdown文件形式存在,运行时读取并注入系统提示,代理学到值得保留的内容(如格式偏好)时更新该文件。

竞品分析代理示例

博客以一个每周一运行、调研五家竞争对手并按团队模板写报告的代理为例:单次运行会拉取公司A的市场数据导出(数万行)、搜索新闻并记笔记、对其余四家公司重复同样操作、起草并根据反馈修改报告。

到第四步时,代理已在每次模型调用中携带五份原始导出、数十条搜索结果和两份旧草稿,其中大部分内容与最终格式化报告无关。

博客称检索方法(RAG或文件系统搜索)只能解决一半问题,精确的代理仍会累积不必要的消息、工具结果和中间工作,因此harness还须管理已在窗口内及周边的上下文。

记忆可跨模型与供应商

LangChain称Deep Agents不绑定模型供应商,这一点延续到记忆:记忆是用户自己存储中的普通文件,不存放在供应商处,因此可让同一后端指向不同模型。

博客给出的示例代码把模型换为openai:gpt-6,同时指向memory=["/memories/AGENTS.md"]、backend和store;文中称下周换成别家模型仍能读取同一文件并按要点格式写摘要。

LangChain列出的注意事项

博客在结尾列出使用或自行构建harness时应注意的几点,措辞为建议而非效果数据。

  • 大输入应卸载而非截断:截断有损,卸载保留可检索性。
  • 压缩应可恢复:摘要后代理仍能取回所需细节。
  • 知识应按需加载:把每项任务的指令放进系统提示,会在每次调用中消耗上下文。
  • 噪声工作应隔离:拥有独立上下文的子代理可让主代理保持专注。
  • 记忆应自有:存放在自己控制存储中的记忆能在切换模型或供应商后存活。
  • 默认值应可配置:适合一项任务的阈值很少适合所有任务。

获取方式

博客称这些中间件多数已内置,无需编写中间件即可使用,除非要自定义特定环节。文末给出安装命令uv add deepagents,并预告 11 月 3 日有直播讲解,以及LangChain Academy上免费的Deep Agents自定进度课程。

信息来源

LangChain Blog原始来源