目录

一、LangChain 与 LangGraph 的区别

LangChain:大模型应用开发工具库

LangGraph:Agent 工作流编排框架

二、LangGraph 的核心思想:用图管理 Agent

三、LangGraph 三个核心组件

1. State:整个 Agent 的共享状态

State 也是 Agent 的记忆

2. Node:执行具体任务的节点

3. Edge:控制流程流转

普通边(Normal Edge)

条件边(Conditional Edge)

四、如何理解 LangGraph 的本质?

五、一个真实 Agent 示例

六、总结:LangChain 与 LangGraph 的定位


随着大语言模型(LLM)的快速发展,AI 应用已经从简单的问答机器人,逐渐演变为能够自主规划、调用工具、执行任务的智能 Agent。

但是,当 Agent 的能力越来越复杂时,一个新的问题出现了:

如何管理一个复杂 Agent 的执行流程?

例如,一个智能客服 Agent,可能需要:

  • 判断用户意图;

  • 查询知识库;

  • 调用外部工具;

  • 分配给不同专业 Agent;

  • 判断回答质量;

  • 失败后自动重试;

  • 保留多轮对话上下文。

如果这些逻辑全部依靠传统代码实现,很快就会陷入大量 if-else 和状态管理中。

而 LangGraph,就是为了解决这个问题而诞生的。


一、LangChain 与 LangGraph 的区别

很多初学者容易混淆 LangChain 和 LangGraph。

简单来说:

LangChain 负责提供构建大模型应用的基础能力,而 LangGraph 负责管理复杂 Agent 的执行流程。

LangChain:大模型应用开发工具库

LangChain 更像一个大模型应用开发框架,它提供了大量基础组件,例如:

  • LLM 模型调用;

  • Prompt 模板管理;

  • Tool 工具调用;

  • Memory 记忆管理;

  • RAG 检索增强;

  • Agent 基础能力。

它解决的问题是:

如何方便地调用大模型,并组合各种 AI 能力。

例如:

用户输入

↓

Prompt模板

↓

调用LLM

↓

返回结果

这种简单流程,LangChain 完全可以满足。


LangGraph:Agent 工作流编排框架

但是,当 Agent 变复杂以后,简单 Chain 模式就会出现问题。

例如:

一个智能客服:

用户输入

↓

判断问题类型

↓

查询知识库

↓

生成答案

↓

检查答案质量

↓

返回结果

看起来很简单。

但是实际业务中可能出现:

  • 用户需要多轮交流才能确定需求;

  • 技术问题交给技术 Agent;

  • 售后问题交给售后 Agent;

  • 回答质量低需要重新生成;

  • 检索失败需要重新搜索;

  • 不同条件进入不同执行路径。

这时候流程可能变成:

                技术问题
                   ↓
用户输入 → 意图判断
                   ↓
                售后问题


回答质量不足?

       ↓

重新检索

       ↓

重新生成

传统代码通常会变成:

if 用户问题属于技术问题:
    调用技术Agent

elif 用户问题属于售后问题:
    调出售后Agent


if Agent回答质量低:
    重新检索知识库
    再次生成答案


if 用户继续提问:
    保存上下文

本质上,我们其实是在:

手动编写一个状态机。

随着业务扩大,这种方式会越来越难维护。


二、LangGraph 的核心思想:用图管理 Agent

LangGraph 的核心思想非常简单:

把复杂 Agent 流程抽象成一个 Graph(图)。

一个 Graph 由三个核心部分组成:

  • State(状态)

  • Node(节点)

  • Edge(边)

整体结构:

          Node

           ↓

Edge → Node → Edge

           ↑

        State

三、LangGraph 三个核心组件

1. State:整个 Agent 的共享状态

State 是 LangGraph 最核心的数据结构。

可以理解为:

整个 Agent 工作流运行过程中的共享上下文。

例如:

{
    "user_input": "如何退款?",
    "user_type": "会员用户",
    "intent": "售后问题",
    "history_messages": [],
    "search_result": "",
    "answer": "",
    "confidence": 0.8
}

整个流程中的所有 Node,都可以读取和修改 State。


例如:

用户输入:

我的订单为什么还没有发货?

进入意图识别节点:

读取:

state["user_input"]

分析得到:

intent = "物流咨询"

然后更新 State:

{
    "intent":"物流咨询"
}

之后物流 Agent 就可以根据这个状态继续执行。


传统代码:

