🧠 图解记忆: 线性无状态用 LangChain,有状态、分支、循环和恢复用 LangGraph。
💡 答案要点
区别对比:
| 特性 | LangChain | LangGraph |
|---|---|---|
| 执行模式 | 线性链式 | 图结构(有环) |
| 适用场景 | 简单任务流 | 复杂多轮对话 |
| 状态管理 | 简单 | 强状态管理 |
| 循环支持 | 不支持 | 支持(StateGraph) |
LangGraph 适用场景:
- 多轮对话(需要记住状态)
- 条件分支(根据结果走不同路径)
- 循环执行(直到满足条件)
- 多 Agent 协作
LangGraph 示例:
python
from langgraph.graph import StateGraph, END
# 1. 定义状态
class State(TypedDict):
messages: list
current_step: str
# 2. 创建图
graph = StateGraph(State)
# 3. 添加节点
graph.add_node("research", research_agent)
graph.add_node("write", writer_agent)
graph.add_node("review", reviewer_agent)
# 4. 添加边
graph.add_edge("research", "write")
graph.add_edge("write", "review")
graph.add_conditional_edges(
"review",
lambda s: "write" if s["needs_revision"] else END
)
# 5. 编译
app = graph.compile()面试话术:
示例表达(仅在能用本人经历或可复现实验佐证时使用): "LangChain 适合线性任务流,LangGraph 适合复杂的多轮对话和多 Agent 协作。我在项目中用 LangGraph 实现了内容创作系统:Researcher 搜索→Writer 写作→Reviewer 审核,如果审核不通过就返回 Writer 修改,形成闭环。"
