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

介绍一下多 Agent 如何实现工作?多个 Agent 之间如何协调和分工?

1. 题目分析一个 Agent 能做的事情终归有限。当你试图让单个 Agent 去完成一个真正复杂的任务——比如从零开始做一次完整的市场调研并输出 PPT 报告——你会发现它要么因为上下文窗口塞满而失忆要么因为角色定位太泛而每一步都做得半吊子。这就像让一个人同时当产品经理、数据分析师、设计师和文案不是不能做而是每个环节都很难做到专业水准。多 Agent 系统的核心思想就是从这里来的与其造一个无所不能的超级 Agent不如让多个各有专长的 Agent 组成团队协作完成任务。这跟我们后台的微服务思想一脉相承——单体应用拆成多个服务每个服务职责单一、独立演进、通过接口协作。理解多 Agent 系统需要把三个层面想清楚架构模式决定了谁来管谁任务分配决定了谁干什么通信机制决定了怎么说话。下面逐一拆解。1.1 多 Agent 系统的架构模式多 Agent 系统的架构本质上在回答一个管理学问题多个执行单元之间应该是什么样的组织关系实践中主要有三种模式每种模式适合不同的任务特征。第一种是中心化编排模式Orchestrator Pattern。这是目前工业界最常用的架构。有一个总指挥Agent通常叫 Orchestrator 或 Supervisor它负责理解用户意图、将任务拆解成子任务、分配给对应的 Worker Agent 执行、收集结果并汇总输出。Worker Agent 之间一般不直接通信所有信息流都经过 Orchestrator 中转。这种架构的好处是控制流清晰、容易调试出了问题你只需要看 Orchestrator 的决策日志就能定位是分配错了还是某个 Worker 执行失败了。但瓶颈也很明显——Orchestrator 本身就是一个 LLM它的决策质量决定了整个系统的上限。如果 Orchestrator 理解错了用户意图或者把子任务分配给了不合适的 Worker后面做得再好也是白搭。另外当 Worker 数量多了之后Orchestrator 的 prompt 里要塞下所有 Worker 的能力描述上下文压力会很大。第二种是去中心化协作模式Decentralized/Peer-to-Peer Pattern。没有总指挥每个 Agent 都是平等的。Agent 之间通过某种协议直接对话轮流发言各自根据对话上下文判断自己该不该做点什么。AutoGen 早期的 GroupChat 就是这种模式的典型——你把几个 Agent 丢进一个聊天室它们自己讨论最终收敛出一个结果。这种模式的优势在于灵活特别适合需要多角度碰撞的场景比如代码审查一个 Agent 写代码、一个 Agent Review、一个 Agent 写测试。但它有一个严重的工程问题对话容易发散收不住。没有人拍板的会议最容易开成漫谈会Agent 之间的对话也是一样。你经常会看到几个 Agent 来回客气了十几轮都没有实质进展或者在某个细枝末节上争论不休。控制对话轮次、设置终止条件、防止死循环是这种架构的核心工程挑战。第三种是分层架构模式Hierarchical Pattern。这是前两种的折中和升级。顶层有一个高层 Manager Agent 做战略级的任务分解它不直接分配给末端 Worker而是分配给中层的 Team Lead Agent每个 Team Lead 再负责管理自己团队内的几个 Worker。这就像一个公司的组织架构——CEO 管 VPVP 管 DirectorDirector 管工程师。分层架构的核心优势在于可扩展性。当系统需要接入几十个甚至上百个 Agent 时单层的 Orchestrator 根本管不过来但通过分层每一层的管理幅度都可以控制在合理范围内。LangGraph 中的 Supervisor 嵌套、CrewAI 中的 hierarchical process 都支持这种模式。1.2 任务分配架构决定了组织关系但具体某个任务应该交给谁来做这是另一个需要解决的问题。多 Agent 系统的任务分配策略大致可以分成三类。静态预定义分配是最简单直接的方式。在系统设计阶段就固定好每个 Agent 的角色和职责边界运行时 Orchestrator 根据预设规则来路由任务。比如在一个客服系统里退款问题永远走退款 Agent技术故障永远走技术 Agent。这种方式实现简单、行为可预测适合业务流程固定的场景。CrewAI 的 sequential process 本质上就是静态分配——你在定义 Crew 的时候就把每个 Task 和 Agent 绑定好了执行时按顺序走。动态路由分配则是让 Orchestrator 自己判断。Orchestrator 拿到用户的请求后基于对请求内容的理解和对各个 Worker 能力描述的匹配动态决定分配给谁。这需要 Orchestrator 有比较强的意图识别能力也需要每个 Worker Agent 的能力描述写得清晰准确——这和 Function Calling 中工具描述的重要性是一回事。LangGraph 中的 Supervisor Agent 通常就是这个角色它通过 LLM 推理来做路由决策。动态路由的难点在于模糊地带。有些请求可能同时匹配多个 Agent 的能力范围比如帮我分析这段代码的性能问题并给出优化建议——这该交给代码分析 Agent 还是性能优化 Agent实践中常见的做法是给 Agent 的能力描述加上更精确的边界说明或者允许多个 Agent 协同处理同一个子任务。第三种是竞争/竞标机制。这种方式借鉴了经济学中的市场机制——Orchestrator 把任务像招标一样发出去各个 Agent 根据自己的能力和当前负载报价Orchestrator 选择最合适的中标者。这在大规模分布式系统中偶有应用但在目前的 LLM 多 Agent 场景中还比较少见主要因为报价这个环节本身就需要额外的 LLM 调用增加了延迟和成本。1.3 通信机制多 Agent 系统中Agent 之间传递信息的方式直接影响协作效率和系统可靠性。不同框架在这个问题上做出了不同的设计选择。共享消息列表Shared Message List是最基础的方案。所有 Agent 共享一个全局的聊天记录每个 Agent 发言时都能看到之前所有人的发言。AutoGen 的 GroupChat 就是这种模式。优点是实现简单、信息完全透明缺点是当 Agent 数量多、对话轮次长的时候每个 Agent 的输入 prompt 里要塞下所有历史消息上下文窗口会很快撑满。定向消息传递Directed Messaging更精细。Agent 之间只传递和对方职责相关的信息而不是把所有聊天记录都广播出去。比如搜索 Agent 执行完毕后只把搜索结果传给分析 Agent不需要让写作 Agent 看到原始搜索日志。LangGraph 中的 State Graph 本质上就是这种模式——每个节点Agent从共享的 State 中读取自己需要的字段处理后把结果写回 State 的对应字段不同 Agent 之间通过 State 的字段来传递信息而不是通过原始的消息列表。黑板模式Blackboard Pattern是定向传递的进一步演化。有一个全局的黑板可以理解为一个结构化的共享状态空间每个 Agent 往黑板上写自己的产出也从黑板上读自己需要的输入。黑板上的数据是结构化的不是自由文本的聊天记录比如有搜索结果字段、分析结论字段、报告草稿字段等。这种模式的好处是信息组织清晰、减少了冗余传递坏处是需要预先定义好黑板的数据结构灵活性受限。还有一种在复杂系统中越来越常见的模式是工具化调用Agent-as-Tool。一个 Agent 不直接和另一个 Agent对话而是把另一个 Agent 包装成一个工具来调用——就像调用 API 一样传入参数、获取返回值。这种方式的好处是接口清晰、解耦彻底每个 Agent 的输入输出格式是确定的调试和测试都很方便。OpenAI 的 Swarm 框架和 LangGraph 中的 subgraph 调用都借鉴了这种思路。1.4 实际框架中的实现理论讲完了落到实际框架里是什么样的LangGraph的多 Agent 实现最为灵活。它把 Agent 协作建模为一个状态图State Graph——每个 Agent 是图中的一个节点边定义了控制流的走向可以是条件分支所有节点共享一个全局 State。Supervisor 模式下有一个 Supervisor 节点负责路由决策它根据当前 State 决定下一步该把控制权交给哪个 Worker 节点。Worker 处理完后把结果写回 State控制权回到 Supervisor如此循环直到任务完成。这种基于状态图的设计使得你可以精确控制 Agent 之间的协作流程包括条件分支、并行执行、循环重试等复杂模式。AutoGen微软走的是对话驱动的路线。它的核心抽象是 ConversableAgent——每个 Agent 都是一个可以参与对话的实体。多 Agent 协作通过 GroupChat 实现你定义好参与的 Agent 列表和发言选择策略轮流、随机、或由一个 GroupChatManager 来选Agent 们在聊天室里交替发言来推进任务。AutoGen 的新版本引入了更结构化的编排能力但其核心哲学仍然是通过对话来协作。CrewAI则偏向高层抽象。你定义 Agent角色目标背景故事、Task任务描述期望输出、然后组成一个 Crew。Crew 支持 sequential任务按顺序流转和 hierarchical有一个 Manager Agent 做动态分配两种执行模式。CrewAI 屏蔽了大量底层细节上手很快但灵活性不如 LangGraph。1.5 工程落地思考多 Agent 系统在工程落地时会遇到一些单 Agent 不存在的特有问题值得在面试中主动提及。错误传播与容错。多 Agent 是一个链式系统上游 Agent 的错误输出会成为下游 Agent 的错误输入。比如搜索 Agent 返回了不相关的结果分析 Agent 基于这些垃圾数据做出了错误的结论写作 Agent 又把错误结论写进了报告——层层放大。工程上需要在 Agent 之间设置质量关卡对每个 Agent 的输出做校验不合格就打回重做或者触发兜底策略。成本控制。多 Agent 意味着多次 LLM 调用再加上 Agent 之间的通信开销传递上下文总 token 消耗可能是单 Agent 的数倍。实践中通常会做分级处理——简单的子任务用小模型如 GPT-4o-mini复杂的子任务才上大模型对于可以并行的子任务尽量并行执行以降低总延迟。Agent 数量的度。Agent 不是越多越好。每增加一个 Agent系统的协调开销就增加一分出错的可能性也增加一分。经验上来说一个多 Agent 系统中 3-5 个 Agent 是比较常见的规模超过 7-8 个就需要认真考虑是否引入分层架构。如果你发现某个 Agent 的职责其实可以用一个工具调用来替代那就没必要单独做成 Agent。2. 参考回答多 Agent 系统的核心思路是把一个复杂任务拆分给多个各有专长的 Agent 协作完成而不是让一个 Agent 包揽所有事。要理解多 Agent 怎么工作我通常从三个维度来讲架构模式、任务分配和通信机制。架构上主要有三种模式。最常用的是中心化编排一个 Orchestrator Agent 负责理解任务、拆解子任务并分配给各 Worker Agent 执行所有信息流都经过 Orchestrator 中转好处是控制流清晰容易调试。第二种是去中心化协作所有 Agent 平等地在一个 GroupChat 中讨论推进适合需要多视角碰撞的场景比如代码审查但对话容易发散需要严格控制终止条件。第三种是分层架构顶层 Manager 分配给中层 Team LeadTeam Lead 再管理 Worker适合 Agent 数量较多的大规模系统。任务分配上简单场景可以在设计时静态绑定——比如退款问题永远走退款 Agent复杂场景需要 Orchestrator 基于意图识别做动态路由这对 Agent 能力描述的精确度要求很高和 Function Calling 中工具描述的重要性是一样的。通信机制上从简单到精细依次有共享消息列表、定向消息传递、黑板模式和 Agent-as-Tool。实际工程中我倾向于用 LangGraph 的 State Graph 方案每个 Agent 通过读写共享 State 的特定字段来交换信息既精准又解耦。在工程落地时有几个关键点要注意一是 Agent 之间必须设质量关卡防止错误传播上游的垃圾输出会层层放大二是成本控制简单子任务用小模型、可并行的任务并行执行三是 Agent 数量不是越多越好能用工具调用替代的就不要单独做成 Agent一般 3-5 个是比较合理的规模。学习资源推荐如果你想更深入地学习大模型以下是一些非常有价值的学习资源这些资源将帮助你从不同角度学习大模型提升你的实践能力。一、全套AGI大模型学习路线AI大模型时代的学习之旅从基础到前沿掌握人工智能的核心技能​因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取二、640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示​因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取三、AI大模型经典PDF籍随着人工智能技术的飞速发展AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型如GPT-3、BERT、XLNet等以其强大的语言理解和生成能力正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取四、AI大模型商业化落地方案作为普通人入局大模型时代需要持续学习和实践不断提高自己的技能和认知水平同时也需要有责任感和伦理意识为人工智能的健康发展贡献力量。

