- Published on
AI探秘-5分钟了解LangGraph
- Authors

- Name
- noodles
- 每个人的花期不同,不必在乎别人比你提前拥有
导航

LangGraph是一个偏底层的编排框架和运行时环境,专为构建、管理和部署Agent而设计,本文将带你从基础概念开始,逐步深入LangGraph的各个核心功能。
什么是LangGraph
LangGraph 利用 StateGraph 将代理流程建模为有状态的图,开发者可以以工作流的方式精细编排节点、状态与条件边,构建高度定制化的代理交互.下面可以先从官网上的一些示例 感受下LangGraph的使用使用模式
Prompt chaining(链式)

场景: 每一步 LLM 调用基于前一步输出,适合将大任务精确拆分成小任务的工作流
Parallelization(并行)

场景:
- 将大任务拆分多个子任务并行执行,提供速度
- 同时执行当前任务最后对比不同的输出
Routing(路由)

场景: 多个不相关任务组合一起,通过路由方式分发执行
Orchestrator-worker(编排器-工作节点)

场景: 区别于Parallelization,编排器-工作节点模式适用于子任务无法被预先定义的情况下.通过编排器拆分任务指定对应的worker执行
Evaluator-optimizer(评估优化模式)

场景: 适用于多轮评估优化生成的内容结果
Agents

场景: Agents 模式对使用者来说定制程度没那么高,但是还是能够通过工具来影响 LLM 对工具的调用
核心概念
Graph(尤其是 StateGraph)是 LangGraph 的核心抽象
- 状态(State):代表当前应用的状态
- 节点(Node):执行特定功能的函数,接受当前 state 作为入参,在函数逻辑中基于当前 state 生成并返回新的 state
- 边(Edge):定义节点之间的连接关系,决定在当前的 state 下哪个节点应该执行
1. 节点(Nodes)
节点是执行实际工作的函数,接收状态并返回状态更新:
- START Node:定义最开始被调用的处理函数
- END Node:定义结束节点
- 缓存(Cache):可以在添加节点的时候通过
cache_policy启用缓存
2. 边(Edges)
边定义了节点之间的连接:
- 普通边(Normal Edges):使用
add_edge()定义固定的连接 - 条件边:使用
add_conditional_edges()根据条件动态选择下一个节点 - 入口节点(Entry Point):定义最开始被调用的node节点
- 条件入口节点(Conditional Entry Point):根据条件动态选择入口节点
附录