deepagents 深入解读

LangChain 为什么开始认真做 Agent Harness

Posted by zwt on March 18, 2026

项目信息

  • 项目:langchain-ai/deepagents
  • 一句话定义:一个面向复杂任务执行的 agent harness,重点不是“再做一个会聊天的 agent”,而是把 planning、filesystem、subagents、任务状态与执行过程 这些工程基础设施拼起来。
  • 我为什么选它:如果只看最近一波 agent 项目,deepagents 不一定最炫,但它最能代表一个很明确的趋势——agent 正在从 prompt demo 走向任务执行系统

先说结论:deepagents 值不值得跟

我的判断很直接:值得跟,而且值得拿真实任务试,不值得只看 README 做判断。

原因也很简单:

  1. 它抓的是对的问题——复杂任务执行,而不是单轮对话包装。
  2. 它补的是最缺的层——规划、子代理拆解、文件系统落盘、可持续执行。
  3. 它天然适合代码、研究、分析、整理这类“要产生中间产物”的任务。
  4. 但它也有典型风险:框架绑定、抽象过厚、可观测性与失败恢复是否够强,必须实测。

所以对 deepagents 最合理的姿势不是“学它的 marketing 话术”,而是:

把它当成一个候选执行层,用你自己的真实任务去压,看看它到底能不能把任务稳定跑完。

它到底在补什么坑

现在很多 agent 系统有个共性问题: 看起来什么都能做,实际上复杂任务一长就开始散。

典型症状包括:

  • 任务步骤一多,模型开始忘记中间目标;
  • 工具调用和文件产物没有稳定组织方式;
  • 出错以后没有像样的恢复路径;
  • 所谓“multi-agent”只是多开几个 prompt,并没有明确的拆分/汇总协议;
  • 一旦要做代码修改、数据整理、报告生成这类长链路任务,整个系统就开始失稳。

deepagents 的价值,在于它不是在“能力层”继续堆概念,而是在“执行层”补这几个关键坑:

  • Planning:先拆任务,而不是直接怼到底;
  • Filesystem backend:任务过程中有地方存状态、存中间文件、存产物;
  • Subagents:能把子任务显式拆出去,而不是全部塞在一个 agent 上下文里;
  • Harness 化:把这些能力包装成一套更容易复用的执行框架。

这其实是在回答一个工程问题:

当 agent 不再只是回答问题,而是要完成任务时,执行基础设施应该长什么样?

为什么说它不是“又一个 agent 框架”

我觉得很多人会低估这类项目,因为第一眼容易把它归类成“agent framework 新皮肤”。

但 deepagents 和那类“定义一个 agent 类 + 配几个 tool + 跑起来”不太一样。

它真正有意思的点,在于它试图把复杂任务执行中的几个关键对象显式化:

1. 任务不是一次生成,而是一个过程

过去很多 agent demo 的隐含假设是:

  • 用户提一个需求
  • agent 做若干轮调用
  • 最后给一个答案

但真实任务往往不是这样。

比如“分析一个仓库并提交 PR 草稿”,中间至少包含:

  1. 理解需求
  2. 检索代码
  3. 锁定修改点
  4. 生成改动
  5. 跑测试
  6. 收集失败信息
  7. 修复
  8. 输出总结/PR 描述

这不是“多轮对话”,而是多阶段执行

deepagents 的方向,是把这件事当成一个持续执行过程来处理,而不是一次 prompt completion。

2. 文件系统不是附属品,而是任务记忆的一部分

这是我认为它最工程化的信号之一。

很多 agent 系统把文件读写当成一个普通 tool,但在复杂任务里,文件系统其实承担三件事:

  • 状态存储:中间结果、草稿、临时分析
  • 产物管理:代码 patch、报告、表格、截图、日志
  • 上下文压缩:把长上下文外移,避免全部塞进 token 窗口

所以 filesystem backend 不是锦上添花,而是复杂 agent 的基本盘。

如果一个 agent 系统没有稳定的外部状态和产物管理,那么长链路任务基本不可能真正稳定。

3. 子代理不是为了酷,而是为了隔离复杂度

