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

LangGraph 进阶:Supervisor 模式——让 LLM 当项目经理,动态调度多 Agent 协作

本文介绍 LangGraph 中最灵活的编排模式——Supervisor。一个"经理 Agent"根据任务进展动态决策下一步派谁干活,彻底解放静态路由。附带 DeepSeek 思考模型踩坑实录。

GitHub 项目地址:https://github.com/binbin3828/langgraph_demo/demo8_demo8_supervisor.py


一、从静态路由到动态编排

回顾前面 6 个 Demo,图的结构都是写死的:

Demo1: START → classify → [tech | billing | general] → END (静态分叉) Demo2: START → A → B → C → D → END (固定串行) Demo5: START → A → B → C ──(失败)──→ D → A (固定循环) Demo6: START → [并行 N 个] → 汇总 → END (固定 Map-Reduce)

这些图的共同特征:边的走向在你写代码时就定死了。

但实际项目中,复杂任务往往需要灵活决策——做完调研发现要补一段代码,写完代码发现文档也要更新,这些决策取决于中间结果,没法提前写死。

这就是 Supervisor 模式的用武之地。

一句话理解

Supervisor 模式 = 一个 LLM 驱动的"路由管理器"。每次子 Agent 干完活回来,Supervisor 重新审视全局状态,动态决定"下一步派谁、干什么",直到任务完成。


二、Supervisor 模式的图结构

┌──────────────┐ │ Supervisor │ ← 每次子Agent干完活都回到这里 │ (经理Agent) │ └──────┬───────┘ │ 动态决策: 下一个派谁? ┌──────────────────────┼──────────────────────┐ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Researcher │ │ Coder │ │ Writer │ │ (研究员) │ │ (程序员) │ │ (文档员) │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ └──────────────────────┼──────────────────────┘ │ 干完活,回去报告 ▼ ┌──────────────┐ │ Supervisor │ ← 循环! └──────┬───────┘ │ 如果决定 FINISH ▼ ┌──────────────┐ │ Summarize │ ← 汇总所有成果 └──────┬───────┘ ▼ END

关键特征:

  • Supervisor 和子 Agent 之间形成循环——子 Agent 干完活必然回到 Supervisor
  • 每次回到 Supervisor,LLM 重新审视全局状态,做出新一轮决策
  • 直到 Supervisor 判断"任务完成"返回 FINISH,或者达到最大调度次数

三、完整代码拆解

3.1 State 设计

classSupervisorState(TypedDict):user_request:str# 用户原始需求messages:Annotated[list[str],reducer_list]# 所有Agent的工作记录(追加!)dispatch_count:int# 已调度次数(防死循环)next_agent:str# Supervisor的决策结果task_description:str# 给子Agent的任务描述final_response:str# 最终汇总回复

messagesreducer_list追加而非覆盖——每个子 Agent 干完活往里面追加一条记录,Supervisor 下次决策时能看到所有历史。

3.2 Supervisor 节点:LLM 动态决策

defsupervisor(state:SupervisorState)->dict:# 拼接所有历史消息,让Supervisor看到全局进展history="\n".join(f"-{m}"forminstate["messages"])ifstate["messages"]else"暂无"prompt=f"""你是一个项目经理(Supervisor),负责协调团队完成用户需求。 你的团队有3个成员: - researcher: 研究员,擅长调研分析 - coder: 程序员,擅长写代码 - writer: 文档员,擅长写文档 用户需求:
http://www.gsyq.cn/news/1587696.html

相关文章:

  • PCL 基于高程改进的体素滤波
  • 海外仓退货管理:破解跨境电商高成本难题
  • 需求变更写不好?问题可能不是表达,而是影响范围没理清
  • 2026年蜂胶乙醇提取物销售厂家权威与否 行业经验参考分析
  • 【ESOA三维路径规划】基于matlab白鹭群算法ESOA多无人机协同集群避障路径规划算法(目标函数:最低成本:路径、高度、威胁、转角)【含Matlab源码 15664期】
  • OpenCore Legacy Patcher终极指南:4步修复老Mac显卡驱动兼容性问题
  • Python实现LDA主题模型:主题分布、主题强度与强度演变分析全攻略
  • 戴森V6/V7电池开源固件升级完全指南:解锁隐藏的电芯平衡功能
  • Adobe XD 59.0安装包免费下载及详细安装教程
  • AI旅行建议防坑指南:五步交叉验证法实战
  • 在STM32H743上部署轻量口罩检测模型的全流程实践
  • 技术洞察:Social Analyzer社交情报分析系统架构解析
  • 浏览器中的微信革命:wechat-need-web插件让你随时随地聊天
  • OAuth2 登录与群 Webhook 开放接入
  • JDK 9 的 PlatformClassLoader 只是简单改个名吗?
  • 别再死磕SEO!AI时代新流量入口GEO,抢占AI答案推荐位
  • 一键解锁无损音乐宝藏:TIDAL Downloader Next Generation 高解析度音频下载全攻略
  • 云计算作业3
  • 诊断证明翻译怎么办理?诊断证明翻译怎么线上办理?
  • H3C S5130 交换机 SSH 远程开局配置指南
  • 豆包大模型2.1 Pro发布深度解析:日均180万亿Token背后的中国AI编程新王座
  • 中国远程控制行业研究报告(2026):从连接工具到智能生产力基座的演进路径
  • 微软详细说明 Windows 11 版本 26H2 的支持生命周期
  • Outfit字体:9种字重的开源几何无衬线字体如何重塑现代设计系统
  • 苹果端侧AI实战:分层智能架构与Core ML深度优化指南
  • Gmail邮箱批量生成终极指南:5分钟解锁Python自动化黑科技
  • 在线测速与本地 ping 的本质区别
  • 苹果Siri系统级LLM重构:端侧大模型与隐私优先架构解析
  • 【共创季稿事节】 鸿蒙原生 ArkTS 布局实战:Tabs + animateTo 实现页面切换过渡动画
  • 跨境搬迁智能导航系统:行政流程语义编排引擎设计