mcpField
L
langgraph

langgraph

github.com/magnus919Agent 工作流16165 次安装1 天前更新
代码仓库

关于 langgraph

LangGraph 是 LangChain 用于构建有状态、长时间运行 AI 工作流的低层编排框架,面向开发者。它以图节点和边表示 Agent 流程,支持循环、条件分支、并行执行及多 Agent 结构。

主要功能

  1. 01图式状态工作流编排
  2. 02循环与条件路由
  3. 03并行执行和子图组合
  4. 04监督者、群集与层级模式
  5. 05持久化、调试与评估指导

适用场景

  1. 01构建带条件分支的 AI 工作流
  2. 02编排多个专业 Agent 协作
  3. 03为工作流加入状态持久化与人工介入
  4. 04排查生产工作流故障并评估路由

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/magnus919/agent-skills --skill langgraph

安装后在 Claude Code 中输入/langgraph确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
assets/templates/
subgraph-agent.py
supervisor-graph.py
swarm-graph.py
evals/
evals.json
references/
architecture.md
evals.md
multi-agent-hierarchical.md
multi-agent-supervisor.md
multi-agent-swarm.md
persistence.md
production.md
troubleshooting.md
scripts/
lg-eval-generator.py
lg-supervisor-scaffold.py
lg-swarm-scaffold.py

详细介绍

LangGraph

LangGraph 是 LangChain 的底层编排框架,用于通过有向图架构构建有状态、长时间运行的多 Agent AI 工作流(灵感来自 Pregel/Beam 和 NetworkX)。它将 Agent 建模为图中的节点,通过边控制流程,从而支持循环、条件分支、并行执行、人机协同以及子图组合,而这些都是线性链无法实现的。

本技能涵盖构建和部署 LangGraph 系统的所有主要模式:核心图架构、三种典型的多 Agent 模式(监督者、群组、分层)、持久化与状态管理、生产环境调试以及评估方法。

开始之前: 安装依赖:

pip install langgraph langchain langchain-openai langsmith

快速入门

用不到 10 行代码创建你的第一个 LangGraph Agent:

from langgraph.graph import StateGraph, MessagesState, START, END

def hello_agent(state: MessagesState):
    return {"messages": [{"role": "ai", "content": "Hello, world!"}]}

graph = StateGraph(MessagesState)
graph.add_node("agent", hello_agent)
graph.add_edge(START, "agent")
graph.add_edge("agent", END)
graph = graph.compile()

graph.invoke({"messages": [{"role": "user", "content": "hi!"}]})

后续步骤:

  1. 使用下方的模式选择指南,选择监督者、群组或分层架构——每种模式都链接到推荐模板
  2. 加载相应的参考文件,深入了解该模式
  3. 使用下方的选择起点表格,根据任务选择脚手架、模板或参考资料
  4. 如需与你的模式匹配的完整可运行示例,请使用 assets/templates/ 中链接的模板

设计原则——所有图决策都必须遵循

  1. 状态是真实数据的唯一来源——节点间的所有通信都通过状态进行,而不是通过旁路或全局变量。
  2. 节点应尽可能保持纯粹——节点接收状态、执行工作并返回更新。它不应依赖未传入的状态。
  3. Reducer 可防止冲突——多个并行节点会写入的任何状态键都必须有 Reducer。
  4. 从简单开始——带有优质提示词的单个 Agent,胜过路由不佳的多 Agent 系统。只有当单个提示词或工具集变得难以管理时,才添加 Agent。
  5. 使用 Send() 实现动态扇出——如果在编译时无法确定所需工作节点的数量,就从编排器节点动态生成这些节点。
  6. 隔离子图状态——状态架构不同的子图需要使用包装函数在边界处转换状态。共享架构的子图可直接作为节点添加。

何时使用

场景加载内容
从头构建新的 LangGraph 工作流references/architecture.md — 先了解核心概念
设计多 Agent 路由系统references/multi-agent-supervisor.md 或 references/multi-agent-swarm.md — 比较不同模式
组合嵌套 Agent 团队references/multi-agent-hierarchical.md — 子图组合
添加持久化、中断或长期记忆references/persistence.md — 检查点保存器和存储
部署到生产环境或调试故障references/production.md — 部署、可观测性、故障模式
设置用于路由准确率的评估流水线references/evals.md — 评估方法
诊断特定故障(循环、上下文丢失、崩溃)references/troubleshooting.md — 已知故障模式
在图中放置有类型的 System One 判断references/architecture.md;决策约定和校准参见 System One,工作流权限和完整任务证据参见 harness-engineering

模式选择指南

你的约束优先选择原因
路由准确性优先于延迟Supervisor集中式路由节点,专注的提示词:准确率约为 94%
延迟是首要约束SwarmAgent 之间直接交接,LLM 调用次数减少约 40%
领域边界清晰SwarmAgent 很少错误路由,交接明确
领域边界模糊Supervisor由专用路由器解决关注点重叠问题
不足 3 个不同领域跳过多 Agent 模式专业化的单个 Agent 更简单
经常收到跨领域请求Swarm延迟节省会随着交接次数累积
需要集中式审计记录Supervisor路由决策都会显示在追踪记录中
嵌套团队结构Hierarchical将子图作为节点,每个团队自成一体

