核心区别
- LangChain:组件库与线性链。提供模型调用、RAG、工具等基础模块,适合构建线性、确定性的流程(如简单的问答机器人)。
- LangGraph:状态机与循环图。基于 LangChain 构建,专为有状态、多步骤、含循环/条件分支的复杂 Agent 设计。它解决了 LangChain 难以处理“循环推理”和“持久化记忆”的痛点。
举例说明
| 场景 | LangChain | LangGraph |
|---|---|---|
| 简单 RAG | 检索 → 生成回答(一次性线性流程) | ❌ 杀鸡用牛刀 |
| 代码生成 Agent | ❌ 难以实现“生成→测试→报错→修改→再测试”的自动循环 | ✅ 定义节点(生成/测试/修复)+ 条件边(通过/失败),自动循环直到成功 |
| 多 Agent 协作 | 需手动编排消息传递,状态管理困难 | ✅ 原生支持 Supervisor/Swarm 模式,共享全局 State |
实际工作中的使用策略
- 选型原则:流程是 DAG(有向无环图)选 LangChain;只要涉及 “循环”、“人工介入(Human-in-the-loop)”、“长期记忆”,直接上 LangGraph。
- 开发范式:将业务拆解为
State(数据结构)、Nodes(函数逻辑)、Edges(流转规则)。不要写成面条式代码,而是画成图。 - 生产落地:利用 LangGraph 的 Checkpointing 机制保存中间状态,支持任务暂停/恢复和断点调试;配合 LangSmith 进行 Trace 可视化监控。