functionA(data):

    functionB(data)

每个函数之间手动传递参数。

而 LangGraph:

Node A

↓

修改 State

↓

Node B读取 State

所有节点围绕同一个状态协作。


State 也是 Agent 的记忆

除了保存当前流程信息,State 还承担了上下文记忆功能。

例如:

第一轮:

用户:

我的订单什么时候到?

State:

{
    "order_id":123
}

第二轮:

用户:

如果明天不到怎么办?

Agent 可以通过 State 知道:

  • 当前讨论的是订单 123;

  • 当前主题是物流问题。

因此能够理解上下文。


2. Node:执行具体任务的节点

Node 可以理解为:

一个完成特定功能的函数。

例如:

  • 意图识别 Node;

  • RAG 检索 Node;

  • 工具调用 Node;

  • 数据库查询 Node;

  • Agent 推理 Node;

  • 回复生成 Node。

例如:

def search_node(state):

    result = search_database(
        state["question"]
    )

    state["search_result"] = result

    return state

这个 Node 做三件事情:

  1. 从 State 获取用户问题;

  2. 调用数据库查询;

  3. 将结果写回 State。


多个 Node 组合:

用户输入

↓

意图识别 Node

↓

知识库检索 Node

↓

答案生成 Node

↓

质量检查 Node

每个节点职责单一。

这样:

  • 容易维护;

  • 容易复用;

  • 容易扩展。


3. Edge:控制流程流转

Edge 表示:

当前节点执行完成后,下一步应该去哪里。

LangGraph 中主要有两种 Edge。


普通边(Normal Edge)

表示固定流程。

例如:

用户输入

↓

问题分类

↓

知识库搜索

↓

生成答案

执行路径固定。


条件边(Conditional Edge)

表示根据状态动态选择下一步。

例如:

              技术问题
                  ↓

用户分类 Node

                  ↓

              售后问题

代码:

def router(state):

    if state["intent"]=="技术问题":

        return "tech_agent"


    elif state["intent"]=="售后问题":

        return "service_agent"

LangGraph 会根据返回结果选择对应 Node。


这也是 LangGraph 相比普通 Chain 最大的区别:

LangChain 更像:

A → B → C → D

固定流水线。

而 LangGraph 可以表达:

          B
        ↗
A → 判断
        ↘
          C
           ↓
           D
           ↑
           |
         重试

它可以描述:

  • 分支;

  • 循环;

  • 回退;

  • 多 Agent 协作。


四、如何理解 LangGraph 的本质?

我认为 LangGraph 可以理解为:

一个专门用于管理 LLM Agent 执行流程的状态机框架。

传统程序:

代码控制流程

+

变量保存状态

LangGraph:

Graph控制流程

+

State保存状态

+

LLM负责智能决策

它并不是替代代码。

而是:

把复杂 Agent 中最难维护的流程控制部分抽象出来。


五、一个真实 Agent 示例

例如智能客服 Agent:

                用户输入

                    ↓

              意图识别 Node

                    ↓

        ┌───────────┴───────────┐

        ↓                       ↓

   技术 Agent              售后 Agent


        ↓                       ↓

        └───────────┬───────────┘

                    ↓

              质量检查 Node

                    ↓

              置信度判断

             ↓          ↓

            是          否

            ↓           ↓

       重新检索      返回答案

这个系统包含:

  • 状态共享;

  • 条件分支;

  • 循环执行;

  • 多 Agent 协作;

  • 错误恢复。

这正是 LangGraph 最擅长解决的问题。


六、总结:LangChain 与 LangGraph 的定位

一句话总结:

LangChain 解决的是“大模型能力如何调用”的问题。

例如:

  • 怎么调用 GPT;

  • 怎么设计 Prompt;

  • 怎么连接工具;

  • 怎么做 RAG。

而:

LangGraph 解决的是“多个大模型能力如何组织协作,并控制复杂执行流程”的问题。

如果你的应用只是:

用户问题

↓

LLM回答

那么 LangChain 足够。

但如果你的应用变成:

用户

↓

判断任务

↓

多个Agent协作

↓

调用工具

↓

检查结果

↓

失败重试

↓

持续对话

那么 LangGraph 才是真正适合的方案。

未来的 AI 应用,大概率不会只是简单调用一个大模型,而会变成多个 Agent、工具和流程共同协作的复杂系统。

而 LangGraph,就是帮助开发者构建这些复杂 Agent 系统的重要基础设施。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