subagents 现在很容易被营销化,但它真正合理的价值只有一个: 把复杂度隔离开。

比如主 agent 负责总体规划,子 agent 负责:

  • 单独扫某个目录
  • 验证某个假设
  • 写某个模块 patch
  • 做竞争方案调研

这样做有三个现实好处:

  1. 降低单个上下文污染;
  2. 允许不同子任务有不同策略;
  3. 汇总时可以保留结构化中间产物,而不是一锅粥。

当然,subagents 不是天然有效。它只有在以下条件下才有意义:

  • 拆分边界清晰;
  • 子任务输入输出协议明确;
  • 汇总与回收机制稳定;
  • 失败时不会把系统拖进无限递归。

所以 deepagents 如果真有价值,不在于“支持 subagents”这几个字,而在于它有没有把这些工程细节做扎实。

deepagents 最适合什么场景

我不建议把它先拿去做纯问答,因为问答并不能检验它的长处。

它更适合这几类任务:

1. 代码改动类任务

比如:

  • 在仓库里定位 bug 并尝试修复
  • 做跨文件重构
  • 生成 PR 草稿和变更说明
  • 批量补测试/补注释/补类型

这类任务的共同点是:

  • 有明确产物;
  • 需要中间状态;
  • 往往能拆成子任务;
  • 需要失败恢复和结果汇总。

2. 研究/调研类任务

比如:

  • 对多个项目做对比分析
  • 收集资料并生成结构化报告
  • 跟踪趋势并输出决策建议

这类任务适合 harness 的地方在于:

  • 需要多来源检索;
  • 需要逐步沉淀材料;
  • 需要把局部发现汇总成最终结论。

3. 数据整理与运营分析

比如:

  • 拉取多份数据做清洗和汇总
  • 生成日报/周报
  • 输出异常分析和行动建议

如果 filesystem 和 planning 做得够稳,这类任务会明显比“纯聊天 agent”更像一个可用系统。

真正要看的不是功能表,而是 4 个工程问题

如果你们准备评估 deepagents,我建议不要陷在“支不支持 X”这种表面问题里,而是重点盯下面 4 件事。

1. 状态持久化是否清晰

你要看的是:

  • 任务状态怎么表示;
  • 中间产物怎么组织;
  • 中断后能不能恢复;
  • 多个子任务的结果如何回收。

如果这部分不清晰,系统就只能跑 demo,跑不了真实生产任务。

2. 失败恢复是否靠谱

复杂任务必然失败,关键不是“会不会失败”,而是:

  • 失败能不能定位;
  • 能不能带着中间结果继续;
  • 是不是每次失败都要从头再来;
  • 子代理失败后主流程怎么处理。

一个 agent harness 真正成熟的标志,通常不是 happy path 多顺,而是 bad case 多可控。

3. 可观测性是否够用

这里至少应该有:

  • 当前任务阶段
  • 当前/最近工具调用
  • 子代理树或任务树
  • token/时间/成本消耗
  • 错误与重试信息

没有这些,deepagents 就算执行能力再强,也很难被团队放心用。

4. 权限隔离是否足够细

一旦 agent 有 filesystem、代码改动、外部调用这些能力,权限边界就是硬问题。

重点要看:

  • tool 是否可以按任务或子代理隔离;
  • 文件系统是否有限制目录;
  • 写操作是否可审计、可回滚;
  • 是否支持“建议模式”与“执行模式”切换。

如果这些做不好,越强的 harness 风险越大。

从 LangChain 的角度看,它释放了什么信号

这个项目还有一层信号价值: LangChain 生态自己也在往 agent runtime / task execution 的方向补。

这说明一件事:

  • 仅靠 prompt 编排 + tools registry,已经不够支撑大家对 agent 的预期了;
  • 大家真正卡住的,不是“怎么定义一个 agent”,而是“怎么让 agent 作为系统稳定执行任务”。

所以 deepagents 可以看成一个方向上的确认:

下一阶段 agent 工程的核心竞争点,不再是“会不会调用工具”,而是“能不能把复杂任务可靠地跑完”。

