掌握 Agent 工作流的 10 个最佳 LangGraph 教程
如果您已经尝试过 LangChain agents,并且觉得编排变得难以管理,那么这里有一个大胆的说法:掌握最佳 LangGraph 教程将改变您构建 AI 系统的方式。LangGraph 为 agentic 工作流添加了基于图的控制、强大的状态和多参与者模式——这正是生产团队在简单链条开始崩溃时所需要的。
在这份实用的、以解决方案为导向的指南中,我们将整理最佳 LangGraph 教程,向您展示每个教程的优点,并将它们映射到实际用例——从简单的工具调用 agents 到容错的多轮规划器。在此过程中,您将获得升级路线图、需要避免的常见陷阱以及您可以立即采用的即插即用模式。
为什么 LangGraph 教程对 Agent 构建者很重要
- 可预测的控制流:LangGraph 将您的 agent 建模为节点和边的图——使分支、重试和回退变得明确。
- 共享的、持久的状态:将对话记忆、工具结果和中间产物保存在一个地方。
- 多参与者设计:组合专门的 agents(规划者、研究者、编码员、评论员),而无需意大利面条式代码。
- 生产强化:添加超时、保护和可观察性,同时保持逻辑可读。
如果您的目标是构建可靠的助手、评估器或自主研究循环,那么最佳 LangGraph 教程会为您提供可重复的模式——而不仅仅是一次性的演示。
此列表的工作方式
为了使这些成为满足不同需求的最佳 LangGraph 教程,我们已按技能等级和结果对其进行了组织。每个条目包括:
我们还在每个等级之后提供升级路径和专业提示。
第一层 — 基础:流利地进行图思考
1) 你好,LangGraph:30 分钟内从链到图
- 您将构建什么:一个简单的 agent,它调用两个工具——
搜索,然后总结——如果搜索没有返回结果,则进行分支。
- 为什么它有价值:您将看到如何将线性链转换为具有清晰节点和边的图。
- 最适合:从 LangChain Chains/Agents 迁移到基于图的控制的开发人员。
示例骨架:
from langgraph.graph import StateGraph
# Define state shape (e.g., query, results, summary)
class State(dict):
query: str
results: list
summary: str
builder = StateGraph(State)
@builder.node("search")
def search_node(state: State):
# call your search tool
state["results"] = my_search(state["query"])
return state
@builder.node("summarize")
def summarize_node(state: State):
state["summary"] = summarize(state["results"])
return state
builder.edge("search", "summarize", condition=lambda s: len(s["results"]) > 0)
app = builder.compile
专业提示:保持状态最小化和类型化。将其视为节点之间的合约。
2) 带有保护和超时的工具调用 Agent
- 您将构建什么:一个使用工具(网络搜索、计算器)的 agent,具有重试逻辑和超时。
- 为什么它有价值:生产 agents 必须具有弹性——本教程展示了实用的防护栏。
- 关键概念:超时、错误节点、重试循环、可观察性钩子。
- 最适合:准备部署具有外部依赖项的 agents 的团队。
专业提示:将错误处理建模为一流的节点。它更容易测试和发展。
3) 内存和状态:没有麻烦的聊天记录
- 您将构建什么:一个记住用户个人资料和先前任务的对话 agent。
- 为什么它有价值:当内存位于图状态时,它会变得稳定且可检查。
- 最适合:客户支持机器人、AI 队友或具有上下文连续性的助手。
专业提示:使用分阶段的内存——短期缓冲区 + 提炼的长期摘要——以实现可扩展性。
第二层 — 中级:编排多步骤推理
4) LangGraph 中的规划者-执行者模式
- 您将构建什么:一个双 agent 系统,其中规划者分解任务,执行者完成步骤。
- 为什么它有价值:将推理(做什么)与行动(做)分开,以提高清晰度和可测试性。
专业提示:保持规划者的“token节俭”。约束输出格式以减少漂移。
5) 具有反馈循环的检索增强生成 (RAG)
- 您将构建什么:一个 RAG 管道,它根据答案置信度调整检索。
- 为什么它有价值:通过循环避免幻觉:检索 → 草稿 → 评估 → 细化 → 定稿。
- 关键概念:置信度评分、评估器节点、条件细化、向量存储管理。
专业提示:当置信度超过您的阈值时,包括一个“提前停止”边缘以节省 token。
6) 具有自我批评的多工具 Agent
- 您将构建什么:一个可以调用多个工具(网络、代码、表格)并批评自身输出的 agent。
- 为什么它有价值:自我评估会在结果到达用户之前发现基本的逻辑或格式错误。
专业提示:将评论员视为具有严格评分标准的轻量级 LLM,以避免无限的吹毛求疵。
第三层 — 高级:生产级 Agent 系统
7) 多参与者 LangGraph:研究员、编码员和审阅者
- 您将构建什么:一个三 agent 系统,其中每个参与者专门化、移交工作并签署。
- 为什么它有价值:对劳动分工进行编码、减少提示的认知超载并提高质量。
- 关键概念:角色范围状态、agent 间合约、升级路径。
专业提示:定义每个参与者的输入/输出模式——JSON 模式可防止“角色泄漏”。
8) 容错:检查点、重试和幂等性
- 您将构建什么:一个可以在失败后使用检查点和幂等节点恢复的 agent。
- 为什么它有价值:实际工作负载会失败。本教程使恢复成为设计的一部分。
- 关键概念:持久状态存储、确定性节点哈希、重试预算、类似 saga 的补偿。
- 最适合:长时间运行的作业、批处理、昂贵的 API 链。
专业提示:存储节点输入和输出;重试应该是状态的函数,而不是运气。
9) 大规模监控、跟踪和评估
- 您将构建什么:一个测量层——跟踪、指标和回归测试——包装在您的图周围。
- 为什么它有价值:您无法改进您看不到的东西。可观察性支持快速迭代。
- 关键概念:跨度跟踪、结构化日志记录、黄金数据集、离线/在线评估。
专业提示:添加与生产并行运行而不影响输出的“影子”评估节点。
10) 人工参与 (HITL) 审核流程
- 您将构建什么:一个循环,其中不确定的输出会在完成之前触发人工审核。
- 为什么它有价值:将模型速度与人工判断相结合,以做出敏感决策。
- 关键概念:置信度阈值、批准节点、反馈整合、审计跟踪。
专业提示:将人工决策和理由记录回状态,以微调未来的路由。
按用例划分的最佳 LangGraph 教程
为了帮助您快速选择,这里有一个快速映射:
- 合规性敏感的 RAG:优先考虑 3、5、8、10。
如果您关心端到端的可靠性,而不仅仅是原型,那么这些是最好的 LangGraph 教程。
动手实践:您可以重用的最小 LangGraph 模式
下面是一种可重用的模式,它反映了许多最佳 LangGraph 教程——规划者 → 行动 → 检查 → 细化 → 完成。
from langgraph.graph import StateGraph
from typing import List, Optional
class State(dict):
query: str
plan: List[str]
step: int
artifacts: List[str]
draft: str
confidence: float
builder = StateGraph(State)
@builder.node("plan")
def plan_node(state: State):
state["plan"] = make_plan(state["query"]) # LLM-structured list
state["step"] = 0
state["artifacts"] = []
return state
@builder.node("act")
def act_node(state: State):
task = state["plan"][state["step"]]
output = execute_task(task) # tool(s)
state["artifacts"].append(output)
return state
@builder.node("synthesize")
def synth_node(state: State):
state["draft"] = synthesize(state["artifacts"]) # LLM combine
return state
@builder.node("evaluate")
def eval_node(state: State):
score, feedback = evaluate(state["draft"]) # rubric-based
state["confidence"] = score
state["feedback"] = feedback
return state
# Edges
builder.edge("plan", "act")
def more_steps(s: State) -> bool:
return s["step"] < len(s["plan"]) - 1
builder.edge("act", "act", condition=lambda s: (s.update({"step": s["step"] + 1}) or True) and more_steps(s))
builder.edge("act", "synthesize", condition=lambda s: not more_steps(s))
builder.edge("synthesize", "evaluate")
builder.edge("evaluate", "plan", condition=lambda s: s["confidence"] < 0.7) # refine plan
app = builder.compile
它为什么有效:
常见陷阱(以及最佳教程如何避免它们)
- 过度填充状态:存储原始文档或巨大的消息历史记录会膨胀内存。积极地进行总结。
- 隐式错误处理:不要隐藏任何东西。将异常转换为节点并建模恢复路径。
- 工具蔓延:从 2-3 个工具开始;一旦路由稳定,再添加更多工具。
- 没有离线评估:保留黄金任务以发现模型、提示或工具更改时的回归。
学习路径:从第一个图到生产 Agent
通过遵循此方法,您将以尊重生产现实的方式吸收最佳 LangGraph 教程。
与 LangGraph 配合良好的工具堆栈
- 向量存储:用于 RAG 的 FAISS、Chroma、PGVector。
- 跟踪:用于节点跨度的 OpenTelemetry 或模型感知跟踪器。
- 队列:用于后台节点的 Redis、Celery 或 Cloud Tasks。
- 存储:用于持久状态和检查点的 Postgres 或 DynamoDB。
- 评估:用于评分标准校准的综合测试集 + 人工抽查。
值得注意的是:如果您的工作流程涉及在您迭代图时进行编码、浏览或总结 Web 内容,则 Sider.ai 侧边栏可以加快您在浏览器中的研究和起草速度。它对于测试提示、生成结构化评分标准以及将代码段捕获到您的知识库中而无需上下文切换特别有用。 如何为您选择最佳 LangGraph 教程
问问自己:
- 您是否即将发布产品?从弹性 (2) 开始,然后是 RAG + 评估 (5) 和监控 (9)。
- 您是否正在构建研究 agents 的原型?专注于规划者-执行者 (4)、自我批评 (6) 和多参与者 (7)。
- 您是否有严格的合规性需求?内存规则 (3)、容错 (8)、HITL (10)。
最好的 LangGraph 教程与您的约束条件相符:延迟、正确性、成本和可维护性。
快速参考:推动良好图的问题
在您构建时将这些保留在白板上。
结论:构建您可以信任的 Agent
LangGraph 为 agent 混乱带来了秩序。通过遵循最佳 LangGraph 教程——从简单开始、添加弹性并分层评估——您将设计出能够解释自己、从错误中恢复并提供可预测结果的 agents。
下一步:
主要收获:
- 在高度敏感的场景中,评估器和 HITL 不是可选的。
- 最好的 LangGraph 教程是您可以重新运行、测量和发展的教程。
常见问题解答
Q1:初学者最好的 LangGraph 教程是什么?
从一个简单的双工具图(搜索 → 总结)开始,然后添加超时/重试和基本内存。这些最好的 LangGraph 教程教授节点、边和状态,以便您可以稍后进行扩展。
Q2:如何在 LangGraph 中构建规划者-执行者 agent?
使用单独的节点或子图进行规划和执行,并通过共享状态传递结构化计划。最好的 LangGraph 教程展示了终止条件和重新规划循环以降低成本。
Q3:LangGraph 可以帮助减少 RAG 中的幻觉吗?
是的。添加评估器节点,对答案进行评分,并在置信度较低时触发细化。最好的 LangGraph 教程结合了检索、综合和评估来强制执行质量。
Q4:LangChain agents 和 LangGraph 之间有什么区别?
LangChain agents 专注于工具使用,而 LangGraph 强调显式控制流和共享状态。最好的 LangGraph 教程强调了图如何提高可观察性和可靠性。
Q5:如何向 LangGraph 工作流程添加人工参与审核?
当置信度低于阈值或任务敏感时,插入到批准节点的条件边缘。许多最好的 LangGraph 教程使用 HITL 门来满足合规性要求。