AI小栈AI小栈
首页
  • 模块概览
  • Transformer 与注意力机制
  • 主流大模型对比
  • Prompt Engineering
  • Token 与成本核算
  • Function Calling
  • 模块概览
  • Agent 范式
  • 多 Agent 协作
  • 记忆系统
  • 规划与推理
  • 安全与可控性
  • 模块概览
  • LangChain / LangGraph
  • Claude Agent SDK
  • OpenAI Agents SDK
  • AutoGen / CrewAI
  • Dify / Coze
  • MCP 协议
  • 模块概览
  • RAG 工程化
  • 工具设计与封装
  • 流式输出与 UX
  • 可观测性
  • 部署与成本优化
  • 测试与评估
  • 模块概览
  • 智能编程助手
  • 知识库问答 Agent
  • 数据分析 Agent
  • 多模态 Agent
  • 运维 Agent
  • 从0到1构建
  • 模块概览
  • 论文解读
  • 开源项目追踪
  • MCP 生态
  • Agent 商业化
  • 职业路径
  • 模块概览
  • 技术面试实战
  • Agent 面试题解析
  • 项目经验包装
  • 流程与心态准备
首页
  • 模块概览
  • Transformer 与注意力机制
  • 主流大模型对比
  • Prompt Engineering
  • Token 与成本核算
  • Function Calling
  • 模块概览
  • Agent 范式
  • 多 Agent 协作
  • 记忆系统
  • 规划与推理
  • 安全与可控性
  • 模块概览
  • LangChain / LangGraph
  • Claude Agent SDK
  • OpenAI Agents SDK
  • AutoGen / CrewAI
  • Dify / Coze
  • MCP 协议
  • 模块概览
  • RAG 工程化
  • 工具设计与封装
  • 流式输出与 UX
  • 可观测性
  • 部署与成本优化
  • 测试与评估
  • 模块概览
  • 智能编程助手
  • 知识库问答 Agent
  • 数据分析 Agent
  • 多模态 Agent
  • 运维 Agent
  • 从0到1构建
  • 模块概览
  • 论文解读
  • 开源项目追踪
  • MCP 生态
  • Agent 商业化
  • 职业路径
  • 模块概览
  • 技术面试实战
  • Agent 面试题解析
  • 项目经验包装
  • 流程与心态准备
  • Agent 开发框架

    • 模块概览
    • LangChain 与 LangGraph
    • Claude Agent SDK 与 Anthropic API
    • OpenAI Agents SDK
    • AutoGen 与 CrewAI
    • Dify 与 Coze 低代码 Agent 平台
    • MCP 协议详解
    • 大模型 Skill 系统

LangChain 与 LangGraph

LangGraph 状态图示例

LangChain 是目前生态最广泛的开源 Agent 开发框架,从 2022 年底发布以来经历了多次架构演进。LangGraph 作为 LangChain 生态中的状态图编排引擎,解决了早期 LangChain Agent 在执行流程可控性上的核心痛点。理解两者的关系与分工,是掌握 LangChain 生态的关键。

LangChain 核心概念

LangChain 的设计围绕几个基础抽象展开:

  • ChatModel:与大模型的交互接口,支持 OpenAI、Anthropic、Google 等多家提供商,通过统一接口屏蔽模型差异。
  • Tool:Agent 可调用的外部能力单元,每个 Tool 有名称、描述和执行函数,模型根据描述决定何时调用哪个 Tool。
  • Agent:将 ChatModel 与 Tool 绑定在一起的核心执行单元,负责接收用户输入、决策调用哪些工具、处理工具返回结果、决定是否继续推理或输出最终回答。
  • Memory:对话历史与上下文管理机制,短期记忆保存当前会话,长期记忆支持跨会话的信息检索与积累。
  • Chain:将多个组件串联为可复用流水线的抽象,是 LangChain 最早的核心概念,在 Agent 模式下退居底层支撑角色。

