Claude Code SDK VS. LangGraph
- Claude Code 提倡的
Model + Harness范式核心是什么?能力边界在哪?
- LangGraph 类基于状态机的框架,在 2026 年是否过时?
- DeerFlow 这类 SuperAgent Harness 为什么选择 LangGraph 作为底座?
- 复杂 Agent 系统的分层架构应如何组织?
- 不同部署形态下,范式选择有何差异?
范式核心:Model + Harness
复杂 AI Agent 的”决策大脑”不一定需要传统的 workflow graph 作为核心控制结构。
更有效的范式是:
Agent = Model + Harness- Model 负责理解、推理、计划、工具选择和结果综合
- Harness 负责工具、上下文、文件系统、Shell、权限、Skill、Subagent、Hook、会话、checkpoint、沙箱和反馈循环
Claude Code Harness 的能力边界
解决的问题
- 模型自主驱动的 agent loop
- 工具选择空间设计(Read / Write / Edit / Bash / Grep / WebSearch)
- 长上下文 + 自动压缩
- 文件系统作为外部记忆
- Skills / Subagents / Hooks / Permissions 的高层抽象
- MCP 协议的工具生态接入
这些能力都不需要状态机,证明了Agent 大脑不必是 workflow graph
没解决的问题
Claude Code 是单进程 CLI 应用,部署形态决定了它根本不需要解决这些问题:
Claude Code 的部署特征 | 因此不需要解决的问题 |
单进程 CLI,一个开发者一个会话 | 多用户并发隔离 |
本地执行,可人工干预 / 重启 | 进程重启后的状态恢复 |
短到中等时长任务(分钟–小时) | 长任务的 checkpoint + resume |
终端 stdout 输出 | 跨网络的 SSE / WebSocket 流式 |
无跨用户状态需求 | Thread / Session 抽象 |
失败由用户重跑 | Durable execution 跨故障恢复 |
单一开发者使用 | 横向扩展与负载均衡 |
本地 trace | 企业级可观测性与审计 |
Claude Agent SDK 同样有此边界
Anthropic 后续推出的 Claude Agent SDK 是”Claude Code as a library”,继承了 Claude Code 的单进程假设
- 没有内置的多用户 Thread 隔离机制
- 没有内置的跨进程 checkpoint 与 resume
- 没有内置的 Web SSE 协议
- 没有内置的服务端横向扩展调度层
Anthropic 自己在 2026.05 推出 Claude Managed Agents(托管版本),添加了 Dreaming、Outcomes、Multiagent Orchestration 等能力。
这说明:要把 Agent SDK 做成多用户服务,必须在外面包一层托管层 —— Anthropic 选了自营托管,开发者则面临”自建 or 用 LangGraph / Temporal”的选择。
关键结论:场景边界决定范式适用性
Claude Code “不需要 LangGraph”,不是因为它证明了 LangGraph 过时,而是因为它的部署场景天然落在 LangGraph 价值之外。
把 Claude Code 的结论无差别推广到所有 Agent 场景,是范式讨论中最常见的误归因。
LangGraph 类框架的局限
容易把 Agent 退化成节点流水线
许多 workflow agent 会被设计成:
弱模型时代有效,强模型时代会削弱模型的自主规划能力。Model + Harness 范式的核心恰恰是让模型自己决定下一步。
开放式任务会产生分支爆炸
复杂任务的真实路径很难提前穷举:
显式建模所有分支会导致:节点过多、条件复杂、调试困难、维护成本高、模型自主性下降。
Workflow 不适合沉淀复杂 Skill 化知识
Skills 抽象(
SKILL.md + 资源)比 workflow 节点更适合表达可复用的领域知识:Skill 是”声明式的业务能力包”,由 Agent 自主发现与组合,而不是”显式调用的节点”。
LangGraph 类框架的空间
把 LangGraph 当作 Agent 服务的 runtime infrastructure,而不是 Agent 的”思考路径编排器”,它的价值在 2026 年反而是增强的。
服务运行时的核心能力
任何要把 Agent 做成多用户服务的项目,都必须解决:
能力 | 解决什么 |
Thread / Session 抽象 | 多用户并发隔离 |
Checkpointing | 进程重启后的状态恢复 |
Durable execution | 长任务跨故障恢复 |
Streaming (SSE / WebSocket) | 实时把 token / 工具调用推回前端 |
Middleware Chain | 沙箱、权限、上下文压缩、成本统计等横切关注点 |
Time travel | 从历史 checkpoint 回滚重分支 |
Subgraph / 子流程嵌入 | 把高确定性子任务嵌入开放式主流程 |
Trace / Replay | LangSmith 等可观测性基础设施 |
LangGraph 的角色升级
LangGraph 自身在 2026 也吸收了”Agent loop”高层抽象:[^langgraph-overview]
create_react_agent/create_supervisor/create_swarm:把 Agent loop 作为 prebuilt 组件
Deep Agents:基于 LangGraph 的 harness 模板,提供 planning / subagents / filesystem / context management
Middleware Chain:标准化的横切关注点处理
- 与 Temporal 并列被讨论为 “durable execution for AI agents” 的两条路径
LangGraph 不再是纯状态机框架,它已经是”状态机底座 + Agent loop 高层抽象”的双重身份。
适合的场景
DeerFlow 实现分析
DeerFlow 作为字节跳动开源的 SuperAgent Harness 项目,是分析”如何把 Model + Harness 范式做成多用户服务”的最佳样本。
DeerFlow 在 README 开头自我描述为:
“DeerFlow is an open-source super agent harness that orchestrates sub-agents, memory, and sandboxes to do almost anything — powered by extensible skills.”
并明确说明演化路径:
“DeerFlow started as a Deep Research framework… DeerFlow 2.0 is no longer a framework you wire together. It’s a super agent harness — batteries included, fully extensible.”
LangGraph 在 DeerFlow 中的真实角色
基于官方
backend/README.md 和 backend/docs/ARCHITECTURE.md事实 | |
LangGraph 定位 | 运行时与编排基础层,智能体运行时嵌入 FastAPI 网关,基于 LangGraph 构建 |
Lead Agent | 采用 LangGraph 状态机(响应式事件驱动),调用 make_lead_agent(config)生成主智能体 |
ThreadState | 直接扩展 LangGraph 的 ThreadState,加入 sandbox / artifacts / thread / title / todos / image 字段 |
Middleware Chain | 真实存在,8 个组件按严格顺序执行:ThreadData / Uploads / Sandbox / Summarization / Title / TodoList / ViewImage / Clarification |
Streaming | LangGraph 的 SSE streaming 协议 |
关键事实:DeerFlow 的 Lead Agent 不是 Claude Code 风格的自主 agent loop,而是跑在 LangGraph 状态机里的 reactive event-driven 节点。
Claude Code 风格抽象建在 LangGraph 之上
DeerFlow 把第 3 代抽象(Subagents / Skills / Sandbox / Memory)实现在 LangGraph 之上,而不是绕过 LangGraph:
抽象 | 实现机制 |
Subagents | task() 工具派发,最多 3 并发 + 15 分钟超时,背靠后台线程池 + SSE |
Skills | 递归扫描 skills/{public,custom}/SKILL.md,按需注入 prompt(progressive loading) |
Sandbox | 抽象接口 + 可插拔 provider(LocalSandboxProvider / AioSandboxProvider 走 Docker) |
Memory | LLM 提取用户事实 → JSON 持久化 → 跨会话注入 prompt |
Tool 接入 | 内置工具 + 配置工具 + MCP(MultiServerMCPClient 支持 stdio / SSE / HTTP) |
自主性的真实来源
DeerFlow 的”自主性”不是来自 Claude Code 风格的”模型自主决定下一步”,而是来自:
LangGraph 提供了”事件循环 + 状态持久化 + 流式回推”的底座,Claude Code 风格的”工具空间 + Subagent + Skills”建在底座之上。这两者是嵌入耦合关系,不是外挂关系。
DeerFlow 的本质定位
DeerFlow 是建立在 LangGraph 状态机之上、实现了 Claude-Code 风格高层抽象(Subagents / Skills / Sandbox / Memory)的 SuperAgent Harness。LangGraph 不是可替换的工程选择,是结构骨架
DeerFlow 混合范式的合理性
DeerFlow 的服务特征
特征 | 含义 |
FastAPI Gateway | 多用户并发服务,非单进程 CLI |
多平台前端 | Web 前端 + Feishu / Slack / Telegram 等 IM gateway |
Thread 持久化 | 用户的对话历史可以中断、恢复、回看 |
Subagent 异步执行 | 后台线程池 + 15 分钟超时 + SSE 回推 |
Sandbox 隔离 | 多用户的执行环境必须隔离 |
Memory 跨会话 | 用户在不同会话间的偏好 / 事实需要持久化 |
这些特征本质上是”服务运行时”问题,不是”Agent 决策”问题
三类必须的服务运行时能力
Class A:状态与持久化
- Thread / Session 抽象(隔离多用户)
- Checkpointing(中断后恢复)
- 状态字段扩展(sandbox info / artifacts / todos / images)
Class B:事件流与流式协议
- SSE / WebSocket 推送(token、tool call、subagent 结果)
- Subagent 异步事件回调
- 事件总线(lead agent ↔ subagents)
Class C:横切关注点
- Middleware Chain(前置后置钩子)
- 上下文压缩(Summarization)
- 沙箱注入(Sandbox)
- 上传文件处理(Uploads)
- 用户澄清流程(Clarification)
LangGraph 与 Claude Agent SDK 能力对比
能力 | LangGraph 提供 | Claude Agent SDK 提供 |
Thread / Session | ✓ 原生 | ✗ 需要自建 |
Checkpointing | ✓ 原生(Memory / SQLite / Postgres / Redis) | ✗ 需要自建 |
Durable execution | ✓ 原生(重启可恢复) | ✗ 需要自建 |
SSE streaming | ✓ 原生 | ✗ 需要自建 |
Middleware Chain | ✓ 原生 | △ 仅 lifecycle hooks,粒度不同 |
Time travel | ✓ 原生 | ✗ 需要自建 |
Subgraph 嵌入 | ✓ 原生 | ✗ 需要自建 |
Trace / Replay | ✓ LangSmith 集成 | △ OpenTelemetry,企业级工具链不如 LangSmith |
Agent loop | △ 通过 prebuilt | ✓ 原生且更强 |
Subagent 派发 | △ 通过 subgraph | ✓ 原生且更强 |
Skills | ✗ 无原生 | ✓ 原生 |
MCP 接入 | ✓ 通过 MultiServerMCPClient | ✓ 原生 |
关键观察:
- 在”服务运行时”层面,LangGraph 几乎完胜 Claude Agent SDK
- 在”Agent 决策大脑”层面,Claude Agent SDK 完胜 LangGraph
DeerFlow 选择的混合范式 —— LangGraph 做运行时 + Claude Code 风格抽象做决策大脑 —— 正是把两者的长处合在一起。
字节选择 LangGraph 是评估后的工程决策,不是惯性:
- 避免重造轮子:状态持久化、SSE、Middleware Chain 在 LangGraph 已经稳定且开源
- 生态资产复用:LangSmith 的 trace / eval / prompt 管理可以直接复用
- 演化路径开放:未来如果需要把高确定性子流程嵌入开放式 Agent(如审批、合规检查),LangGraph 的 subgraph 是天然方案
- 抽象不冲突:Subagents / Skills / Sandbox / Memory 这些 Claude Code 创新可以建在 LangGraph 之上,没有结构性矛盾
DeerFlow 如果不用 LangGraph
- Thread / Session 抽象 + 并发隔离
- Checkpointing(内存 + 持久化 backend)
- 进程重启状态恢复
- SSE streaming 协议 + 事件序列化
- Middleware Chain 框架
- 8 个具体 Middleware(DeerFlow 现有)
- Subagent 后台调度 + 事件回调中
- Trace / Replay 基础设施
- 持续维护与稳定性
如果不用 LangGraph,会失去:
- LangSmith 的 trace / eval / prompt 管理:要自建等价物,或者接入其他可观测性平台后重写适配
- LangGraph 社区的状态机抽象演化:包括未来的 durable execution 改进、time travel 优化等
- LangChain 的工具生态适配层:包括与各模型厂商的 API 兼容
- 跨 LangChain 项目的标准化:当用户已经熟悉 LangGraph 时,认知成本更低
推荐架构:分层组合
参考文献
- https://code.claude.com/docs/en/how-claude-code-works
- https://www.anthropic.com/product/claude-code
- https://code.claude.com/docs/en/agent-sdk/overview
- https://code.claude.com/docs/en/agent-sdk/agent-loop
- https://code.claude.com/docs/en/agent-sdk/subagents
- https://code.claude.com/docs/en/agent-sdk/skills
- https://platform.claude.com/docs/en/managed-agents/overview
- https://docs.langchain.com/oss/python/langgraph/overview
- https://docs.langchain.com/oss/python/langgraph/durable-execution