LangGraph Edge(边)完整讲解

LangGraph Edge(边)完整讲解

1. 基础定义

在 LangGraph 中:

  • Node(节点):独立计算单元,负责业务逻辑(检索、LLM 生成、工具调用等)
  • Edge(边) :节点之间的连接关系,用来定义图的执行流向,规定执行完 A 节点后,下一步走哪个节点

简单类比: Node = 车间工位,Edge = 工位之间的传送轨道,轨道决定数据流转顺序。

2. 两大类 Edge

① 普通固定边(Normal Edge)

固定单向流转,执行完当前节点固定进入下一个指定节点,无判断分支。 语法示例:

python

运行

复制代码
# 检索节点执行完,固定走组装上下文节点
graph.add_edge("retrieve_node", "augment_node")

流程:retrieve_node → augment_node,路径唯一、不可变更。

② 条件边(Conditional Edge)

执行完节点后,根据 State 状态做判断,动态选择下一跳节点,用来实现分支、循环、路由。

  1. 需要单独写一个路由函数(返回节点名字符串);
  2. 使用 add_conditional_edges 绑定。

示例:工具调用分支逻辑

python

运行

复制代码
def route_after_llm(state):
    # 判断是否需要调用工具
    if state["need_tool_call"]:
        return "tool_node"
    else:
        return "generate_answer_node"

# 绑定条件路由
graph.add_conditional_edges(
    source="llm_judge_node",
    path=route_after_llm,
    path_map={"tool_node": "tool_node", "generate_answer_node": "generate_answer_node"}
)

执行完 llm_judge_node 后,根据状态动态分流两条路径。

3. Edge 工作机制

  1. 节点执行完毕,输出状态更新,写入全局 State;
  2. 框架查找当前节点绑定的所有边;
    • 普通边:直接跳转目标节点;
    • 条件边:执行路由函数读取 State,匹配目标节点;
  3. 切换到下一个节点,重复「读 State→计算→更新 State」流程。

4. Edge 实现复杂流程能力

依靠边的组合,可以实现 LCEL 普通链条做不到的复杂逻辑:

  1. 分支:条件边做多路选择(是否调用工具、是否需要二次检索)
  2. 循环:条件边指回上游节点(Agent 多轮工具调用循环)
  3. 汇聚:多条不同节点的边指向同一个下游节点
  4. 子图:子图内部自有节点与边,子图整体又作为一个大节点,通过外层边接入主图

5. 和线性 Chain 的核心区别

  • LCEL Chain:硬编码串行顺序,流转固定,没有 "边" 的抽象;
  • LangGraph:节点与流向完全解耦,所有流转规则统一由 Edge 管理,可灵活修改、新增分支 / 循环,不用改动节点内部计算逻辑。

6. 完整极简示例(节点 + 边组合)

python

运行

复制代码
# 1. 定义节点函数省略...
# 2. 添加节点
graph.add_node("retrieve", retrieve_node)
graph.add_node("augment", augment_node)
graph.add_node("generate", generate_node)

# 3. 通过Edge连接节点,定义流程
graph.add_edge("retrieve", "augment")  # 检索→拼接上下文
graph.add_edge("augment", "generate") # 拼接→生成答案

# 设置入口节点
graph.set_entry_point("retrieve")

整条流水线的顺序完全由两条 Edge 定义。

相关推荐
范中勤13 小时前
LangGraph Checkpointer 封装(下):with 的双层上下文与 MemorySaver 为什么不用 with
python·大模型·llm·agent·langgraph
for_ever_love__2 天前
LangGraph State 设计:多节点之间怎么安全地共享数据
redis·mysql·状态模式·checkpoint·state·状态图·langgraph
for_ever_love__2 天前
LangGraph Checkpointer:持久化、断点续跑与多轮记忆
服务器·数据库·学习·持久化·langgraph·checkpointer·断点续跑
for_ever_love__2 天前
LangChain 多工具协作:一个 Agent 不够用时怎么办
人工智能·langchain·langgraph·协作·多agent·多工具·工具编排
寻道码路2 天前
AI Agent 工程化开发实战(一):Agent 开发的四个层次——积木、运行时、薄壳、套件
人工智能·langchain·大模型·ai agent·langgraph·ai工程化·deep agents
旖旎夜光2 天前
【LangGraph实战】LangGraph 学习笔记(五):信息裁剪、人机交互与时间旅行
笔记·python·学习·ai·人机交互·langgraph
范中勤2 天前
LangChain / LangGraph Memory 记忆体系技术文档(作用域判定 · 官方现版本实现 · 工程坑点)
langchain·大模型·agent·langgraph·记忆体系
坊钰3 天前
【LangGraph框架入门级】4. 支持联网搜索的智能代理系统
python·ai编程·langgraph
坊钰5 天前
【LangGraph框架入门级】2. 图核心概念:State、Node、Edge 与 Reducers
python·ai编程·langgraph