选择起点

你的目标从这里开始原因
从零开始构建项目,需要生成代码scripts/lg-supervisor-scaffold.py 或 scripts/lg-swarm-scaffold.py脚手架会生成完整的项目结构(state.py、agents.py、graph.py),并提供待填写的占位内容
了解完整、可运行的示例assets/templates/ 中与你选择的模式匹配的模板模板是自包含的可运行文件,已连接好所有模式——最适合通过阅读来学习
深入了解某种模式的内部机制references/ 中对应的参考文档参考文档会解释权衡、故障模式和设计原理——最适合用于定制
调试或优化现有系统references/production.md 或 references/troubleshooting.md生产环境参考文档涵盖部署和可观测性;故障排查参考文档包含症状→修复对照表

核心原语

LangGraph 使用两种 API:

API适用场景模式
Graph API(StateGraph)完全控制图结构、条件边和子图add_node() + add_edge()/add_conditional_edges()
Functional API(@task + @entrypoint)更简单的线性工作流、更少的样板代码基于装饰器,符合 Python 风格

两种 API 都会生成相同的编译后图——根据所需的控制程度进行选择。

重要注意事项

  • 子图持久化默认按调用进行——每次调用子图都会从头开始。设置 checkpointer=True 可启用按线程记忆,设置 checkpointer=False 则完全无状态。
  • 按线程运行的子图不能并行执行——同一命名空间的检查点会发生冲突。使用 ToolCallLimitMiddleware 或禁用并行工具调用。
  • Supervisor 瓶颈——每次交互都需要调用一次路由 LLM,即使意图显而易见也不例外。对于明确的请求,可添加快速路径分类器(关键字匹配或小型模型)。
  • Swarm 来回循环——没有自然的递归保护机制。在状态中跟踪 handoff_count 并将上限设为 3,然后升级给人工处理或转交给备用 Agent。
  • 交接时消息丢失——Command.update 必须包含专家 Agent 工具调用循环中的成对消息,否则下一个 Agent 看到的历史记录会格式错误。
  • 从父图访问子图状态——子图会管理自己的检查点命名空间。跨图边界共享数据时请使用 Store。
  • 检查点膨胀——长对话会累积检查点。定期清理,或为基于 DB 的检查点保存器设置保留策略。
  • 安装后不会自动加载——技能不会在会话开始时根据名称提及而自动发现。Agent 必须显式调用 skill_view(name='langgraph') 来加载此技能。

参考文件

文件加载时机
references/architecture.md需要了解 LangGraph 核心概念时:图结构、节点、边、状态、两种 API 以及 Agent 循环的基本构建方式。如果你是 LangGraph 新手,请先阅读此文件。
references/multi-agent-supervisor.md设计基于 supervisor、带有中央路由节点的多 Agent 系统时。包含架构、结构化输出路由、专用 Agent 包装器和完整代码示例。
references/multi-agent-swarm.md设计基于 swarm、支持 Agent 之间直接交接的多 Agent 系统时。包含交接工具模式、基于 Command 的路由,以及与 supervisor 的对比指标。
references/multi-agent-hierarchical.md使用子图组合嵌套 Agent 团队时。涵盖子图连接方式(共享或不同的状态模式)、持久化模式、命名空间隔离和分层团队结构。
references/persistence.md添加基于 checkpointer 的短期记忆或基于 store 的长期记忆时。涵盖按调用、按线程和无状态模式、检查点后端,以及跨线程记忆模式。
references/production.md将 LangGraph 系统部署到生产环境时。涵盖 Agent Server 部署、LangSmith 可观测性、流式处理模式,以及常见的生产故障和修复方法。
references/evals.md为多 Agent 系统设置评估流水线时。涵盖路由准确率、问题解决覆盖率、LangSmith 评估数据集和 LLM-as-judge 评估器。
references/troubleshooting.md调试特定的 LangGraph 故障时。涵盖路由循环、上下文丢失、checkpointer 冲突、令牌浪费和状态检查技巧。
assets/templates/supervisor-graph.py可运行的 supervisor 示例,包含账单、技术支持和账户专员;提供快速路径分类器、结构化输出路由、审计跟踪和递归保护。
assets/templates/swarm-graph.py可运行的 swarm 示例,包含分诊 Agent 和 3 个专员;支持通过 Command 在 Agent 之间直接交接,并提供递归保护和完整的可追溯性。
assets/templates/subgraph-agent.py可运行的子图组合示例,包含全部 3 种连接模式(不同的状态模式、共享状态键、带命名空间隔离的按线程模式)。

脚本

脚本功能
scripts/lg-supervisor-scaffold.py生成完整的 supervisor 模式项目,包含状态模式、路由 Agent、专员节点和图组装代码
scripts/lg-swarm-scaffold.py生成完整的 swarm 模式项目,包含交接工具、分诊 Agent、专员 Agent 和条件路由
scripts/lg-eval-generator.py生成评估数据集,并运行 LangSmith 评估器来评估路由准确率和问题解决覆盖率

评论

支持 Markdown