单代理架构:为什么不用多 Agent 协作
Archon Protocol 的核心选择——一个 Agent 做所有事,内部 Skill 是工具而非同事。
一、起点:一个反直觉的问题
软件行业几十年的经验告诉我们:复杂系统需要分工协作。微服务、团队拆分、DevOps——一切都在强调"专人专事"。
那 AI 编程是不是也应该这样?一个 Agent 写代码、一个 Agent 做审计、一个 Agent 跑测试、一个 Agent 做部署,然后让它们"协作"?
Archon Protocol 的答案是:不。
理由很简单——
连人都可以独立完成全栈研发、架构设计、产品思维和运维部署,一个 Agent 难道不能自己做到吗?
一个优秀的全栈工程师不需要四个人帮他分工。他写完代码会自己跑测试,自己审查,自己部署。他不需要"协作协议"和"消息传递"——所有决策在同一个大脑中完成,目标天然一致。
AI Agent 也一样。
二、多 Agent 协作的根本问题
问题 1:目标一致性无法保证
多个 Agent 各自有独立的上下文窗口和指令集。即使你给每个 Agent 相同的"项目目标",它们对目标的理解和优先级排序不可能完全一致。
Agent A(编码):优先实现功能,代码风格次要
Agent B(审计):代码风格最重要,功能是否完整不关心
Agent C(测试):只关注覆盖率,不关心代码是否可维护
结果:三个 Agent 在三个方向上拉扯,最终产物是妥协,不是最优解。一个人类全栈工程师不会有这个问题——他同时理解功能、质量和可维护性,在编码的每一步同时权衡三者。
单 Agent 也是如此。当一个 Agent 同时承担实现和审计的职责时,它在写代码的那一刻就已经在考虑"这段代码审计时会不会有问题"。预防优于修复。
问题 2:上下文在传递中丢失
多 Agent 系统的致命伤:Agent A 把任务交给 Agent B 时,必须把上下文序列化为文本。
Agent A 知道的:
- 为什么选择方案 X 而不是方案 Y
- 哪些尝试失败了
- 代码中哪些地方是刻意的权衡
- 用户需求的隐含意图
Agent A 传递给 Agent B 的:
"我实现了功能 Z,请审计。"
Agent B 实际收到的上下文:不到 Agent A 的 10%这就是电话游戏效应——信息在每次传递中衰减。三个 Agent 传递两次,最终 Agent 可能在审计一个它完全不理解设计意图的代码。
单 Agent 不存在这个问题。从需求理解到代码实现到自审修复,所有决策上下文都在同一个上下文窗口中,零信息损失。
问题 3:协调成本吞噬收益
多 Agent 需要:
| 协调机制 | 成本 |
|---|---|
| 消息格式定义 | 设计 + 维护 |
| 任务分配策略 | 谁做什么?冲突怎么办? |
| 结果合并逻辑 | Agent A 和 B 意见不同怎么办? |
| 错误传播处理 | Agent B 失败了,Agent A 要重来吗? |
| 顺序依赖管理 | 审计必须等编码完成,测试必须等审计完成 |
| 状态同步 | Agent C 修了 bug,Agent A 知道吗? |
这些协调成本是固定开销——无论任务大小都要付出。对于大多数日常开发任务(一个功能、一个修复、一个重构),协调成本可能超过任务本身的复杂度。
人类团队用 Jira、Slack、Code Review 来管理这些开销,而且仍然经常出现沟通失误。AI Agent 的"协作协议"不会比人类的更可靠。
问题 4:责任稀释
多 Agent 场景:
代码有 bug → 是编码 Agent 的问题?还是审计 Agent 没审出来?还是测试 Agent 覆盖不全?
→ 没有明确的责任归属
→ 没有一个 Agent 有动力去"彻底"解决
单 Agent 场景:
代码有 bug → 就是这个 Agent 的问题
→ 它在自审阶段就必须找到并修复
→ 无处甩锅责任归属清晰是质量的前提。一个 Agent 对整个交付负全责,它没有理由敷衍任何一个阶段。
三、那 Archon Protocol 的"内部 Skill"是什么?
Archon Protocol 确实有内部 Skill:self-auditor、test-runner、verifier。这不是矛盾吗?
不矛盾。内部 Skill 是工具,不是同事。
类比人类:
| 多 Agent 协作 | Archon Protocol 内部 Skill | |
|---|---|---|
| 人类类比 | 四个工程师组队,各负责一块 | 一个工程师用 IDE、终端、调试器 |
| 关系 | 平级协商 | 主从调用 |
| 决策权 | 各自决策,需要协调 | 主 Agent 决策,Skill 执行 |
| 上下文 | 各自独立,需要同步 | 主 Agent 掌握全局 |
| 冲突 | 需要仲裁机制 | 不存在——主 Agent 说了算 |
当 /demand 调用 self-auditor skill 时:
- 主 Agent 决定何时需要审计(它掌握全局上下文)
- 主 Agent 按 skill 定义的流程执行审计(明确范围和目标)
- Skill 提供结构化的审计步骤(专注,不混入实现逻辑)
- Skill 产出审计报告
- 主 Agent 决定如何处理结果(接受、忽略、修改)
内部 Skill 没有决策权。它是一把螺丝刀,不是一个同事。你不会和螺丝刀"协商"要不要拧紧螺丝。
四、为什么需要内部 Skill(而不是全部在主 Agent 中做)
既然是单 Agent 架构,为什么还要拆分为多个 Skill?为什么不在一个巨大的 Skill 中完成一切?
一个字:上下文窗口。
LLM 的上下文窗口是有限资源(截至 2026 年,通常 128K-200K token)。一个完整的 Demand 循环中:
主 Agent 上下文:
- 用户需求的理解
- 已修改的代码
- 架构上下文
- 规则约束
→ 已经消耗大量 token
如果自审也在同一窗口:
- 扫描所有规则的禁止项
- 搜索所有修改文件
- 分析每个文件的每条禁止项
→ 上下文窗口溢出,前面的信息被"挤出"注意力范围拆分 Skill 解决的是认知聚焦问题,不是分工问题:
- 主 Agent 保持对全局的掌握
- 每个内部 Skill 定义了一件事的标准流程(审计、测试)
- 结果由主 Agent 统筹决策
这就像一个全栈工程师用多显示器:一个屏幕写代码,一个屏幕看测试结果,一个屏幕看日志。不是三个人在协作——是一个人在用多个工具。
五、反驳:"一个总 Agent + 多个专家 Agent"不就行了吗?
这是最常见、也最有力的反驳:
"不是让 Agent 平级协商,而是像传统团队一样——一个 Tech Lead Agent 做最终决策,编码 Agent、测试 Agent、审计 Agent 各司其职,向 Lead 汇报。这不就解决了目标一致性和责任归属的问题吗?"
表面上看,这模型完美复刻了人类高效团队的运作方式。但仔细分析,它在 AI 场景下有三个致命缺陷。
缺陷 1:总 Agent 的"二手信息"困境
人类 Tech Lead 能有效决策,因为他曾经亲手写过代码。他能一眼看穿代码设计的深层意图,因为他有多年亲身实践的隐性知识。
但 AI 的"总 Agent"不是这样运作的:
编码 Agent 写了 500 行代码
↓
总结为 50 行报告交给总 Agent
↓
总 Agent 基于 10% 的信息做"最终决策"
问题:
- 为什么选方案 A 而不是方案 B?报告没写。
- 这个 workaround 是被迫的还是偷懒?报告看不出。
- 这段代码和项目其他模块的耦合风险?编码 Agent 没提。
- 总 Agent 能发现报告里没提到的问题吗?不能——它没读过代码。总 Agent 的决策质量受限于子 Agent 的汇报质量。 但如果子 Agent 有能力写出一份完美的汇报——覆盖所有权衡、所有风险、所有替代方案——那它已经具备了自己做决策的能力。
这引出了核心悖论。
缺陷 2:能力悖论——如果总 Agent 够强,它不需要团队
场景 A:总 Agent 能力不够强
→ 无法有效评估子 Agent 的工作
→ "最终决策"变成"橡皮图章"——总 Agent 只是批准它无法理解的结果
→ 等于没有决策
场景 B:总 Agent 能力足够强
→ 它能理解代码、评估测试、判断架构
→ 那它为什么不直接写代码?
→ 让它做"管理者"是浪费它最强的能力在人类团队中,Tech Lead 不亲自写所有代码是因为人类有体力上限——一个人每天有效编码时间不超过 6 小时。分工是因为生理约束,不是因为分工本身更优。
AI 没有体力上限。 它不需要吃饭、睡觉、开会。如果它有能力做 Tech Lead,那它也有能力直接做全栈——而且做得更好,因为它拥有第一手的完整上下文。
让一个足够强的 Agent 去"管理"而不是"做",是对能力的浪费。
缺陷 3:人类团队模型的类比谬误
把人类团队结构套到 AI 上,忽略了两个根本差异:
| 人类团队 | AI 多 Agent | |
|---|---|---|
| 分工原因 | 生理限制(体力、注意力、时间) | 不存在——Agent 无疲劳 |
| 专业化收益 | 巨大——人脑学习成本高,专精一个领域效率高 | 几乎为零——同一个 LLM 本身就是全栈的 |
| 沟通媒介 | 语言 + 表情 + 肢体 + 共同经历 | 纯文本序列化(信息损失严重) |
| 隐性知识 | Tech Lead 有多年经验的隐性判断 | "总 Agent"只有当前对话的上下文 |
| 信任基础 | 长期合作建立的默契和信任 | 每次对话从零开始,没有信任积累 |
人类分工有效是因为:
- 专业化降低了每个人的学习成本——但 LLM 不需要"学习",它已经知道所有领域
- 并行提升了团队总吞吐量——但 AI 的瓶颈不是 CPU 时间,而是上下文质量
- Tech Lead 有超越文本的判断力——但 AI 总 Agent 只能读文本报告
当你剥去这三个人类团队的优势,"总 Agent + 多专家 Agent"模型剩下的就只有协调成本,没有收益。
Archon Protocol 的回应:约束系统 > 管理层
传统团队需要 Tech Lead 的原因之一:确保团队成员遵守架构规范。
Archon Protocol 用一种更直接的方式解决这个问题:把规范写成文档,注入 Agent 的上下文窗口。
传统团队模型:
架构规范 → Tech Lead 理解 → Tech Lead 监督 → 开发者遵守(可能不遵守)
信息链路:3 步,每步有衰减
Archon Protocol 模型:
架构规范 → 直接注入 Agent 上下文 → Agent 遵守(规则在它的"意识"里)
信息链路:1 步,零衰减你不需要一个"总 Agent"来监督编码 Agent 是否遵守了规范——你只需要把规范直接写进编码 Agent 的约束中。文档化的约束 > 另一个 Agent 的监督。
这就像:你不需要一个保安站在程序员旁边确保他不写 any 类型。你只需要一条 lint 规则。
唯一的例外
有一个场景"总 Agent + 多 Agent"确实优于单 Agent:
当任务可以完全并行、模块间零耦合时。
比如同时开发 5 个互不依赖的微服务。这时候 5 个编码 Agent 并行、1 个总 Agent 汇总,确实比 1 个 Agent 串行做 5 次快。
但注意条件:零耦合。现实中大多数开发任务都有耦合——改了数据库 schema 影响 API,改了 API 影响前端,改了前端影响测试。耦合越多,并行收益越低,协调成本越高。
Archon Protocol 的选择是:宁可串行保证一致性,也不并行冒耦合风险。 对于 95% 的日常开发任务,这是正确的取舍。
六、总结:单 Agent 的哲学
多 Agent 协作 = 管理问题
单 Agent + 工具 = 工程问题管理问题的复杂度随 Agent 数量指数增长——沟通路径是 N×(N-1)/2。 工程问题的复杂度随工具数量线性增长——每个工具独立,互不干扰。
Archon Protocol 选择把复杂度控制在工程层面:
- 一个 Agent 理解需求、实现代码、审计质量、运行测试、提交代码
- 内部 Skill 是它的工具——提供结构化流程和专注能力,但没有独立决策权
- 约束 Skill 是它的边界——不依赖第二个 Agent 来"看住"它,而是靠文档化的禁止项
一个高水平的全栈工程师 + 一套完善的工具链 + 一套严格的规范 > 一个团队的初级工程师互相 review
Archon Protocol 的目标不是造一个 AI 团队。是造一个带着完善约束体系的 AI 全栈工程师。
七、延伸思考
"一个人的全栈"是否有上限?
人类有。一个人能管理的代码量大约在 5-10 万行之后就开始退化。
AI Agent 的上限不同——它不会疲劳,不会遗忘已写入规则的内容,不会因为赶工而偷工减料(如果规则禁止了)。但它受限于上下文窗口——一次对话中能处理的信息量是硬限制。
Archon Protocol 的自进化机制部分解决了这个问题:不是每次都从零理解全项目,而是把项目知识沉淀为约束 Skill,每次只需加载 Skill。Skill 是项目的"压缩记忆"。
未来的可能性
如果上下文窗口增长到 100 万 token?内部 Skill 拆分的必要性会降低(认知隔离不再是硬约束)。但单 Agent 的核心优势——目标一致性、零协调成本、责任清晰——不会因此改变。
技术变化,哲学不变:一个足够强的个体 + 足够好的约束 > 一群需要协调的个体。