Agent 开发学习站
Agent 开发›进阶›进阶

框架巡礼:LangGraph / Agents SDK / Claude Agent SDK

进阶进阶

一句话定义

Agent 框架的价值不是实现循环(kp-017 已证明 90 行够了),而是提供循环之外的生产件:状态持久化、并发调度、人审节点、流式输出、 tracing 与部署集成——选框架就是选这些生产件的设计哲学。

为什么重要

框架选型是团队级决策,换框架的成本随 Agent 数量增长。2023 年的框架大爆发(上百个)已收敛到 2026 年的三强格局,各自哲学清晰:LangGraph = 显式图与控制(你画流程);OpenAI Agents SDK = 极简循环与交接(模型决定流转);Claude Agent SDK = 生产级单 Agent 形态(Claude Code 同款内核)。理解三者差异,比学会任何一个的 API 都重要——因为差异背后是 kp-007 的根本问题:控制流放哪。

前置知识

kp-017(手写循环——祛魅的前提)、kp-019(编排)。

核心概念

三强对比

维度LangGraphOpenAI Agents SDKClaude Agent SDK
核心抽象图(节点=步骤,边=流转)Agent(循环+工具)+ handoff预构建的 Claude Code 类 Agent(循环+CLI工具+权限)
控制流开发者显式定义模型 handoff 决定模型自主 + 权限系统约束
状态checkpoint 持久化、可回放轻量(run 管理)会话持久 + 文件系统
杀手锏复杂工作流可视化/可中断/时间旅行调试极简上手、与 OpenAI 生态无缝白拿 Claude Code 的工程化(hook/权限/MCP)
适合流程复杂的多阶段管线快速构建服务型多 Agent构建编程/终端型产品
代价学习曲线陡(图思维)定制深了要自己补件绑定 Claude 生态与形态

LangGraph 的图思维

pythonfrom langgraph.graph import StateGraph, END
builder = StateGraph(State)            # State 是共享的 TypedDict
builder.add_node("plan", plan_node)    # 节点 = 读状态→改状态的函数
builder.add_node("execute", execute_node)
builder.add_node("review", review_node)
builder.add_edge("plan", "execute")
builder.add_conditional_edges("review", should_retry,
    {"retry": "execute", "done": END})
graph = builder.compile(checkpointer=...)  # ← 每步自动存档

它把 kp-006 的 while 循环外化为图:分支、循环、人审(interrupt)都成为一等公民,可可视化、可断点续跑。代价是你必须预先想清楚结构——这正是它适合"流程已知"场景、不适合"全自主探索"的原因。

Agents SDK 的极简哲学

pythonfrom agents import Agent, Runner
triage = Agent(name="客服分诊", instructions="...", handoffs=[refund_agent, tech_agent])
result = await Runner.run(triage, user_msg)

handoff 是它的灵魂:模型在对话中把控制权交给另一个 Agent(作为特殊工具调用实现)。控制流由模型分布决定——与 LangGraph 的哲学正好相对。2025 年发布时官方明确砍掉了上一代(Assistants/Swarm)的复杂概念,"less is more" 路线。

Claude Agent SDK:产品级形态外包

直接提供 Claude Code 的内核(查询-编辑-执行循环、CLAUDE.md 记忆、权限门、hook、MCP、subagent),你在其上做产品封装。本质是把"顶级 Agent 的工程化"当依赖装进来——适合终端型、编程型场景;通用场景受其形态约束。

原理与机制

三者的哲学差异可以统一到 kp-007 的控制光谱上:LangGraph 把控制流放在代码/图(workflow 端),Agents SDK 放在模型(agent 端),Claude SDK 放在模型 + 预置护栏(产品端)。没有最优,只有匹配:

  • 步骤确定、要审计、要人审插桩 → LangGraph
  • 探索型、服务型、快迭代 → Agents SDK(或直接 kp-017 自研 + 平台件)
  • 终端/编程型产品、想白拿成熟权限与记忆系统 → Claude Agent SDK

另一条 2025 年后强化的事实标准:框架层都在 MCP 原生支持上卷(工具生态共享),且都接 LangSmith/OpenTelemetry 类 tracing(kp-025)——框架的护城河正从"抽象"转向"运维件"。

直观类比

  • LangGraph = 乐高图纸:结构清晰、改起来要重新拼,但成品可预测可复制
  • Agents SDK = 给实习生放权:你说目标,他自己决定找哪个同事(handoff)
  • Claude Agent SDK = 雇一个带完整工具箱和门禁卡的成手

实例与案例

同一需求("周报聚合:抓数据→分析→人审→发布")的三框架落点:

  • LangGraph:四节点图,人审 用 interrupt 暂停等输入,checkpoint 让周五中断周一续跑
  • Agents SDK:triage Agent handoff 给 analyst,再 handoff 给 publisher(人审要自建外部循环)
  • Claude Agent SDK:一个会话让它跑,权限系统拦住"发布"动作等人批准(kp-023 现成实现)

注意结论:需求里的"人审+断点续跑"天然偏好 LangGraph——选型从需求特征出发,不从流行度出发。

常见误区

  • 误区一:"框架让 Agent 更聪明"。框架不改变模型能力;同一模型+同一工具,框架间上限差异远小于工具/提示设计的差异(kp-010/004)。
  • 误区二:跳过 kp-017 直接学框架。你会把图、节点、handoff 当魔法背下来,遇到 bug 无法下沉。
  • 误区三:框架重度抽象 + 深度定制。绕过抽象的定制比自研更难维护——当你的定制开始对抗框架哲学,就是换/退的信号。
  • 误区四:忽视自研路线。生产中大量团队最终回到"kp-017 + 少量库 + 自家平台件",框架不是必经之路(尤其工具少、流程简单的场景)。

自测题

  1. 框架的真正价值是什么(不是什么)?
  2. 三强的控制流哲学分别落在 kp-007 光谱的哪一段?
  3. 什么信号说明该换框架或退回自研?

(参考答案:1. 生产件(状态/并发/人审/tracing/部署),不是智能;2. 代码端 / 模型端 / 模型+护栏端;3. 定制开始对抗框架的核心抽象时。)

与其他知识点的关系

  • 循环本质 → kp-006/017;编排思想 → kp-019
  • 框架的运维件 → kp-025/027;MCP 集成 → kp-011
  • Claude Agent SDK 的产品级样本 → kp-028

延伸阅读

  • 三家官方文档的 quickstart(各 1 小时可跑通)
  • LangGraph, Why Graph? 设计说明;OpenAI, A New Era of Agents 发布博客(2025.3)