Skip to content
🔗 分享本题
查看我的学习进度 →

LangChain 线性流程与 LangGraph 有状态分支循环图的对比和选型

🧠 图解记忆: 线性无状态用 LangChain,有状态、分支、循环和恢复用 LangGraph。

💡 答案要点

区别对比:

特性LangChainLangGraph
执行模式线性链式图结构(有环)
适用场景简单任务流复杂多轮对话
状态管理简单强状态管理
循环支持不支持支持(StateGraph)

LangGraph 适用场景:

  1. 多轮对话(需要记住状态)
  2. 条件分支(根据结果走不同路径)
  3. 循环执行(直到满足条件)
  4. 多 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 修改,形成闭环。"

📚 参考:LangGraph 官方文档(与 LangChain 的定位差异)