langgraph教程系列-11-从单兵到团队-多智能体模式
本文是「LangGraph 教程系列」第 11 篇。写作时基于 langgraph 1.2.10、langchain 1.3.14、langchain-openai 1.4.1、Python 3.12。配套代码仓库 https://github.com/wxj006007/deep-research-assistant 本篇对应 tagv4。v3 已经把规划、研究和写作拆成了边界清晰的子图。可它们仍按固定顺序执行先研究再写作。资料缺了反方证据谁来要求补查资料足够时谁来决定不要再浪费一次搜索拆图解决的是封装团队化解决的是调度。本篇让研究助手拥有一名 Supervisor、研究员、审稿人和写作员。Supervisor 不亲自写答案而是根据共享状态和专家报告决定下一位该工作的角色。一、子图和 agent 不是一回事子图是组合手段。v3 的 researcher 子图把审批、搜索和评估循环关在自己的职责边界内父图不必知道它查了几轮。agent 则多了角色、目标和调度权。研究员只补证据审稿人只找覆盖缺口写作员只基于已批准资料成稿。它们都可以用子图实现但不会因为被装进子图就自动成为多智能体。渲染错误:Mermaid 渲染失败: Parse error on line 11: ...摘要] persist -- end([END]) super ----------------------^ Expecting AMP, COLON, PIPE, TESTSTR, DOWN, DEFAULT, NUM, COMMA, NODE_STRING, BRKT, MINUS, MULT, UNICODE_TEXT, got end研究员内部仍是第 10 篇的子图且每轮检索前仍会暂停等待人工审批。它不会因为变成一个专家就得到绕过人类决定的权限。二、三种拓扑先选最小的一种多智能体不是“角色越多越好”。常见形状有三种。模式谁决定下一步适合什么Supervisor一个中心调度者有统一交付物、需要审计和预算控制的研究任务Hierarchical上级把工作继续委派给下级有稳定部门层级的大型组织流程Swarm对等角色根据消息自行交接开放探索、角色可动态加入的任务本篇选 Supervisor。用户只提出一个研究问题最后也只需要一份答案中心调度者能把轮数上限、取消和持久化条件放在一个看得见的位置。hierarchical 和 swarm 并不更高级它们只是把控制权分散到更复杂的地方。三、共享状态不是共享一切专家应通过小而明确的字段契约协作而不是互相读取提示词或私有变量。classV4ResearchState(TypedDict,totalFalse):question:strdocs:Annotated[list[Doc],operator.add]expert_reports:Annotated[list[ExpertReport],operator.add]next_agent:Literal[researcher,critic,writer,finish]supervisor_turns:intmax_supervisor_turns:intanswer:strdocs是累积的共享证据expert_reports是同样累积的审计记录。报告必须带上作者和建议这样 Supervisor 看见“需要继续研究”时能知道它来自审稿人而不是猜测。长期记忆、thread_id和ResearchContext沿用 v3。它们仍由父图统一管理专家不能另开会话也不能跨过写作节点直接保存研究摘要。四、Supervisor 只分派工作Supervisor 的输出不是自由文本而是受限 JSON。它只可选择四个下一跳并在分派给研究员时给出下一条查询。defsupervisor_node(state:V4ResearchState)-dict[str,object]:responseget_llm().invoke([...])decision_load_json(response.content)next_agentstr(decision.get(next_agent,))ifnext_agentnotin{researcher,critic,writer,finish}:next_agentresearcherifnotstate.get(docs)elsecriticreturn{next_agent:next_agent,assignment:str(decision.get(assignment,)),current_query:str(decision.get(query,))orstate[question],supervisor_turns:state.get(supervisor_turns,0)1,}解析失败不能把图留在原地。示例采用保守回退没有资料就派研究员有资料就交给审稿人。写作员没有资料时也会被改派给研究员避免它用空上下文编答案。图的条件边只读取next_agent。builder.add_conditional_edges(supervisor,route_after_supervisor,{researcher:researcher,critic:critic,writer:writer,finish:finish,},)这让模型负责判断代码负责边界。模型不能靠一句提示词跳进一个未注册节点也不能自行执行持久化。五、专家报告让返工可见研究员完成其内部循环后先写一份报告再回到 Supervisor。审稿人检查全部资料并返回researcher或writer的建议。{agent:critic,summary:缺少不同持久化后端的取舍说明。,recommendation:researcher,}Supervisor 可以据此让研究员带着新的查询再跑一轮。这个返工不是把完整对话记录塞给每个模型而是让下一位专家读共享资料和结构化结论。职责越清楚后续接入来源核验员或合规审查员越不容易把主图改成一团条件分支。六、停止规则属于调度层团队协作特别容易出现“审稿人说还不够研究员又查一点”的无限回合。因此 v4 在父状态上保存supervisor_turns与max_supervisor_turns默认最多五次调度。超过预算时已有资料就交给写作员如实收尾没有资料就进入finish节点明确返回未收集到足够资料。人工拒绝仍由研究员子图返回cancelledSupervisor 立即结束且不会执行persist_memory。七、跑起来代码在src/v4_multi_agent.py。python-msrc.v4_multi_agent首次运行会在研究员的审批点暂停。用相同的thread_id传入Command(resume{action: approve})后图会从嵌套 checkpoint 恢复。演示会检查最终答案和调度次数实际开发还应覆盖审稿返工、预算耗尽和人工拒绝三条路径。到这里研究助手已经会组织一个小团队但它还只是本地 Python 进程。下一篇把这张图注册成服务让客户端能创建会话、提交运行、流式读取结果并在出问题时看到每个专家到底做了什么。赞或收藏 关注 我们下次再见

