编程 LangGraph:告别if-else,用图结构编排复杂AI工作流,循环和人工干预天然支持

2026-04-16 19:09:33 +0800 CST views 9

LangGraph:告别 if-else,用图结构编排复杂 AI 工作流

LangChain 大家都用过,但当你想做一个「多轮对话 + 工具调用 + 人工审核 + 循环修正」的复杂 Agent 时,LangChain 的链式调用就开始变得难以维护——回调函数嵌套、状态管理混乱、执行路径不透明。

LangGraph 正是为了解决这个问题而生:它用图(Graph) 的方式描述 AI Agent 的工作流,每个节点是一个处理步骤,每条边代表状态流转,循环和条件分支天然支持。

GitHub: https://github.com/langchain-ai/langgraph
Stars: 25K+(LangChain 生态核心项目)


一、LangGraph 的核心思想

LangGraph 的核心理念:把 Agent 工作流建模为图

传统 LangChain 的问题:

  • 链式调用,线性执行,无法优雅地处理循环
  • 状态分散在各处,难以追踪
  • 工具调用失败后的重试逻辑复杂

LangGraph 的解法:

StateGraph(状态图)
├── 节点(Node):LLM 调用 / 工具执行 / 人工操作 / 条件判断
├── 边(Edge):状态流转规则
│   ├── 普通边:无条件流转
│   └── 条件边:根据状态内容决定下一步
└── 循环(Cycle):天然支持,无需特殊处理

二、核心概念

State(状态)

每个工作流维护一个共享状态(通常是 dict),每个节点接收当前状态、执行操作、返回更新的状态。所有状态变更都有记录,支持时间旅行(time travel)调试。

Node(节点)

节点是工作流中的处理单元,可以是:

  • tool_call:调用外部工具
  • llm_call:让大模型做决策
  • human_review:暂停等待人工输入
  • condition:条件判断节点

Edge(边)

边定义了状态的流转方向:

  • add_edge(from, to):无条件从节点 A 流转到节点 B
  • add_conditional_edges(from, routing_fn):根据状态内容动态路由

Checkpoint(检查点)

LangGraph 支持状态快照和恢复。复杂工作流中途出错?从头重跑太慢。Checkpoint 让工作流从任意检查点恢复,大幅提升调试效率。


三、与传统工作流引擎的区别

维度LangGraphDAG 工作流(如 Airflow)
循环支持✅ 天然支持❌ 有向无环图,不支持循环
LLM 原生✅ 专为 LLM 设计❌ 需要适配器
条件分支✅ 动态路由✅ 支持但不够灵活
状态持久化✅ Checkpoint✅ Airflow 本身有
适用场景AI Agent 工作流数据处理流水线

LangGraph 的核心差异化在于:它是专为 AI Agent 设计的,不是通用工作流引擎


四、快速上手

from langgraph.graph import StateGraph, END
from typing import TypedDict

class AgentState(TypedDict):
    messages: list
    next_action: str

def should_continue(state):
    return "tool_call" if len(state["messages"]) < 5 else END

workflow = StateGraph(AgentState)
workflow.add_node("llm", llm_node)
workflow.add_node("tools", tool_node)
workflow.set_entry_point("llm")
workflow.add_conditional_edges("llm", should_continue)
workflow.add_edge("tools", "llm")

app = workflow.compile()
result = app.invoke({"messages": ["hello"]})

五、适用场景

  • 多步骤研究型 Agent(搜索 → 阅读 → 总结 → 再搜索)
  • 需要人工审核的 AI 工作流(AI 处理 → 人工确认 → 执行)
  • 自主决策循环(LLM 决定下一步 → 执行 → 结果反馈 → 再次决策)
  • 复杂 RAG 流水线(查询改写 → 检索 → 重排序 → 生成)

六、总结

LangGraph 代表了 AI Agent 工作流编排的一个新方向——从链式调用到图结构。它不是要取代 LangChain,而是在 LangChain 之上提供了更强大的流程控制能力。当你的 Agent 需要处理循环、分支、人机协作时,LangGraph 是目前最优雅的解决方案。


相关链接:

推荐文章

Vue中的异步更新是如何实现的?
2024-11-18 19:24:29 +0800 CST
Web 端 Office 文件预览工具库
2024-11-18 22:19:16 +0800 CST
MySQL设置和开启慢查询
2024-11-19 03:09:43 +0800 CST
纯CSS绘制iPhoneX的外观
2024-11-19 06:39:43 +0800 CST
Vue3中如何实现国际化(i18n)?
2024-11-19 06:35:21 +0800 CST
Nginx 防盗链配置
2024-11-19 07:52:58 +0800 CST
CSS 媒体查询
2024-11-18 13:42:46 +0800 CST
curl错误代码表
2024-11-17 09:34:46 +0800 CST
HTML + CSS 实现微信钱包界面
2024-11-18 14:59:25 +0800 CST
在 Rust 生产项目中存储数据
2024-11-19 02:35:11 +0800 CST
WebSQL数据库:HTML5的非标准伴侣
2024-11-18 22:44:20 +0800 CST
程序员茄子在线接单