LangChain 早期通过 AgentExecutor 驱动 Agent 循环:模型推理 → 选择工具 → 执行工具 → 返回结果 → 再次推理,直到模型判断无需继续调用工具。这种循环模式简单直观,但缺乏对执行路径的显式控制——一旦进入循环,开发者很难在特定节点插入自定义逻辑、实现条件分支或处理循环中的异常状态。

LangGraph 状态图驱动

LangGraph 正是为了解决上述痛点而生。它将 Agent 的执行流程建模为状态图(State Graph):

  • State:一个 TypedDict 定义的结构化状态对象,在图的执行过程中持续更新,所有节点共享同一份状态。
  • Node:图中的处理节点,每个节点是一个接收 State、返回 State 更新的函数。节点之间通过状态传递数据,而非直接调用。
  • Edge:定义节点之间的转移关系,包括固定边和条件边。条件边根据当前状态动态决定下一个节点,是实现分支逻辑的核心机制。
  • Checkpoint:状态快照机制,在每一步执行后保存当前 State,支持执行中断后的恢复、时间旅行调试以及人类反馈的插入。

一个典型的 LangGraph Agent 包含以下节点:agent_node(模型推理)、tool_node(工具执行),以及从 agent_node 到 tool_node 或直接到结束的条件边。开发者可以在此基础上自由插入自定义节点——例如在工具执行前增加权限校验节点,在模型推理后增加输出格式化节点,甚至实现多 Agent 之间的状态传递与协作。

Agent 构建流程

使用 LangGraph 构建 Agent 的典型步骤:

  1. 定义 State 结构:明确 Agent 需要跟踪哪些信息,通常包括消息列表、下一步决策、工具调用记录等。
  2. 创建节点函数:为每个处理步骤编写节点函数,函数签名统一为 State -> Partial[State]。
  3. 构建状态图:将节点添加到图中,用 add_edge 定义固定转移,用 add_conditional_edges 定义条件分支。
  4. 编译图:调用 graph.compile() 生成可执行的 CompiledGraph,可选配置 Checkpoint 孏式。
  5. 执行与交互:通过 graph.invoke() 或 graph.stream() 驱动执行,支持流式输出中间步骤。

适用场景

  • 需要精细流程控制的 Agent:当 Agent 的执行路径不是简单的线性循环,而是包含分支、回退、人工干预等复杂逻辑时,LangGraph 的状态图是目前最成熟的解决方案。
  • 多步骤复杂任务:研究分析、文档处理、代码生成等需要多轮推理与工具协作的任务。
  • 需要可观测性与调试的场景:Checkpoint 和时间旅行调试让复杂 Agent 的行为可追溯、可回放。
  • 生产环境要求:LangGraph 的中断恢复、状态持久化、并发控制等特性更适合生产部署。

相比之下,如果只需要简单的工具调用循环,LangChain 的 AgentExecutor 或官方 SDK 可能更轻量直接。LangGraph 的学习曲线较高,但付出的成本在复杂场景下会带来显著的架构优势。

本章小结

维度LangChainLangGraph
核心抽象Chain、Agent、Tool、MemoryState、Node、Edge、Checkpoint
流程控制循环执行(AgentExecutor)状态图编排(可分支、可中断)
适用场景简单工具调用、快速原型复杂多步任务、生产部署
学习曲线低较高

选型建议:简单 Agent 用 LangChain 的 AgentExecutor;需要精细流程控制、人工介入、多 Agent 协作时用 LangGraph。


📖 延伸阅读

  1. LangChain 官方文档 —— 核心概念与快速入门
  2. LangGraph 官方文档 —— 状态图编排详解
  3. LangChain Expression Language (LCEL) —— 链式表达式语法
  4. LangGraph Checkpoint 机制 —— 状态持久化与恢复
Prev
模块概览
Next
Claude Agent SDK 与 Anthropic API