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

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

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 是目前最优雅的解决方案。


相关链接:

推荐文章

PHP 命令行模式后台执行指南
2025-05-14 10:05:31 +0800 CST
维护网站维护费一年多少钱?
2024-11-19 08:05:52 +0800 CST
16.6k+ 开源精准 IP 地址库
2024-11-17 23:14:40 +0800 CST
PostgreSQL日常运维命令总结分享
2024-11-18 06:58:22 +0800 CST
10个极其有用的前端库
2024-11-19 09:41:20 +0800 CST
Vue3 实现页面上下滑动方案
2025-06-28 17:07:57 +0800 CST
Go 中的单例模式
2024-11-17 21:23:29 +0800 CST
Vue 3 中的 Watch 实现及最佳实践
2024-11-18 22:18:40 +0800 CST
一个收银台的HTML
2025-01-17 16:15:32 +0800 CST
程序员茄子在线接单