我对它的主要保留意见

说优点容易,真正有价值的是把保留意见说清楚。

1. 生态绑定风险很高

它天然站在 LangChain / LangGraph 生态上,这对上手是好事,对长期演进未必是。

风险在于:

  • 抽象层叠得太多,调试复杂;
  • 上层业务逻辑容易和框架对象深绑定;
  • 一旦后续迁移,会有明显改造成本。

所以如果要引入,最好把它放在可替换执行层的位置,而不是把业务语义直接写死在框架抽象里。

2. “有规划”不等于“规划得好”

很多 agent 系统写 README 都会强调 planning,但真正难点不是有没有 planner,而是:

  • 拆分是否稳定;
  • 粒度是否合适;
  • 会不会过度规划导致成本暴涨;
  • 计划变更时是否能自洽。

deepagents 是否真能解决问题,要靠真实任务压测,而不是看功能描述。

3. 子代理容易带来额外成本和系统复杂度

subagents 很可能带来:

  • token 成本上升;
  • 调度复杂度上升;
  • 汇总误差和信息丢失;
  • 更多非确定性。

所以不是任务越复杂越该上 subagents,而是要看任务结构是否真的适合拆。

4. Harness 解决不了评测问题

这是最容易被忽略的一点。

deepagents 可以帮助你把任务“跑起来”,但它不自动回答:

  • 这个任务到底算成功还是失败?
  • 哪类失败最常见?
  • 成本是不是值得?
  • 哪种拆解策略更优?

这些都需要你自己补评测与观测闭环。

如果我是团队负责人,我会怎么试它

我不会先让团队花一周研究框架 API。我会直接做一个非常实在的小实验。

试验任务

选一个你们每周都会遇到的真实任务,例如:

  • 给一个中型仓库做 bug 定位 + patch 草稿
  • 汇总一周 issue / PR / CI 失败并生成周报
  • 对 3 个竞品项目做技术对比并输出表格报告

评估维度

只看 5 个指标:

  1. 任务完成率:能否稳定跑到结束
  2. 人类接管成本:失败时要不要大幅人工重做
  3. 中间产物质量:日志、草稿、文件是否清晰可用
  4. 成本/耗时:是否可接受
  5. 调试性:出了问题是否能快速定位

引入原则

  • 第一阶段:只做候选执行层,不绑死业务;
  • 第二阶段:接 1~2 条明确工作流;
  • 第三阶段:再考虑是否深度绑定 LangChain 生态能力。

换句话说: 先把 deepagents 当“执行器候选人”,不要一上来当“系统总线”。

一个更重要的趋势:Agent 基础设施正在分层

如果把最近这波项目放在一起看,deepagents 的位置其实很清楚:

  • 上层:面向用户/业务的 agent 产品
  • 中层:规划、路由、subagents、memory、tooling
  • 底层:状态管理、文件系统、可观测性、权限控制、评测

deepagents 主要打的是中层和底层之间的连接层,也就是: 让 agent 从“会调用工具”变成“有执行结构的系统”。

我觉得这类项目未来真正的分水岭,不是谁 API 更优雅,而是谁能把下面这些事情一起做好:

  • 可恢复
  • 可观测
  • 可控制
  • 可评测
  • 可替换

只要这五件事里缺两三件,系统就很难过生产线。

最后总结

如果只看 GitHub Trending,deepagents 很容易被看成“LangChain 生态又发了个 agent 项目”。

但如果从工程视角看,它其实很有代表性: agent 正在从“能力展示”转向“任务执行基础设施”。

我对它的总体判断是:

  • 方向正确:planning + filesystem + subagents 是复杂任务的关键拼图;
  • 适合实测:尤其适合代码、调研、分析这类长链路任务;
  • 不能盲信:要重点验证状态持久化、失败恢复、可观测性与权限边界;
  • 引入姿势要克制:先作为可替换执行层试用,不要一开始就全量绑定。

一句话总结:

deepagents 值得关注,不是因为它又定义了一个 agent,而是因为它在认真回答“agent 怎样才能像系统一样把任务跑完”。