相关新闻

PTA基础编程题目集 7-14求整数段和(C++语言实现)

PTA基础编程题目集 7-14求整数段和(C++语言实现)

摘要:本文是PTA编程题"求整数段和"的题解,涵盖题目描述、输入输出格式及C语言实现,展示for循环遍历、累加求和与格式化输出方法。题目描述 给定两个整数A和B,输出从A到B的所有整数以及这些数的和。 输入格式&#xff1a…

2026/8/7 8:08:29 阅读更多 →
联想拯救者工具箱终极指南:轻量级硬件控制解决方案

联想拯救者工具箱终极指南:轻量级硬件控制解决方案

联想拯救者工具箱终极指南:轻量级硬件控制解决方案 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 联想拯救者工…

2026/8/6 0:42:20 阅读更多 →
Umi-OCR完整指南:免费开源的离线OCR文字识别软件终极教程

Umi-OCR完整指南:免费开源的离线OCR文字识别软件终极教程

Umi-OCR完整指南:免费开源的离线OCR文字识别软件终极教程 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国…

2026/8/6 0:41:20 阅读更多 →

最新新闻

55-首页顶部告警流与通知条交互:为什么实时告警不应只躺在后台列表里

55-首页顶部告警流与通知条交互:为什么实时告警不应只躺在后台列表里

适合对象:关注实时提醒、全局通知体验、告警触达设计的前后端工程师和平台工程师。 先说结论 首页顶部告警流与通知条交互不是一个孤立功能,而是精准测试平台里帮助团队做判断的一环。 它重点解决的是:为什么实时告警不应只躺在后台列表里。 用大白话讲,监控和告警要帮用…

2026/8/7 8:07:39 阅读更多 →
草根足球队如何利用混合式AI与AI PC实现低成本科技化训练

草根足球队如何利用混合式AI与AI PC实现低成本科技化训练

1. 项目概述:当草根足球遇上混合式AI 一支草根足球队的故事,听起来似乎和“AI”、“科技”这些词离得很远。球场、汗水、泥泞的草地、简陋的更衣室,这才是我们熟悉的画面。但今天我想分享的,恰恰是这样一个“不搭界”的碰撞。我们…

2026/8/7 8:07:39 阅读更多 →
CentOS 7服务器部署LibreOffice:无头模式自动化文档处理实战指南

CentOS 7服务器部署LibreOffice:无头模式自动化文档处理实战指南

1. 项目概述:为什么要在CentOS 7上安装LibreOffice? 如果你在Linux服务器上工作,尤其是像CentOS 7这样的企业级发行版,可能会觉得桌面办公软件离你很远。但实际情况是,服务器环境下的文档处理需求无处不在&#xff1a…

2026/8/7 8:07:39 阅读更多 →
Palworld存档编辑器:专业级开源工具实现游戏数据双向转换与深度定制

Palworld存档编辑器:专业级开源工具实现游戏数据双向转换与深度定制

Palworld存档编辑器:专业级开源工具实现游戏数据双向转换与深度定制 【免费下载链接】palworld-save-tools Tools for converting Palworld .sav files to JSON and back 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools 你是否曾经想要调…

2026/8/7 8:07:39 阅读更多 →
零代码微调本地大模型:基于LLaMA-Factory与Ollama的实战指南

零代码微调本地大模型:基于LLaMA-Factory与Ollama的实战指南

1. 项目缘起:为什么我要尝试“无代码”微调本地大模型? 最近几个月,我身边不少做产品、运营甚至设计的朋友,都开始跟我打听怎么才能“驯服”一个属于自己的大语言模型。他们的需求很具体:想用公司内部的客服对话记录&a…

2026/8/7 8:07:39 阅读更多 →
航空领域半实物仿真测试解决方案

航空领域半实物仿真测试解决方案

2026/8/7 8:06:38 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →