Appearance
Deep Agents 生态定位与选型
选择 Agent 技术时,最容易犯的错误是把不同抽象层的工具放在同一张“功能多少”榜单里。Deep Agents 的核心定位是 Agent Harness:它比基础 Agent 循环提供更多长任务约定,又没有要求你 用图结构声明全部业务流程。
先按抽象层分类
| 技术 | 主要抽象 | 应用负责的部分 | 框架预置的部分 |
|---|---|---|---|
LangChain create_agent | 模型 + 工具 + middleware 的 Agent 循环 | 上下文、文件、委派和工程策略 | 基础循环与 middleware 接口 |
| Deep Agents | 约定式 Agent Harness | 模型、业务工具、存储、安全与部署选择 | planning、filesystem、subagents、context management |
| LangGraph | 有状态执行图与运行时 | 节点、边、状态 schema 和控制流 | checkpoint、interrupt、streaming、durable execution |
| CrewAI | 角色、任务、Crew 与 Flow | 角色设计、任务和团队流程 | 团队协作与流程抽象 |
| Vercel AI SDK | TypeScript AI 应用与 UI 数据流 | 前后端应用、Agent 行为与基础设施 | 模型接口、tool calling、stream protocol、UI hooks |
| Claude Agent SDK | 面向 Claude 生态的 Agent Harness | 工具、权限、部署与产品集成 | 编码 Agent 风格的循环与工具环境 |
这张表描述的是主要心智模型,不代表某个框架只能完成一类任务。
前端类比
可以把 create_agent 看作一个最小应用入口,把 Deep Agents 看作约定式全栈框架,把 LangGraph 看作更底层的状态机与调度器。CrewAI 更接近用“团队角色”描述业务,Vercel AI SDK 则更靠近 TypeScript 应用层和 UI 数据通道。
Deep Agents 原生语义:Deep Agents 自身仍使用 LangChain Agent 循环和 LangGraph Runtime。 它的区别不是“比 LangGraph 多一个执行引擎”,而是提前组合了适合长任务的 middleware 与 backend,并提供一组可替换的默认行为。
Deep Agents 与 create_agent
选择 create_agent 的信号:
- Agent 只有少量工具和较短上下文。
- 应用已经有自己的 memory、文件、任务与审批层。
- 希望从最小 middleware 集合开始。
选择 Deep Agents 的信号:
- 需要让模型维护任务列表并逐步完成长任务。
- 工具结果或中间材料需要 offload 到文件。
- 需要同步或异步 subagents 隔离上下文。
- 希望在同一个 Harness 内组合 Skills、Memory、HITL 与 sandbox。
Deep Agents 不是不可逆选择。它建立在 create_agent 之上,你仍能添加自定义 middleware、state schema 和 context schema。
Deep Agents 与 LangGraph
两者不是二选一的竞争关系:
- Deep Agents 适合“让 Agent 自己规划标准循环中的下一步”。
- LangGraph 适合“应用代码必须确定下一步走哪条边”。
- Deep Agents 编译出的 Agent 图可以作为自定义 LangGraph 的一个节点或子图。
- LangGraph 的 checkpointer、store、streaming 与 interrupt 也是 Deep Agents 的运行基础。
当业务要求“付款前必须走固定风控节点、失败必须进入补偿分支”时,显式 LangGraph 更容易审计。 当任务是“研究这个问题,自行拆分并写出报告”时,Deep Agents 的 Harness 通常更贴近问题形状。
Deep Agents 与 CrewAI
CrewAI 的主要心智模型是 Agent 角色、Task、Crew 与 Flow,适合用“团队如何协作”表达问题。Deep Agents 更强调一个主 Agent 如何管理上下文、文件和 subagents 来完成长任务。
| 判断维度 | Deep Agents | CrewAI |
|---|---|---|
| 首要隐喻 | 长任务 Harness | 角色化团队 |
| 委派入口 | task 与 subagent spec | Agent、Task 与 Crew |
| 底层执行 | LangGraph Runtime | Crew/Flow runtime |
| 语言主线 | Python 与 TypeScript SDK | Python 主线 |
| 更适合的起点 | 已在 LangChain/LangGraph 生态 | 业务天然以角色和团队表达 |
Deep Agents 与 Vercel AI SDK
Vercel AI SDK 解决的是 TypeScript 应用中的模型接入、tool calling、流式协议和前端 UI 体验。 Deep Agents 解决的是服务端长任务 Harness。它们可以组合:后端 Deep Agents 服务产生事件,前端通过 适配后的流协议展示进度、工具调用和审批界面。
如果产品的难点主要是聊天 UI、生成式组件和浏览器流式体验,先从 Vercel AI SDK 开始。如果难点 是长任务上下文、文件工作区、委派和可恢复执行,再引入 Deep Agents。
Deep Agents 与 Claude Agent SDK
两者都属于 Agent Harness,但生态选择不同。Deep Agents 官方强调模型和基础设施的可替换性, 并与 LangChain、LangGraph 和 LangSmith 组合;Claude Agent SDK 与 Claude 编码 Agent 生态结合 更紧密。选型时应核查模型要求、工具环境、部署方式、协议集成和团队已有技术栈,而不是依赖一张 静态功能清单。
快速决策表
| 当前最难的问题 | 优先评估 |
|---|---|
| 一个轻量 Agent 调几个工具 | LangChain create_agent |
| 模型驱动的长任务、文件与委派 | Deep Agents |
| 应用驱动的确定性状态图 | LangGraph |
| 角色化团队与业务 Flow | CrewAI |
| TypeScript AI UI 与流式交互 | Vercel AI SDK |
| 与 Claude 编码 Agent 生态深度结合 | Claude Agent SDK |