当前位置: 首页 > news >正文

实战!LangGraph Multi-Agent Supervisor 模式:手把手构建生产级多智能体系统

手把手构建生产级多智能体系统 · 代码全部可运行 · 含避坑指南

🎯 高频面试题(含参考答案)

Q1LangGraph 中 Supervisor 模式和 Swarm 模式有什么区别?

Supervisor 模式:一个中央 Supervisor Agent 负责任务分发和结果汇总,所有 Worker Agent 只和 Supervisor 通信,结构清晰易控制,适合任务边界明确的场景。Swarm 模式:Agent 之间可以直接互相交接控制权(handoff),更灵活但更难调试,适合任务边界模糊、需要多轮协商的场景。面试重点:Supervisor = 集中控制;Swarm = 去中心化协作。

Q2LangGraph 的 StateGraph 如何实现多 Agent 间的状态共享?

LangGraph 使用**共享状态(Shared State)**实现跨 Agent 通信。所有 Agent 节点读写同一个 TypedDict 状态对象,通过 Reducer 函数(如 operator.add)处理并发写入冲突。每个节点只返回自己修改的字段,框架自动 merge 到全局状态。Checkpoint 机制(SQLite/Redis)保证状态持久化,支持断点续跑。

Q3多 Agent 系统如何防止"幻觉传染"?即一个 Agent 的错误输出影响整个流程?

核心方案:①Critic Agent:独立审查节点,每个关键输出都经过批评者评分,低分触发重做;②结构化输出 + Schema 验证:强制每个 Agent 输出符合 Pydantic 定义的结构,不合规直接拒绝;③人工审批节点(Human-in-Loop):LangGraph 的 interrupt_before/after 机制,对高风险决策暂停等待人工确认;④沙箱执行:Code Agent 产出的代码在隔离环境运行,避免副作用扩散。

Q4生产环境中 Multi-Agent 系统的 Token 消耗如何控制?

上下文压缩:Agent 间传递摘要而非原文,用 LLM 对中间结果做 100 token 摘要;②工具调用缓存:相同参数的工具调用结果缓存 TTL 1分钟,避免重复检索;③分级模型:Grader/Router 用 GPT-4o-mini,Generator 用 GPT-4o,成本降 60%;④并行减少往返:Fan-out 并发执行多个子任务,减少串行次数。

一、为什么单 Agent 不够用?

2026 年的标志性变化:Agent 开发进入多智能体时代。单 Agent 面临三大天花板:

维度单 AgentMulti-Agent
上下文窗口受 Token 限制,复杂任务截断各 Agent 独立上下文,无限扩展
专业深度通才但不精专业 Agent 各司其职更精准
并行能力串行执行,慢Fan-out 并发,速度 5-10× 提升
可靠性单点故障全盘崩独立 Agent 隔离失败,可重试

Anthropic 2026年4月数据:Claude Managed Agents 已在 Notion、Rakuten 等企业跑真实业务,Multi-Agent 系统商业化进程远超预期。

二、Supervisor 模式:角色分工与通信机制

Supervisor 模式的核心是集中调度:一个 Supervisor 负责任务拆解和路由,多个专业 Worker 负责执行。

🎛️

Supervisor Agent

接收用户意图
拆解子任务
路由给 Worker
汇总最终答案

🔍

Research Agent

网络搜索
知识库检索
数据收集

💻

Code Agent

代码生成
沙箱执行
Bug 修复

✍️

Writer Agent

内容整合
格式化输出
报告生成

🔎

Critic Agent

质量审查
事实核验
评分反馈

**状态流转:**用户输入 → Supervisor 分析 → 并行派发 Research + Code Agent → 汇总中间结果 → Writer 整合 → Critic 审查(不通过则返回对应 Agent 重做)→ 最终输出。关键:所有通信通过 LangGraph 共享 State 传递,无需直接 API 调用。

三、LangGraph Supervisor 核心代码实现

以下为生产可用的 Supervisor 骨架代码(LangGraph v1.x):