相关文章:

介绍一下多 Agent 如何实现工作?多个 Agent 之间如何协调和分工?

1. 题目分析 一个 Agent 能做的事情终归有限。当你试图让单个 Agent 去完成一个真正复杂的任务——比如从零开始做一次完整的市场调研并输出 PPT 报告——你会发现它要么因为上下文窗口塞满而"失忆",要么因为角色定位太泛而每一步都做得半吊子。这就像让…...

别再数据线了!用FastAPI 分钟搭个局域网文件+剪贴板神器颂

为 HagiCode 添加 GitHub Pages 自动部署支持 本项目早期代号为 PCode,现已正式更名为 HagiCode。本文记录了如何为项目引入自动化静态站点部署能力,让内容发布像喝水一样简单。 背景/引言 在 HagiCode 的开发过程中,我们遇到了一个很现实的问…...

运维进阶!Zabbix 高可用集群部署实战指南,从零搭建企业级监控系统

1. 为什么需要Zabbix高可用集群? 在企业生产环境中,监控系统的稳定性直接关系到整个IT基础设施的可观测性。想象一下,当你的监控系统突然宕机,所有服务器、网络设备、应用程序的运行状态瞬间"失明",这种场景…...

轻型民用无人机安全操控指南:法规解读与实践应用

1. 轻型民用无人机法规基础解读 第一次接触无人机时,我和很多新手一样兴奋地想要马上起飞,直到在公园被保安拦下才知道需要遵守飞行规则。现在每次看到新手飞友准备"黑飞",我都会主动提醒他们先了解法规。目前我国对轻型民用无人机…...

