AI

LangGraph:使用 LangChain 构建有状态的多智能体工作流

LangGraph 是一个用于以图形方式构建有状态、多参与者智能体工作流的框架,扩展 LangChain 以实现复杂的智能体编排。

Keeping this site alive takes effort — your support means everything.
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分! 無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!
LangGraph:使用 LangChain 构建有状态的多智能体工作流

第一代 LLM 智能体遵循一个简单、可预测的循环——即思考、行动、观察的 ReAct 模式。但实际应用需要更复杂的编排:多个智能体协同工作、条件分支、人工监督、跨复杂工作流的持久状态,以及循环回溯以进行优化的能力。LangGraph 提供了使这些模式成为可能的基于图的架构。

LangGraph 将 LangChain 的智能体能力从线性链扩展到有向图,其中每个节点是一个计算步骤,边定义控制流。这种看似简单的泛化——从链到图——实现了以前不切实际的庞大范围的智能体架构。

该框架的诞生源于认识到复杂的智能体工作流无法表示为简单的序列。一个反思自身发现的研究助手、一个运行测试并在失败时迭代的编码智能体、一个智能体们挑战彼此结论的多智能体辩论系统——这些都需要基于图的执行模型,包含循环、分支和持久状态。


LangGraph 的图架构是如何工作的?

LangGraph 将智能体工作流建模为有状态图,其中节点是计算操作,边定义流程。

graph TD
    A[开始] --> B[智能体节点\nLLM 推理]
    B --> C{决策边}
    C -->|需要工具| D[工具执行节点]
    C -->|完成| E[生成响应]
    D --> B
    E --> F[结束]
    B --> G[人在回路\n中断点]
    G -->|批准| D
    G -->|修改| B

图结构支持循环(智能体回溯以收集更多信息)、分支(条件执行路径)和并行执行(多个节点同时运行)。


LangGraph 支持哪些工作流模式?

LangGraph 的灵活性使其能够支持超越基本 ReAct 循环的广泛智能体编排模式。

模式描述用例
简单 ReAct标准智能体循环(思考-行动-观察)基本问答、简单任务
监督者一个智能体委派给专业智能体研究助手、客户支持
智能体即工具智能体可以调用其他智能体作为工具嵌套问题分解
分层团队管理者智能体协调子智能体软件开发团队模拟
Map-Reduce多个智能体并行运行,结果合并数据分析、文档审阅
反思智能体生成输出,然后自我批评内容生成、代码审查
人在回路工作流暂停等待人工批准敏感操作、内容审核

每种模式都可以通过定义适当的图结构、节点和边路由逻辑来实现。


LangGraph 中的状态管理是如何工作的?

LangGraph 的状态管理是一等公民特性,在整个工作流中持久存在。

状态特性描述API
类型化状态使用 Pydantic 或 TypedDict 定义状态模式State = TypedDict(...)
归约器状态更新的自定义逻辑(追加、覆盖)Annotated[list, add_messages]
检查点自动状态持久化以实现容错Checkpointer
线程级隔离每个对话线程独立状态thread_id 参数
状态可视化调试每个步骤的状态转换内置可视化

检查点系统对于生产部署尤为重要,使工作流能够在重启后继续运行,并提供智能体决策的完整可审计性。


如何使用 LangGraph 构建多智能体系统?

构建多智能体系统涉及将智能体定义为图节点并编排它们的交互。

组件LangGraph 元素示例
智能体定义节点函数研究智能体、写作智能体、审查智能体
智能体间通信共享状态研究结果、草稿、反馈
路由逻辑条件边“研究完成后,路由到写作”
资源共享全局状态共享上下文、知识库访问
终止结束节点所有任务完成、达到最大循环数

结果是一个智能体自主协作的系统,通过共享图状态在彼此之间传递工作。


常见问题

什么是 LangGraph? LangGraph 是由 LangChain 开发的框架,用于将有状态、多参与者的智能体工作流构建为有向图。它通过将智能体交互建模为图中的节点和边来扩展 LangChain 的智能体能力,其中每个节点代表一个计算步骤(LLM 调用、工具执行、人工输入),边定义控制流。这支持循环、分支和并行执行等复杂、非线性的智能体行为。

LangGraph 与标准 LangChain 智能体有何不同? 标准 LangChain 智能体遵循线性的 ReAct 循环:思考 -> 行动 -> 观察 -> 重复。LangGraph 将其泛化为任意图结构,允许循环(智能体回到更早的步骤)、分支(基于智能体决策的条件路径)、并行执行(多个智能体同时运行)以及整个工作流执行过程中的持久状态管理。

LangGraph 的状态管理模型是什么? LangGraph 使用一个集中的状态对象,该对象在图中的所有节点之间持久存在。每个节点读取和写入此共享状态,该状态自动跟踪整个工作流的上下文。状态可以包括对话历史、中间结果、智能体决策、工具输出和任何自定义数据结构。这使得智能体能够基于完整的工作流历史做出决策。

可以用 LangGraph 构建哪些类型的工作流? LangGraph 支持广泛的工作流模式,包括单智能体 ReAct(用于简单问答)、多智能体监督者(一个智能体协调专家)、智能体即工具(智能体调用其他智能体)、分层团队(管理者智能体带有子智能体)、Map-Reduce(并行智能体执行)、反思(智能体批评和修正自己的输出)以及自定义编排模式。

LangGraph 是否支持人在回路工作流? 是的,LangGraph 原生支持人在回路模式。任何节点都可以配置为暂停执行并等待人工输入。该框架提供了中断执行、等待批准、在执行前修改智能体决策以及恢复工作流的 API。这对于自主智能体操作需要人工监督的生产部署至关重要。


延伸阅读

TAG
CATEGORIES