Sub-Agent VS Agent Team:多智能体架构和上下文边界

news2026/4/29 19:25:07
最近被问最多的一个问题是关于多智能体怎么搭。问题大同小异要不要拆拆几个谁主谁副要不要再来一个 lead我自己听到这种问题第一反应通常是先不答。因为大多数情况下问的人已经默认了一件事任务复杂所以应该多 Agent。这个默认恰恰就是问题最常出错的地方。读 Suryansh Tiwari 那条帖子的时候我对一句话特别有共鸣真正决定架构的不是要不要多 Agent而是这个任务到底需要哪种协作。听起来像废话但落到工程里区别非常具体。一个团队选错了协作方式模型再强也救不回来选对了单个 Sonnet 也能把活干得很干净。今天我想沿着这条线把多智能体的两种主形态——Sub-Agent 和 Agent Team——讲清楚。再往下走一层把我自己这两年踩过的几个典型坑连起来说一说。太长不看如果只能记一句我会这样讲多智能体架构里最先该判断的不是要拆几个而是这些子任务之间是否共享同一段上下文。能干净切开的用 Sub-Agent必须共享状态的才上 Agent Team。几个我现在比较有体感的点• 大多数多 Agent 系统搭歪了不是因为模型不够强是从第一层就按岗位在拆而不是按上下文边界在拆。• Sub-Agent 解决的是隔离、压缩、并行。它的价值不是多开一个 Agent而是把混乱的探索过程压成一个干净的结论。• Agent Team 解决的是持续协作和共享状态。它适合那种前一个人改完后面所有人都要立即知道的任务。• 把按角色拆 Agentplanner→developer→tester当默认套路最容易在每一次 handoff 里掉信息。质量不是被一次性砸坏的是在交接里慢慢漏光的。• 大多数生产级多 Agent 系统真正用到的就那几个原语prompt chaining、routing、parallelization、orchestrator-worker、evaluator-optimizer。名字越花哨的team / swarm / crew越容易掩盖建模本身没做完的问题。• 落到选型上我会先反问自己一句把这两个子任务交给同一个 Agent 一次性干会不会更省心如果答案是会那就别拆。大多数多 Agent 系统是被岗位思维搭歪的先说一个在团队里反复见到的画面。有人接到一个稍微复杂点的任务比如帮我审一遍这段认证模块的代码。第一反应不是去拆任务本身而是去拆角色• 一个 Planner负责定方案• 一个 Developer负责改代码• 一个 Tester负责跑测试• 再来一个 Reviewer负责最后把关。讲故事很顺PPT 也画得漂亮。但只要你真把这套接到 Claude 或者任何 LLM 后面跑一遍就会发现一个很尴尬的现象每一次交接信息都在变薄。Planner 知道这块代码之前刚被重构过所以某个看似奇怪的判断其实是有原因的可这条上下文没传到 Developer。Developer 在改的时候做了几个临时取舍比如这次先不改 token 校验顺序因为会影响下游的 SSO可这层取舍也没沉淀下来。到了 Tester它拿到的就是一份相对干净的代码外加一个干瘪的描述。它能跑测试但跑不出这次改动到底有没有踩到原有约束。最后 Reviewer 看到一个看起来都过了的结果心里反而更没底。这不是模型不够聪明这是组织方式从一开始就搭错了。岗位是按人类公司的分工切的但 LLM 不是真人它没有上下班没有共享的茶水间记忆也没法靠上次开会聊过来补齐信息。它能拿到什么上下文就只能基于什么上下文做事。所以原文里有一句我特别想转给所有刚开始做 Agent 编排的人Design around context boundaries, not roles.不要按角色设计要按上下文边界设计。这句话很短但翻译成工程语言是要重新问一遍• 这两件事需不需要看到对方的中间过程• 这两件事会不会因为对方做完了某一步就影响自己下一步• 如果交给同一个 Agent 一次性做完会不会更省心如果答案都偏向是那它们本来就该在一个 Agent 里强行拆只是把成本转嫁给沟通层。我们前些日子也讨论过类似的情况可以看看《多 Agent 不是虚拟公司从 Anthropic 五种模式看信息流怎么设计》Sub-Agent解决隔离 压缩 并行不是多开一个就更智能把上面这层想清楚之后再来看 Sub-Agent 才比较顺。Sub-Agent 的本质不复杂。它就是父 Agent 把一段定义清楚的工作扔出去子 Agent 在自己的独立上下文里跑完把结论——注意是结论不是推理过程——回收回来。它的几个硬约束很值得记住• 子 Agent 之间不能直接通信• 子 Agent 不能再生新 Agent• 所有流量必须经过父 Agent• 跑完只返回最终输出不带中间思考。这些约束乍一看像在限制能力其实是在保证可控性。我自己理解 Sub-Agent更愿意把它看成三件事的组合第一隔离。 子任务在自己的上下文里跑不会把一堆中间探索污染父上下文。这点对长任务特别关键。父 Agent 的上下文窗口是宝贵资源你不希望 it 被一堆我先看看、再翻翻、又试试的中间步骤撑满。第二压缩。 子任务返回的不是过程是结论。它把一段乱糟糟的探索压成一句干净的信号。这跟我之前聊 Skills 时讲的过程资产思路是一致的——真正值钱的不是中间想了什么是最后留下了什么可复用的判断。第三并行。 既然子 Agent 之间互不通信那它们就可以放心地并发跑。代码审查里让一个 Agent 看安全、一个 Agent 看性能、一个 Agent 看测试覆盖率三个并行跑完再汇总比串行串到天荒地老划算得多。原文里的那段示例代码其实就是这种模式from claude_agent_sdk import query, ClaudeAgentOptions, AgentDefinition async def main(): async for message in query( promptReview the authentication module for issues, optinotallowClaudeAgentOptions( allowed_tools[Read, Grep, Glob, Agent], agents{ security-reviewer: AgentDefinition( descriptinotallowFind vulnerabilities and security risks, promptYou are a security expert., tools[Read, Grep, Glob], modelsonnet, ), performance-optimizer: AgentDefinition( descriptinotallowIdentify performance bottlenecks, promptYou are a performance engineer., tools[Read, Grep, Glob], modelsonnet, ), }, ), ): print(message)这里有一个很容易被忽略的细节description 字段。它表面上像注释本质上是路由信号。父 Agent 怎么把任务分给哪个 Sub-Agent靠的就是这一段描述。写得含糊路由就含糊写得边界清楚分发也清楚。Sub-Agent 的 description 就是这个原则在编排层的延伸。Agent Team解决持续协作不是看起来更高级接下来才轮到 Agent Team。图片如果说 Sub-Agent 像把一段任务外包出去做完拿结果走人那 Agent Team 更像一个长期在一起干活的小组有 Lead、有队员、有共享的任务板谁动了什么大家都立刻看得到。它的几个关键差异• 上下文是共享的不是各管各的• Agent 之间可以直接对话不用都经过父级中转• 任务有持续的状态层进度、依赖、阻塞点都在上面挂着• 一个 Agent 改了什么会影响另一个 Agent 的下一步动作。这种结构适合什么适合那种做着做着会发现问题然后需要互相调头的任务。最典型的例子就是软件项目本身前端改了接口契约后端要立刻知道测试发现某个用例挂了开发要能即时拿到失败上下文产品发现需求理解错了整个链路要回退一步。这种场景里靠父代理统一中转是跑不动的等父代理把信息一层一层传下去黄花菜都凉了。但也正因为如此Agent Team 的成本远高于 Sub-Agent。它需要一个共享状态层不是简单的内存共享是要能处理冲突、可见性、版本化的那种它需要节点间的通信协议它需要一个 Lead Agent 来仲裁分歧、推动进度、识别阻塞它出错时调试链路也长得多因为问题可能不在某一个节点而在节点之间的协作上。我看到很多团队的问题恰恰是反过来的本来该用 Sub-Agent 的简单并行任务被强行套上了team / crew / swarm的概念最后跑出来的不是协作是噪音。所以选型上我有一句很土的口诀任务不互相依赖就别上 team任务必须互相依赖就别用 sub。听起来像废话但实际项目里能踩稳这条线的已经能避开 90% 的坑。让我反复想起来的是几种朴素的编排原语读完原文我自己有一个挺解气的感受作者没有把多 Agent 写成二选一神话。图片Sub-Agent 和 Agent Team 是两种结构没错但生产里真正在用的其实就那几个反复出现的原语1. Prompt Chaining顺序串A 做完给 BB 做完给 C。简单线性任务最常用比如先抽取 → 再翻译 → 再润色。2. Routing路由根据任务特征把它派给最合适的 Agent。客服系统里那种先识别意图再分流的逻辑本质上就是这个。3. Parallelization并行互不依赖的任务一起跑最后汇总。代码审查、文档多维度分析都是这个家族的。4. Orchestrator–Worker调度-执行一个 orchestrator 拆任务、派任务、收结果workers 各自闷头干。这个其实就是 Sub-Agent 的标准形态。5. Evaluator–Optimizer评估-优化先生成、再评估、再迭代。需要高质量产出的场景特别管用比如生成式报告、代码补全后的自检。这五种里没有任何一个是新东西。它们都是工作流里早就存在的模式只是这一波被重新放到了 Agent 编排的语境里。我想强调的一点是多 Agent 不是一个产品形态它是一组可组合的工作流原语。一旦把它当产品形态来理解团队就容易陷入我们也要搞个 team / 我们也要搞个 swarm的攀比。但如果把它当工具箱来理解问题就回到了我这个任务到底拼什么原语最合适。后者才是工程问题前者只是市场问题。一个更实用的判断框架如果让我把这套思路压成一张能贴在工位上的小表大概是这样你在问的问题该考虑的方向这个任务能不能一个 Agent 干完能就先这样别提前优化子任务之间需不需要看到彼此的中间过程不需要 → Sub-Agent需要 → Agent Team子任务跑的时候要不要互相影响不要 → 并行 Sub-Agent要 → Team是不是只是想看起来更高级是 → 退回单 Agent先把任务模型搞清楚每一步要不要严格按业务规则走模型不能自由发挥要 → 加确定性中间层不要硬塞给 team这张表的核心其实就是一句话先把任务结构搞清楚再决定 Agent 结构。 不要反过来。图片我之前讲 Harness 的时候也聊过类似的判断模型越强外面的脚手架越重要。多 Agent 编排是脚手架的一部分但它不是脚手架本身。一上来就堆编排常常意味着任务建模没做完。什么时候根本不需要多 Agent最后必须留一段给反向决策。不是所有任务都需要多 Agent。事实上我现在判断要不要上多 Agent 的第一个问题是单个 Agent 能不能干完只要这个答案是能且体感不差就别折腾。多 Agent 带来的并不只是性能收益还有一长串隐藏成本• 编排逻辑要写、要维护、要监控• Agent 之间的契约要定义、要版本化• 调试链路变长问题定位成本上升• 上下文要在多个 Agent 间一致地流转否则就会出现信息差导致动作错的怪 bug• 治理成本审计、回滚、计费跟着翻倍。我个人的经验是当任务高度依赖、协调成本远大于收益或者上下文压根没法切干净的时候单 Agent 反而是最稳的选择。很多人觉得这是退而求其次我倒不这么看。一个能跑通、能调试、能持续迭代的单 Agent比一个看起来很热闹但谁都说不清在做什么的多 Agent 体系要更接近真的在解决问题。最后写到这里我自己其实是在给多智能体架构做一次降温。这一波 Agent 热名词太多、范式太多、架构图太多。Team、Swarm、Crew、Society、Hive……每隔两周就有一个新词冒出来。但回到工程其实只有一个最朴素的问题我手上这个任务要的是隔离、压缩、并行还是要的是持续协作、共享状态、互相影响前者用 Sub-Agent后者用 Agent Team两者都不要的时候直接单 Agent。再往上配一两个朴素的编排原语多数生产场景就够了。如果非要给今天的讨论加一句结尾我会借作者那句话再说一遍围绕上下文边界设计而不是围绕角色设计从简单结构开始只在确定需要时再加复杂度。听起来像句鸡汤。但只要你真做过几次多 Agent 编排应该都能感受到这句话背后那一层一层的代价。少一点看起来更高级多一点任务真的需要比什么都管用。说到底架构这件事一直没什么银弹。没有最好的架构只有最适合当前任务的架构。软件工程里这条老话搬到 Agent 世界一样成立——甚至更成立因为 Agent 把协作成本这件事放大得更明显了。一个团队、一个任务、一段时期合适的结构可能就是不一样的。今天用 Sub-Agent 跑得很顺过半年业务长出新依赖可能就要换成 Team反过来也成立原本以为非协作不可的流程把任务模型拆清楚之后单 Agent 就够。所以与其把 Sub-Agent 和 Agent Team 当成两个标签去站队不如把它们当成两种工具按需取用。架构不是越精巧越好是越能匹配你手上这件事越好。学习资源推荐如果你想更深入地学习大模型以下是一些非常有价值的学习资源这些资源将帮助你从不同角度学习大模型提升你的实践能力。一、全套AGI大模型学习路线AI大模型时代的学习之旅从基础到前沿掌握人工智能的核心技能​因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取二、640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示​因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取三、AI大模型经典PDF籍随着人工智能技术的飞速发展AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型如GPT-3、BERT、XLNet等以其强大的语言理解和生成能力正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取四、AI大模型商业化落地方案作为普通人入局大模型时代需要持续学习和实践不断提高自己的技能和认知水平同时也需要有责任感和伦理意识为人工智能的健康发展贡献力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2566436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…