环形粘结钕铁硼磁钢单边壁厚可以做成多薄?

大家都知道粘结钕铁硼因其独特的性能被广泛使用在电机、电器等产品中,小编接触磁铁一年多了,在这期间,有不少客户问道,你们粘结钕铁硼单边壁厚最小可以做成多薄?在介绍这个问题前,首先介绍下什么是“单边壁…...

技术管理者必看:程序员考核的痛点与解决方案

作为技术管理者,你是否曾为程序员考核而头疼不已?每年或每季度,当绩效评估季来临,你是否也面临以下困境: 难以客观评估每一位程序员的真实贡献? 考核结果总是引发争议,甚至导致团队不满和人才流…...

Redis持久化:从AOF到RDB,如何实现数据不丢失?耐

Qt是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本笔记将重点介绍QSpinBox数值微调组件的常用方法及灵活应用。…...

西门子S7-威纶通触摸屏一拖三恒压供水全套图纸程序设计

一拖三恒压供水全套图纸程序 威纶通触摸屏 西门子s7-搞过恒压供水项目的都知道,最头疼的不是写程序本身,而是怎么让三台水泵像接力赛一样丝滑切换。今天咱们拆解一个西门子S7-1200搭配威纶通MT8071iE的典型方案,重点看几个关键代码段。系统…...

