外观
LangChain 与 LangGraph 应该怎么选?
3 分钟速学卡
30 秒口述: 我不会把 LangChain 和 LangGraph 当成简单二选一:LangChain 更适合复用模型、Prompt、Retriever、Tool 等组件并快速组合调用,LangGraph 更适合显式状态、循环、条件路由、持久化恢复和人工介入的长流程。简单线性链或短 Agent 先用最小组合;当需要断点恢复、并行分支、可审计状态转移和 durable execution 时再引入图运行时。选型应由控制流复杂度、恢复语义、团队运维能力和基准测试决定,且两者可以组合。
- 本质: LangChain 解决组件组合,LangGraph 解决复杂有状态控制流,选型看恢复与状态而不是热度。
- 核心机制: 简单任务保持最小组合;复杂循环和恢复再引入状态图。
- 关键判断: 两者可以组合而非互斥;框架不替代幂等、权限和评测。
- 项目落地: 示例演进:FAQ 问答先用 Retriever+Model 线性链;加入多轮工具、审批和断点恢复后迁移为状态图。
- 边界与坑: “LangGraph 是 LangChain 的替代品。” 两者常分层组合;“Agent 项目都要 LangGraph。” 简单控制流会被过度复杂化。
目录
面试官为什么问
考察框架边界、演进判断和避免过度设计的能力。框架能力与版本会变化,发布前应核对官方文档和真实 API。
小白先看懂
LangChain 像一套标准乐高零件,方便拼出模型、检索和工具模块;LangGraph 像带状态记录的铁路调度图,能处理循环、岔路、暂停与恢复。铁路图也可以使用乐高零件作为每个站点。
类比的边界是框架并不自动保证业务幂等、权限或正确性。
主题教学图片
图:教学图片|LangChain 与 LangGraph 应该怎么选?
替代文本: 围绕“LangChain 与 LangGraph 应该怎么选?”组织的中文教学图,通过分区、箭头和标签解释核心机制。

读图结论: 简单链先组合组件;复杂状态与恢复再用图。
这张图片用于建立主题机制的直觉。精确公式、参数、失败分支和事实边界仍以正文与 Mermaid 为准。
图片生成记录: model=gpt-image-2,generated=2026-07-15,prompt_version=v1,reviewed=2026-07-16,review_basis=user-confirmed;查看生成 Prompt。
图:架构|组件组合与状态图运行时的分工
替代文本: LangChain 组件层提供模型、检索器和工具,简单链直接组合;复杂任务由 LangGraph 状态、节点、边与 Checkpoint 编排这些组件。
图表加载中…
读图结论: LangChain 偏组件组合,LangGraph 偏有状态控制流,复杂图可以复用前者组件。
图中分工是工程理解,不是版本冻结的产品清单;动态能力应按实际依赖版本验证。
核心原理
关键判断包括:控制流是否线性、状态是否需要持久化、失败后从哪里恢复、是否有人审、节点是否并行、是否需要时间旅行式调试。可用少量代码实现的固定流程不必强上图。
项目和生产视角
示例演进: FAQ 问答先用 Retriever+Model 线性链;加入多轮工具、审批和断点恢复后迁移为状态图。迁移验收比较故障恢复、重复副作用、Trace 完整性、延迟和维护成本;没有基准数据时不宣称框架性能优势。
常见错误回答
- “LangGraph 是 LangChain 的替代品。” 两者常分层组合。
- “Agent 项目都要 LangGraph。” 简单控制流会被过度复杂化。
- “有 Checkpoint 就自动可靠。” 节点副作用仍需幂等。
递进追问
- 什么信号说明线性链需要迁移为图?
- Checkpoint 能解决什么、不能解决什么?
- 如何让图节点保持可测试?
- 不使用框架时最小实现是什么?
关联阅读
总结
一句话记忆: LangChain 解决组件组合,LangGraph 解决复杂有状态控制流,选型看恢复与状态而不是热度。
- 简单任务保持最小组合;
- 复杂循环和恢复再引入状态图;
- 两者可以组合而非互斥;
- 框架不替代幂等、权限和评测。