欢迎光临
我们一直在努力

LangGraph 基础入门(小白必看)

LangGraph 基础入门:从 StateGraph 到状态管理,一篇搞懂核心运行逻辑

最近在学习 LangGraph,发现它和 LangChain 的关系很容易混在一起:LangChain 更像是上层 Agent 开发框架,而 LangGraph 更像是底层的“流程编排引擎”。如果想真正理解 Agent 是怎么一步一步运行、怎么分支、怎么保存状态、怎么循环调用工具的,LangGraph 是绕不开的。

这篇文章按由浅到深的顺序,整理 LangGraph 的基础知识:整体定位、图的基本组成、运行机制、Graph API、State 定义、Reducer 合并规则,以及 MessagesState 等常见状态类型。

一、LangGraph 是什么?

LangGraph 是一个用于构建有状态、多步骤、可控制流程的图编排框架。它可以把一个复杂任务拆成多个节点,每个节点负责一部分逻辑,再通过边把这些节点连接起来。

可以先这样理解:

LangGraph = State + Node + Edge

也就是:

  • State:图运行时共享的状态数据
  • Node:真正执行任务的节点,通常是一个 Python 函数
  • Edge:节点之间的连接关系,决定下一步去哪

一个最简单的图大概长这样:

START -> node_1 -> node_2 -> END

其中 START 和 END 是 LangGraph 内置的起点和终点。

二、LangChain 和 LangGraph 的区别

LangChain 更偏上层,适合快速构建 Agent 应用;LangGraph 更偏底层,适合精细控制 Agent 或复杂工作流。

对比点
LangChain
LangGraph
定位 Agent 高层开发框架 底层流程编排框架 / Agent Runtime
核心入口 create_agent StateGraph、@entrypoint
适合场景 结构比较直接的 Agent 多节点、多分支、循环、人工介入、持久化状态
流程控制 框架自动管理 Agent 循环 手动控制节点、边、条件分支
学习成本 相对低 相对高

简单说:如果只是快速做一个普通 Agent,可以先用 LangChain;如果你想自己控制“什么时候调用模型、什么时候调用工具、什么时候结束、状态怎么合并”,就需要 LangGraph。

三、LangGraph 的三个核心元素

1. State:状态

State 是整张图运行时共享的数据结构。

比如:

from typing import TypedDict, Annotated
from operator import add

class OverAllState(TypedDict):
logs: Annotated[list[str], add]
cur_id: str

这里定义了两个状态字段:

  • logs:保存运行日志
  • cur_id:保存当前执行到哪里

注意这里的 Annotated[list[str], add] 很重要,它表示多个节点返回 logs 时,不是覆盖,而是用 add 合并。

如果多个节点分别返回:

{

\”logs\”: [\”node_1 执行完成\”]}
{

\”logs\”: [\”node_2 执行完成\”]}

最终会合并成:

{

\”logs\”: [\”node_1 执行完成\”, \”node_2 执行完成\”]}

2. Node:节点

节点通常就是一个函数。它接收当前状态,返回对状态的部分更新。

def node_1(state: OverAllState) > OverAllState:
pre_id = state[\”cur_id\”]
return {


\”logs\”: [\”node_1 执行完成\”],
\”cur_id\”: pre_id + \”, node_1\”
}

这里要注意:节点返回的不是完整状态,而是“我想更新哪些字段”。

比如上面返回:

{


\”logs\”: [\”node_1 执行完成\”],
\”c

赞(0)
未经允许不得转载:171主机测评 » LangGraph 基础入门(小白必看)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址