import operator from typing import Annotated, TypedDict from langgraph.checkpoint.sqlite import SqliteSaver from langgraph.graph import END, StateGraph from langgraph.prebuilt import create_react_agent # 1. 定义共享状态 class TeamState(TypedDict): messages: Annotated[list, operator.add] # Reducer 并发安全 task: str research_result: str code_result: str final_answer: str next_worker: str # Supervisor 决定下一步 # 2. Supervisor 节点(LLM 路由) def supervisor_node(state): supervisor_prompt = """你是团队协调者。根据当前任务状态, 决定下一步分配给哪个 Worker,或直接 FINISH。 可选:researcher / coder / writer / critic / FINISH 当前任务: {task} 已完成: {messages}""" # 注意:确保你已经在外部定义并初始化了 llm 实例 response = llm.invoke(supervisor_prompt.format(**state)) return {"next_worker": response.content.strip()} # 3. Worker 节点(使用 create_react_agent) # 注意:确保 web_search, vector_search, python_repl, code_formatter 等工具已在外部定义 research_agent = create_react_agent( llm, tools=[web_search, vector_search], system_message="你是专业研究员,负责信息收集和事实核验", ) code_agent = create_react_agent( llm, tools=[python_repl, code_formatter], system_message="你是资深工程师,负责代码生成和调试", ) # 提示:原代码中使用了 writer_agent 和 critic_agent,请确保它们也像上面一样被定义。 # 4. 条件路由:Supervisor 的决策 def route_by_supervisor(state): next_w = state["next_worker"] if next_w == "FINISH": return END return next_w # 返回 worker 名称作为下一节点 # 5. 构建 Supervisor 图 builder = StateGraph(TeamState) builder.add_node("supervisor", supervisor_node) builder.add_node("researcher", research_agent) builder.add_node("coder", code_agent) builder.add_node("writer", writer_agent) builder.add_node("critic", critic_agent) builder.set_entry_point("supervisor") # 所有 Worker 完成后都回到 Supervisor 决策 for worker in ["researcher", "coder", "writer", "critic"]: builder.add_edge(worker, "supervisor") builder.add_conditional_edges( "supervisor", route_by_supervisor, { "researcher": "researcher", "coder": "coder", "writer": "writer", "critic": "critic", END: END, }, ) # 6. 开启 Checkpointer 持久化状态,支持断点续跑 memory = SqliteSaver.from_conn_string(":memory:") graph = builder.compile(checkpointer=memory)

四、三种多智能体架构横向对比

🎛️ Supervisor 模式

  • 集中调度,逻辑清晰
  • 易于 Debug 和监控
  • Supervisor 是性能瓶颈
  • 适合:流程固定、任务边界清晰

🌐 Swarm 模式

  • 去中心化,灵活协作
  • Agent 自主 handoff
  • 难以调试追踪
  • 适合:探索性任务、边界模糊

🏗️ 层级化团队

  • 多层 Supervisor 嵌套
  • 扩展性最强
  • 延迟叠加明显
  • 适合:大型复杂项目

五、生产环境落地:4 个必须踩的关键点

1

必须加 Human-in-the-Loop 审批节点

对高风险操作(数据库写入、邮件发送、API 调用)使用 LangGraph 的 interrupt_before=“node_name” 暂停图执行,等待人工审批后再继续。这是生产级 Agent 系统的安全底线,即使 AI 判断"100% 正确"也不能跳过。

2

为每个 Agent 设置 Token 预算和超时

在共享 State 中维护 agent_token_budget 字段,每个 Agent 节点消耗 Token 后更新计数。超出预算触发 early_stop 路径返回 Supervisor。同时为每个节点设置 timeout=30s,防止工具调用阻塞整个图。

3

Checkpointer 选 Redis,别用内存

生产环境 Agent 任务可能运行数分钟,进程重启会丢失所有状态。使用 RedisCheckpointer(langgraph-checkpoint-redis)持久化状态,任何时刻重启都能从断点恢复,对用户透明。

4

LangSmith 全链路追踪是必选项

Multi-Agent 系统出 Bug 时,没有 trace 几乎无法定位问题。LangSmith 会自动记录每个节点的输入输出、工具调用、Token 消耗,并支持在 UI 中回放整个 Agent 执行流程。开发环境设置 LANGCHAIN_TRACING_V2=true 一行搞定。

六、真实项目踩坑记录

⚠️ 坑1:Supervisor 陷入无限循环

现象:Supervisor 一直在 researcher 和 coder 之间反复路由,永不结束。
根因:Supervisor prompt 没有清晰的"完成条件",LLM 不知道什么时候该输出 FINISH。
修复:在 Supervisor prompt 中明确写:“当 research_result 和 code_result 均非空时,必须输出 FINISH”,并在 State 中记录 iterations 计数器,超过 10 次强制终止。

⚠️ 坑2:Worker Agent 输出不被 Supervisor 理解

现象:Code Agent 输出了代码,但 Supervisor 判断"任务未完成"继续派发。
根因:Worker 的输出作为 messages 列表追加,Supervisor 上下文过长导致遗忘中间结果。
修复:每个 Worker 完成后,将关键结果存入 State 的专属字段(research_result/code_result),Supervisor prompt 直接读取这些字段而非 messages 列表。

⚠️ 坑3:并行 Fan-out 导致状态写入冲突

现象:两个并行 Agent 同时写入 messages 字段,后写的覆盖了先写的。
修复:将 messages 字段的类型改为 Annotated[list, operator.add],使用 Reducer 函数合并,而非直接覆盖。这是 LangGraph 处理并发写入的标准方案。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

http://www.jsqmd.com/news/1093187/

相关文章:

  • Playwright 自动化操控 X(Twitter) 发帖踩坑实录
  • 2026年适配维普降AI率软件横评:亲测8款工具,把AI率稳控在安全线内
  • SolidWorks_曲线与曲面设计19_曲面与实体混合建模
  • 2025轻松指南:零基础医疗会议转待办,包教包会避坑干货满满
  • ClickHouse:极速OLAP引擎解析
  • 3分钟快速上手:HS2-HF Patch终极安装与配置指南
  • 如何下载VirtualBox
  • 硬件工程师必读:评估板安全使用与合规指南
  • QuantConnect Lean算法交易引擎:从零构建专业量化交易系统的完整指南
  • 【大模型原理与微调实战01】普通人怎么真正学懂大模型?建立完整LLM学习思维
  • 可观测性三大支柱:日志、指标、链路追踪
  • 如何免费实现专业级显示器色彩校准:novideo_srgb终极指南
  • Sesame-TK:基于Xposed框架的蚂蚁森林自动化架构深度解析
  • 手把手教你用AI:QWen千问大模型快速上手与实战指南
  • 优质技术公众号-博客订阅列表(持续更新)
  • JMeter测试环境配置自动化备份实战:5步构建资产安全体系
  • 终极免费卡拉OK游戏指南:快速上手UltraStar Deluxe的完整教程 [特殊字符]
  • LLM | 学习笔记一
  • 搞skill比搞向量库简单多了,要干的事全搞成skill就好了
  • AI技能编排框架mattpocock/skills:标准化接口与集成实践
  • 计算机毕业设计之基于SSM的员工培训管理系统的设计与实现
  • 嵌入式系统未来展望
  • 当你的 PHP 应用的 API 没有限流时会发生什么
  • 分治策略在图像处理算法中的应用与优化的技术7
  • AI之长效智能体Hermes Agent
  • 变更管理化技术中的变更请求变更控制变更实施
  • 2026微信视频号视频保存到相册方法,安卓苹果本地下载教程
  • Java实战:基于BouncyCastle的SM2国密算法加密通信Demo
  • CSRF防御绕过实战:Burp Suite深度解析Token、SameSite Cookie与验证逻辑漏洞
  • 新华读报|“手机痴呆症”盯上中青年——怪不得最近记性变差,千万不要再做低头族了!!!