开启左侧

LangGraph(流程化控制)

[复制链接]
创想小编 发表于 4 小时前 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
作者:CSDN博客
day37 了解 LangGraph(流程化控制)
LangGraph 核心知识点与概念

官方文档
xsun_ai_study
1. LangGraph 解决的核心痛点

单 Agent 进入多 Agent / 复杂工作流会遇到一些问题,比如:
    流程控制难:if/else、循环、回退、重试、并行、分支越来越多
    状态管理难:上下文要共享、要可追踪、要可持久化
    可观测性差:某一步为什么这么走?中间状态是什么?能不能回放?
LangGraph 给出的方案是:
    用 Graph(图) 显式描述流程(控制流)
    用 State(状态) 显式描述共享数据(数据流)
运行时以 “super-step” 的方式推进(节点之间消息传递),并支持持久化、回放等能力

核心构成:State / Node / Edge / Compile

1. State(状态)

    State 是一个 共享的“单一事实源”:所有节点读它、写它
    在 LangGraph 中你通常用 TypedDict/dataclass/Pydantic 来定义 State schema
    状态更新不是“直接改对象”,而是 节点返回一个 dict 作为“更新”,由框架合并进 State
Reducer(合并策略 / Reducers)
某些 key 可能需要“追加/聚合”,例如 messages 列表、日志列表。
LangGraph 允许为 state channel 定义 reducer,来决定更新怎么合并(类似 append、add 等)。官方 persistence 示例里也展示了 Annotated[list[str], add] 的 reducer 用法。
LangChain Docs
2. Node(节点)

节点本质上就是一个函数(可包含 LLM 调用,也可以只是普通 Python 逻辑)
典型签名形态:
  1. defnode_fn(state: State)->dict:...return{"some_key": some_value}
复制代码
3. Edge(边)

边决定“执行完这个节点后到哪里去”。
    普通边:固定跳转
    条件边(conditional edges):根据 state 决定下一步路由(这是 Agent 系统里非常关键的能力)
4. Compile(编译)

你必须 compile() 才能运行图。编译会做结构校验,并且也是你注入 checkpointer、breakpoints 等运行时能力的入口。
LangChain Docs

START / END 与执行模型(super-step)

    START:图的入口
    END:图的终点
LangGraph 受 Pregel 模型启发,以离散的 “super-step” 推进:同一步里可并行跑多个节点,直到所有节点 inactive 且无消息在途则结束。
LangChain Docs
Persistence(持久化)、Threads(线程)与 Checkpointer(检查点)

这是 LangGraph 非常“工程化”的优势点。
1. Checkpoints & Threads

    编译图时可以配置 checkpointer,它会在每个 super-step 保存一次 state checkpoint
    这些 checkpoints 会落到一个 thread(线程 id)上
    调用时需要在 config 里提供 thread_id(否则无法持久化/恢复)
2. 能力带来的收益

有了 checkpoints/threads,你就自然拥有:
    恢复 / 断点续跑
    回放 replay
    查看历史 state
    人类介入(Human-in-the-loop)
    更强容错
    这些在官方 persistence 页里是明确强调的。

Multi-Agent 在 LangGraph 里怎么落地?

LangChain 官方博客对 multi-agent 的表述为:
    每个 agent(或 worker)可以是一个节点
    agent 之间的连接关系就是边
    关键考虑:有哪些独立 agent?它们怎么连接?
常见的两种图结构是:
    流水线(pipeline):Coordinator → WorkerA → WorkerB → END
    路由(router):Coordinator 根据 state 条件分派给不同 worker(conditional edges)
对比langGraph vs java流程平台/有限状态机(FSM)

先给结论(一句话版)
LangGraph 在“流程控制层面”与 Java 生态里的流程平台 / 有限状态机(FSM)高度相似
但它不是传统 FSM,而是:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )