跳转至

LangChain、LangGraph、LangSmith 及主流 Agent 框架如何选型?

  • ID:Q051
  • 难度:进阶 / 系统设计
  • 标签:LangChain、LangGraph、LangSmith、AutoGen、CrewAI、ADK、Framework Selection
  • 时效性:框架变化快,整理日期为 2026-08-01

可视化图解

flowchart TD
  R[需求] --> C{核心复杂度在哪里}
  C -->|简单工具调用| S[轻量 SDK]
  C -->|显式状态图与恢复| G[Graph / Workflow 框架]
  C -->|多 Agent 协作| M[Multi-Agent 框架]
  C -->|企业平台控制面| H[自研 Runtime + 选用组件]
  S --> E[PoC 与 Benchmark]
  G --> E
  M --> E
  H --> E

核心结论

框架选型不是比较功能清单,而是确定你需要哪一层抽象:模型与工具集成、Agent Loop、持久化 Runtime、多 Agent 通信,还是可观测和部署平台。

先画自己的状态机、错误恢复和部署约束,再选择最薄的合适框架;不要从框架名反推系统架构。

一、LangChain 生态的层次

根据当前官方文档:

  • LangChain:高层 Agent Framework,提供模型、工具、消息、Middleware 和常见 Agent Loop 抽象;
  • LangGraph:低层编排与 Runtime,侧重显式状态、Durable Execution、Streaming、HITL 和持久化;
  • LangSmith:Tracing、Evaluation、Prompt、Deployment 和运行平台;
  • Deep Agents:建立在 LangGraph 上的更完整 Harness,包含规划、Subagent、文件系统和 Context 管理。

官方资料:

什么时候用 LangChain

  • 快速构建标准 Tool-calling Agent;
  • 团队需要统一模型和工具接口;
  • 编排不复杂;
  • 希望使用成熟 Middleware 和集成。

什么时候直接用 LangGraph

  • 需要显式 State 与状态转移;
  • 长任务、暂停恢复;
  • 确定 Workflow 与 Agent 决策混合;
  • HITL;
  • 复杂错误和重试;
  • 希望控制每个节点。

LangSmith 的位置

LangSmith 不是 LangGraph 的替代品,而是开发、Trace、评测和部署治理平台。也可观测其他框架。

二、AutoGen

当前 AutoGen 分为:

  • AgentChat:高层单/多 Agent API 和预置 Team Pattern;
  • Core:事件驱动、消息与 Runtime 基础,适合更灵活或分布式多 Agent;
  • Extensions:模型、MCP、Docker Code Executor、gRPC Runtime 等集成。

官方资料:

适合:

  • 对话式多 Agent 研究和原型;
  • 需要自定义消息协议和事件驱动 Runtime;
  • 分布式 Agent 实验。

需要重点评估 Context 增长、终止条件、状态持久化和生产部署,而不是只使用 Group Chat Demo。

三、CrewAI

CrewAI 提供:

  • Crews:角色化 Agent 团队;
  • Tasks / Processes:顺序、层级等协作;
  • Flows:事件和状态驱动的确定编排;
  • Memory、Knowledge、Guardrails 和 Observability。

官方资料:

适合:

  • 业务团队快速构建角色协作;
  • 内容研究、流程自动化;
  • 希望较高层表达 Crews + Flow。

需要验证高并发、复杂状态、版本升级和底层可控性是否符合你的场景。

四、Google ADK 等

Google ADK、OpenAI Agents SDK、LlamaIndex 等也提供 Agent、Tool、Session、Runner 或多 Agent 抽象。选型方法相同:看你的模型生态、部署环境、协议、可观测性和 Runtime 需求,而不是枚举所有框架。

五、选型矩阵

需求 优先考虑
快速标准 Agent 高层 Agent Framework
复杂状态机和恢复 LangGraph / Durable Runtime
对话式多 Agent AutoGen AgentChat / Core
角色化业务自动化 CrewAI Crews + Flows
RAG 数据框架 LlamaIndex / LangChain 相关组件
统一 Trace 与 Eval LangSmith 或 OpenTelemetry 体系
强企业平台控制 自研薄 Runtime + 选用底层组件

这个表只是方向,最终仍需要 POC。

六、选型时必须验证

控制与恢复

  • State 是否显式;
  • Checkpoint;
  • 幂等;
  • 暂停、恢复和取消;
  • 异步长工具;
  • 部分失败。

扩展和锁定

  • Model / Tool 是否可替换;
  • 是否依赖私有消息结构;
  • 业务逻辑能否脱离框架测试;
  • 升级兼容性;
  • 数据格式能否导出。

生产属性

  • 并发与资源;
  • 多租户;
  • 权限和审计;
  • Trace;
  • 部署方式;
  • 维护活跃度;
  • 语言与团队能力。

七、框架与自研的边界

推荐:

  • 自己定义业务 State、Tool Contract、错误分类和领域模型;
  • 框架提供模型适配、图执行、Checkpoint 或 Trace;
  • 用 Adapter 隔离框架;
  • 核心业务测试不依赖在线模型;
  • 先做最小 POC,再决定长期绑定。

不要为“避免依赖”重写所有通用能力,也不要把业务规则深埋进框架对象。

八、POC 任务

同一真实任务分别实现:

  • 正常路径;
  • 工具超时;
  • 中途审批;
  • 服务重启恢复;
  • Context 超限;
  • 多 Agent 分歧;
  • Trace 回放;
  • 框架升级。

比较代码复杂度、可解释性、故障恢复、运行成本和维护成本。

常见错误回答

LangGraph 适合 Workflow,CrewAI 适合 Multi-Agent,AutoGen 适合聊天。

过度标签化。它们的能力都在扩展,应按抽象层和生产要求判断。

生产环境框架都不可靠,核心 Loop 必须手写。

自研也会引入大量持久化和恢复问题。应判断框架是否可控、可测试和可替换,而不是一概拒绝。

面试口述版

我先区分 Framework、Runtime、Harness 和 Observability。LangChain 偏高层 Agent 抽象,LangGraph 偏显式状态和 Durable Runtime,LangSmith负责 Trace、Eval 和部署;AutoGen 更强调消息和多 Agent Runtime;CrewAI 用 Crews 与 Flows 表达角色协作和确定流程。选型前我会画业务状态机,列出恢复、HITL、多租户、权限和部署要求,再用真实异常路径 POC。业务 State、Tool Contract 和错误语义由自己定义,框架通过 Adapter 接入,避免既重复造轮子又被私有抽象锁死。

结合个人项目

统一 Agent 平台底层可使用 OpenSandbox 管环境,自研 Go Control Plane 管 Session、Workspace 和任务状态;上层允许 LangGraph、Claude Code 或其他 Runtime 通过 Adapter 接入,而不是强制全公司使用一个框架。