vue3 父组件向子组件传参

vue3中父组件向子组件传递参数,核心方案是:父组件用 v-bind 绑定数据,子组件用 defineProps 接收数据(组合式 API 语法)。即:v-bind 传 (父) defineProps 收(子&#xff…...

彻底告别OpenClaw使用焦虑:我给他装上了“透视眼”和“批量克隆模组褪

指令替换 项目需求:将加法指令替换为减法 项目目录如下 /MyProject ├── CMakeLists.txt # CMake 配置文件 ├── build/ #构建目录 │ └── test.c #测试编译代码 └── mypass2.cpp # pass 项目代码 一,测试代码示例 test.c // test.c #includ…...

混合储能系统与光储微网Simulink仿真:下垂控制与2021A以上版本的应用

混合储能系统/光储微网/下垂控制/Simulink仿真 注意版本2021A以上!!!! 由光伏发电系统和混合储能系统构成直流微网。 混合储能系统由超级电容器和蓄电池构成,通过控制混合储能系统来维持直流母线电压稳定。 混合储能系…...

Python 批量导出数据库数据至 Excel 文件页

简介 langchain专门用于构建LLM大语言模型,其中提供了大量的prompt模板,和组件,通过chain(链)的方式将流程连接起来,操作简单,开发便捷。 环境配置 安装langchain框架 pip install langchain langchain-community 其中…...

Shell应用手册(一) 3.Linux环境搭建全攻略:虚拟机/云服务器/本地容器三种方式全覆盖

对于程序员、运维工程师或Linux学习者而言,搭建一个稳定、高效的Linux环境是开展工作和学习的基础。目前主流的搭建方式主要有三种:虚拟机(适合本地学习练手)、云服务器(适合线上部署、远程访问)、本地容器…...

DB1-05S05D 与 B0505D-1WR3 适配性实测|工业电源选型无改板替换指南

在工业控制、仪器仪表、通信设备等场景的电源选型中,DB1-05S05D和B0505D-1WR3两款隔离型DC-DC电源模块,因相同的电压规格与封装形式,均成为工程师的常用选择。两者核心电气参数与应用场景高度契合,均可适配各类常规工业设备的供电…...

STM32上FreeRTOS移植踩坑实录:从SysTick被占用到heap_4.c选择,我的避坑指南

STM32上FreeRTOS移植实战避坑指南:从时钟源选择到内存管理优化 1. 时钟源配置:当SysTick被FreeRTOS占用后 在STM32上移植FreeRTOS遇到的第一个"坑"往往与系统时钟源有关。许多开发者习惯使用SysTick作为系统时钟基准,但在启用FreeR…...

Shell应用手册(一) 4.常见Shell版本(bash、zsh、sh,运维主流bash详解)

在Linux/Unix系统中,Shell是用户与内核交互的桥梁,是执行命令、编写脚本的核心工具。对于运维工程师而言,熟练掌握Shell版本的特性与使用方法,是提升工作效率、实现自动化运维的基础。本文将先梳理最常见的3种Shell版本&#xff0…...

OpenPLC Editor:重新定义工业自动化编程的开源解决方案

OpenPLC Editor:重新定义工业自动化编程的开源解决方案 【免费下载链接】OpenPLC_Editor 项目地址: https://gitcode.com/gh_mirrors/ope/OpenPLC_Editor 在工业自动化领域,传统PLC编程软件往往面临高昂的授权费用、封闭的生态系统和有限的技术支…...

使用Spring AI Alibaba构建智能体Agent卦

背景 在软件开发的漫长旅途中,"构建"这个词往往让人又爱又恨。爱的是,一键点击,代码变成产品,那是程序员最迷人的时刻;恨的是,维护那一堆乱糟糟的构建脚本,简直是噩梦。 在很多项目中…...

filezilla求助

求助各位,filezilla一直这样连接不上,之前是连接成功之后就超时,按网上说的关了防火墙,把设置改为主动,然后禁用超时,就一直这样了,我们老师的源代码和交作业都要用ftp,真没办法了...

华一拼团热度背后:中小商家的「流量狂欢」与「经营基本功」思考

当拼团成为现象,我们该关注什么?近半年来,一种以“低门槛参与、阶梯式激励、复购循环”为核心的拼团模式在商家圈引发讨论。其中,“华一拼团”因快速起量和广泛传播,成为观察中小商家经营心态的一个切口——在获客成本…...

精华贴分享|【实操分享】花了2000块,用AI把A股前600家公司的基本面全筛了一遍

本文来源于量化小论坛策略分享会板块精华帖,作者为皮蛋瘦肉粥,发布于2026年3月20日。以下为精华帖正文:2019年,幻方科技的梁文锋在金牛奖颁奖典礼上说了一段话:"现在量化赚的是技术面流派原来赚的钱,未…...

俄罗斯电商经营风险高?Captain AI为你的出海之路兜底

俄罗斯电商市场的红利很可观,但背后的经营风险也无处不在:平台合规风险、税务稽查风险、外汇管制风险、清关风险、知识产权风险、资金安全风险,任何一个风险点爆发,都可能让你之前所有的努力付诸东流——轻则面临高额罚款、货物没…...

8 年面试实战派导师陈晨:用精准教学,帮你叩开公职上岸之门

一、讲师简介:深耕面试教学 8年,全领域实战专家陈晨老师是初心教育核心面试讲师,拥有8年一线面试授课经验,精通国考、省考、事业单位、银行等全品类面试的研发与教学,是学员口中 “靠谱、专业、提分快” 的面试领路人。…...

从零到精通:我的泛微Ecology9二次开发实战笔记(含JS开发避坑指南)

从零到精通:我的泛微Ecology9二次开发实战笔记(含JS开发避坑指南) 第一次接触泛微Ecology9时,面对庞大的系统架构和复杂的二次开发文档,我像大多数新手一样感到无从下手。经过半年多的实战摸索,从环境搭建到…...

旧衣堆积如山?爱裹回收免费上门,半小时搞定!

换季大扫除的时候,你是不是也经常遇到这样的烦恼:衣柜爆满、旧衣服不知道怎么处理、搬下楼太累、也不知道该扔到哪里?这些问题现在都有一个简单又高效的解决方案——爱裹回收。一句话总结它的最大亮点:免费上门 全品类 快速响应…...

从‘轮胎压力传感器’到‘魔数饼干’:手把手拆解SOME/IP协议栈的五个核心通信模型

从轮胎压力到魔数饼干:SOME/IP协议栈五大通信模型实战解码 1. 引言:当汽车电子遇上分布式通信 想象一下,你驾驶的现代汽车正以每小时100公里的速度飞驰,此时轮胎压力监测系统突然检测到右前轮气压异常。这个信号需要以毫秒级速度传…...

告别理想模型!手把手教你用ADS导入村田DesignKits,让仿真贴近真实PCB

告别理想模型!手把手教你用ADS导入村田DesignKits,让仿真贴近真实PCB 射频工程师小张最近遇到了一个棘手的问题:他在ADS中精心设计的低通滤波器,仿真结果完美符合指标,但实际打板测试时性能却大打折扣。这个困扰无数硬…...

基于YOLOv5和Python开发的中国交通标志识别系统,可识别45种交通标志,识别率高

基于YOLOv5和Python开发的中国交通标志识别系统,可识别45种交通标志,识别率高 最近在研究交通标志识别,发现了一个基于YOLOv5和Python开发的中国交通标志识别系统,效果相当不错。这个系统可以识别45种交通标志,而且识…...

如何给 Go 语言的 TCP 聊天服务加上 ACK 可靠送达机制

如何给 Go 语言的 TCP 聊天服务加上 ACK 可靠送达机制 在我们学习 Go 语言网络编程时,实现一个简单的 TCP 聊天室往往是入门的必经之路。原项目8h-GoIM通过建立 TCP 连接并将接收到的文本广播给所有在线用户,非常直观地展示了 Go 语言在并发和通道设计上…...

【万字文档+源码】基于springboot与vue个人财务管理系统-计算机设计学习项目

基于springboot与vue个人财务管理系统1.项目简介 基于springboot与vue个人财务管理系统管理员功能有个人中心,用户管理,账单类型管理。用户功能有个人中心,收入账单管理,支出账单管理,负债管理,财务报表管理…...