Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

LangGraph — 通过图结构重新定义 LLM 应用

LangGraph 简介

LangGraph 是 LangChain 生态系统中的一个重要扩展库,专门用于构建、管理、部署长期运行、有状态、多智能体的复杂工作流。它通过图结构来管理任务流,支持循环、条件分支和动态决策,适用于需要持久化上下文或多代理协作的场景。

  • 持久执行:有容灾恢复能力,能长时间运行,当出现问题时,能从中断处自动恢复。
  • 人机协同:执行过程的任何时候,通过检查和修改智能体状态,可以无缝地引入人类监督。
  • 全面记忆:智能体既有用于持续推理的短期工作记忆,也有跨会话的长期持久记忆。

核心架构与概念

1. 状态机架构

框架适用场景
LangChain线性任务(如智能问答、文档处理)
LangGraph复杂任务(如代理协作、动态流程、人机协同)

2. 核心组件

图(Graphs)

定义任务执行的逻辑流程,由节点和边组成:

  • 包含哪些工作步骤(节点)
  • 这些步骤之间如何连接(边)
  • 整个流程的走向

状态(State)

贯穿整个图执行过程的共享数据容器,由用户自定义结构,记录着当前程序运行到什么状态:

  • 存储当前的信息和数据
  • 在所有节点之间共享
  • 可以被任何节点读取和更新

节点(Nodes)

图的基础执行单元,本质是函数,接收 State 作为输入并返回更新后的 State:

  • 每个节点负责完成一个具体的任务
  • 接收当前状态作为输入
  • 处理完后返回更新的结果
  • 本质上就是 Python 函数

边(Edges)

控制节点间的流转逻辑,分为普通边和条件边:

  • 普通边:固定路线,A 完成后总是去 B
  • 条件边:根据情况选择路线,类似“如果…就去 A,否则去 B“

主要特性

循环和分支能力

  • 支持条件语句和循环结构
  • 可以根据状态动态决定执行路径
  • 轻松实现复杂的对话流程控制

状态持久化

  • 自动保存和管理状态
  • 支持暂停和恢复执行
  • 便于处理长时间运行的对话

人机协同支持

  • 可以在执行过程中插入人工审核
  • 支持编辑和修改状态
  • 灵活的交互控制机制

多智能体协作

通过“状态驱动的图结构“实现:

  • 明确的职责边界
  • 可靠的通信协议
  • 可观测的运行平台

应用场景

快时尚电商智能客服

  • 意图识别代理判断用户问题类型
  • 根据意图动态路由到专业代理
  • 调用 MCP 工具处理复杂业务逻辑

多轮对话状态管理

在多轮对话系统中,用户需求往往跨越多个阶段,LangGraph 通过状态驱动的图结构可以:

  • 将每个对话阶段拆解为独立节点
  • 显式管理意图、订单详情、补偿等级等状态信息
  • 根据实时上下文自动路由请求

智能体系统

  • 机器人控制系统
  • 自动驾驶汽车
  • 视频游戏 AI
  • 聊天机器人

技术优势

相比传统 LangChain

  • 显式的状态管理:每个节点只关心自己处理的那部分状态,降低耦合度
  • 动态、灵活的代理路由:通过条件边和循环结构实现高度个性化的执行路径
  • 易于扩展和维护:新增节点或调整路由只需局部修改
  • 支持复杂的状态转换逻辑:无论是多轮对话、条件推理还是长流程任务

工程化支持

  • 可视化:提供内置的图可视化方法,直观展示工作流逻辑
  • 调试友好:状态在节点间流转并持续更新,便于追踪和调试
  • 持久执行:支持检查点机制,可在故障后恢复

更多详细内容见 LangGraph Docs