当前位置: 首页 > 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.jsqmd.com/news/1075764/

相关文章:

  • 3步实现GitHub Desktop高效汉化:免费实用工具快速上手
  • PCL 基于高程改进的体素滤波
  • PotplayerPanVideo:如何在PotPlayer中免费播放百度、迅雷、阿里云盘高清视频的终极指南
  • 海外仓退货管理:破解跨境电商高成本难题
  • Triton推理服务实战:从模型加载到灰度发布的生产级落地
  • 需求变更写不好?问题可能不是表达,而是影响范围没理清
  • Input Leap:3分钟掌握开源KVM软件,一套键鼠控制多台电脑的终极方案
  • OpenCore Legacy Patcher终极指南:4步修复老Mac显卡驱动兼容性问题
  • 【ESOA三维路径规划】基于matlab白鹭群算法ESOA多无人机协同集群避障路径规划算法(目标函数:最低成本:路径、高度、威胁、转角)【含Matlab源码 15664期】
  • 2026年蜂胶乙醇提取物销售厂家权威与否 行业经验参考分析
  • UVa 598 Bundling Newspapers
  • AI SEO避坑清单:17个实操错误与可执行校验方案
  • FedAvg联邦学习原理与工业级实战指南
  • Syncthing终极部署指南:三步构建你的私有同步网络
  • GeekDesk极客桌面:如何用一款工具提升3倍桌面操作效率?
  • 使用 Thread 子类创建线程和使用 Thread 直接创建线程(Runnable接口)的区别
  • Sketch Measure插件终极教程:5分钟掌握自动化设计标注,提升团队协作效率
  • 近期量化学习四步走,AI 只适合跟着阶段用
  • 质量管理工具-矩阵数据分析法
  • Python实现LDA主题模型:主题分布、主题强度与强度演变分析全攻略
  • 【招聘】第二篇:自下而上:为什么最好的招聘决策,往往不应该从HR开始
  • 2016-2022年中国10米分辨率逐年不透水面数据集(CAIS)
  • Seedance 2.5视频生成模型七月登场:30秒原生直出+50素材+周星驰IP的国产视频新纪元
  • 如何选择macOS Intel Wi-Fi驱动的最佳方案:itlwm与AirportItlwm决策指南
  • 在STM32H743上部署轻量口罩检测模型的全流程实践
  • 2014-2026年中国全域公园绿地矢量数据集|逐年更新|生态底图
  • AI旅行建议防坑指南:五步交叉验证法实战
  • Adobe XD 59.0安装包免费下载及详细安装教程
  • 运维转大模型:团队协作中的使用边界
  • 戴森V6/V7电池开源固件升级完全指南:解锁隐藏的电芯平衡功能