本文へ移動
cccskills
無料GitHub で公開

multi-agent-design

设计或评审多 Agent 系统、判断该用单 Agent 还是多 Agent 时使用——选择对等/管理者/去中心化协作拓扑、决定上下文是否共享、设计 Agent 间通信与共享文件系统、诊断多 Agent 失败模式(并发冲突、错误级联、同质趋同、互相扯皮、循环失控)。

覆盖协作架构选择依据、多 Agent 优于单 Agent 的新信息判据、控制平面四原语与虚拟文件系统四类区域的设计检查表。

インストール方法を見る

含まれるファイル(1)

  • SKILL.md11.7 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

多 Agent 协作设计

何时使用

  • 要搭建多 Agent 系统,或评审一个已有架构("该用几个 Agent?谁指挥谁?")
  • 纠结"这个任务拆成多个 Agent 是否真的更好",需要可判定的依据
  • 决定 Agent 之间是共享上下文、还是各自独立上下文
  • 设计 Agent 间通信机制(工具参数 / 共享文件系统 / 消息总线)与文件系统布局
  • 决定角色切换应替换 system prompt,还是加载 Skill
  • 多 Agent 系统出问题:文件互相覆盖、结论越传越歪、多个 Agent 不约而同做同一件事、互相扯皮、子 Agent 数量爆炸

核心原则

  • 新信息判据(唯一实质判据)。 多 Agent 优于单 Agent,当且仅当协作过程引入了单个 Agent 在生成时无法获得的新信息。同一模型重新读自己的输出、多个 Agent 辩论同一段文本,都不引入新信息——等计算量下单 Agent 持平甚至更好;而用测试执行结果、渲染截图、外部工具输出来审查,则显著提升。学术研究说"多 Agent 无效"与工程实践"多 Agent 更好"并不矛盾:前者比较的是"看着同一段上下文讨论",后者包含外部反馈环路。
  • 两个维度先定,再谈实现。 维度一:上下文是否共享(继承式 vs 进程隔离式);维度二:协作拓扑(对等 / 管理者 / 去中心化)。二者共同决定架构。
  • 成本必须被收益覆盖。 并行探索与反复迭代要烧数倍乃至一个数量级的 token。收益不够大时,一个调校得当的单 Agent 更划算。
  • 步骤预算不是越多越好。 单纯给 Agent 更多步骤/工具调用次数不保证性能提升——Agent 缺乏预算意识会很快"饱和"。Manager 应按子任务复杂度动态分配预算,并引导子 Agent"先规划、再实现、再测试、再改进"。
  • 最强的模型给 Manager。 Plan-and-Act 的实证结论:弱规划者是系统最关键的瓶颈;规划错了,后续所有执行都建立在错误前提上。不要把资源平均分给所有 Agent。
  • Agent 的故障是拜占庭式的。 它很少径直停止,而是继续给出看似可信的错误结论,且错误不会声明自己是错误。因此交叉验证与多数表决是必需手段,而非可选优化。
  • 上下文隔离优先。 Manager 上下文中只放任务描述、计划、调用记录与文件索引;完整产物写入文件系统,Agent 间传递轻量路径字符串而非把内容载入上下文。
  • handoff 不暴露私有轨迹。 对等移交只应传递明确的任务包和产物引用。

实践模式

1. 拓扑选择决策树

任务特征选择
2-3 个角色,需要互相反馈、多轮迭代提质对等协作(起草者/评论者、提议者/审核者)
子任务多、需要动态调度、子任务间有复杂依赖管理者模式(Manager 规划 + 子 Agent 执行)
需职责对等的角色自主决定与谁沟通,或管理者不能成为单点故障去中心化模式(handoff / 消息池订阅)
开放搜索空间,需要广覆盖与多样化发现路径多 Agent 并行(用更高 token 预算换覆盖)

对等协作实现复杂度最低:定义好两个 Agent 的角色、通信机制和迭代终止条件即可跑起来。

2. 共享上下文 vs 不共享上下文

  • 共享上下文:每阶段是独立 Agent(自己的 system prompt 与工具集),但继承前序完整轨迹。优势是信息不丢失;挑战是上下文快速膨胀,当前 Agent 容易被历史干扰。
  • 不共享上下文:每个 Agent 有独立上下文与轨迹,彼此看不到对方的"思考过程"。模块化、隔离性、可扩展性更好,可真正并发;代价是信息同步与调试困难,接口规范与数据格式变得至关重要。
  • 通信机制就三种,且都落在经典 IPC 范式内:工具调用参数(同步消息传递)、共享文件系统(共享内存)、消息总线(异步消息传递)。Agent 数量少且拓扑固定用点对点;数量多且需异步并行改消息总线——点对点连接数随 Agent 数平方增长且要求双方同时在线。

3. 角色切换:替换 system prompt 还是加载 Skill?

transfer_to_agent / 替换 system promptSkill
工具可见性只暴露当前角色工具通常固定暴露全集
前缀缓存每次切换改变请求前缀,缓存从变化点起失效静态前缀不变,Skill 内容追加到末尾轨迹,前缀可复用
约束能力强:越界工具在 schema 层不可见弱:Skill 是行为指令,硬权限仍需 Harness 门

判据:角色差异主要来自知识、流程、写作风格 → 用 Skill;涉及权限、工具隔离、合规边界、需运行时强制禁止某类动作 → 用独立 Agent 或 transfer_to_agent,并在 Harness 层用代码限制。

4. 虚拟文件系统:四类区域(布局设计的检查表)

区域可见性生命周期读写并发控制
Agent 专属工作区(Scratchpad)仅该 Agent随实例销毁读写不需要
多 Agent 共享空间(Shared Workspace)所有协作 Agent + 用户随任务持续,需持久化读写需要(乐观锁 / worktree)
外部挂载资源视外部授权而定由外部源决定多为只读,写需谨慎由外部源负责
系统内置资源(Skills 等)所有 Agent跨会话稳定只读不需要

要点:隔离 scratchpad 既避免临时文件互相覆盖,也保持主上下文精简(子 Agent 只把最终产物提交到共享空间);外部挂载需显式处理权限约束、弱一致性与"按需只读";相当一部分并发冲突与信息泄露源于把本应隔离的区域混置。

5. 控制平面四原语

  • 消息传递:无论点对点还是经总线,消息都带结构化信封(发送者 ID、目标、消息类型 task_assigned/status_update/result/terminate、JSON 负载)。统一信封使链路可追溯——这是多 Agent 调试的关键。
  • 状态查询:不要用拉取式 get_status。更自然的是消息传递(问一句"进展如何")或共享文件系统(约定 progress.md,子 Agent 每完成一项更新一次)。用 progress.md 最后修改时间超过 N 分钟无变化来判定卡住并触发超时兜底。轨迹持久化(JSONL)适合读全貌,但不宜作为主要传递方式——数万 token 还得自己提炼。
  • 执行终止:优雅终止(terminate 信号,子 Agent 在安全点清理资源后 ack)为首选,强制终止为兜底。终止沿创建关系向下级联,杜绝孤儿 Agent;确需长期后台 Agent 则从新的生命周期树起步。
  • 资源与调度:启动时设定步数/token 预算,超限即止;困难任务给强模型,机械任务给低成本模型;设并发上限避免耗尽 API 配额;高优先级任务到来时可抢占。

6. 管理者模式的两种协调形态

  • 顺序:Manager 依次调用专门 Agent,线性控制流,适合子任务有清晰先后依赖。
  • 并行:多个 Agent 同时工作,需消息总线做实时监控;Manager 在 Agent 成功/失败时做全局决策。
  • 结算点定义:并行管理器要定义"第一个已验证成功"而非"第一个声称成功"——结果到达后先跑隐藏校验,通过后再用幂等的锁/事务认领胜者并广播取消其余 worker;两个几乎同时到达的成功事件不能触发两次汇总。
  • 进阶做法:Manager 先把 Agent 工作流写成代码交给确定性运行时执行,自己不必每步都待在循环里。

7. 去中心化 handoff 最小协议

handoff = {task_id, sender, recipient, goal, constraints,
           accepted_facts, artifact_refs, remaining_budget, visited_agents}

接收方读任务包和引用、按需取证;预算、访问链与环检测由运行时保留,任何 Agent 不能自行删除。recipient 已在 visited_agents 中则拒绝(防 A→B→A 空转),预算耗尽则停止并上报。

8. 对等协作如何获得真正的多样性

"多个实例"不等于"多种思路"。模型、上下文、脚手架高度相似时,不同 Agent 会做出相同选择。要获得多样性需主动区分模型、上下文、工具、可见证据或职责,并让各 Agent 先独立判断、再汇总结果。

常见陷阱

  • 共享文件系统并发冲突:简单冲突是同一文件后写覆盖前写(用乐观锁:读时记录版本号,写入时校验,失败则重读重做);跨文件语义冲突更隐蔽——Agent A 重编图片编号、Agent B 引用旧编号,文件层毫无冲突但逻辑全错。并发改同一代码库时主流做法是工作副本隔离(每人独立 Git 分支/worktree),把冲突推迟到合并点。
  • 错误的级联放大:Agent 间传递的是语义,每转述一次都是有损重新编码。打断手段是交叉验证——某个 Agent 以独立视角只看原始证据与最终结论是否一致,不看前序思考过程。
  • 同质趋同:共因失效。同一模型、相似上下文生成的多个审核意见不能自动视为相互独立证据。需引入模型/上下文/数据来源差异,并用命名空间、资源配额和速率限制防止相同决策同时冲击共享资源。
  • 互相扯皮:目标互斥时 Agent 会把对方操作理解为蓄意阻挠。运行时必须预先定义目标优先级、资源所有权和权限边界;冲突无法按可验证规则解决时暂停执行、交人工裁决。
  • 循环失控:与"过早终止"相反的一极——失控 Agent 生成数千个子 Agent 浪费大量 token。对自主性强的 Agent 用独立 API key。
  • 理解债与认知投降:Agent 交付越快,工程师对系统实际实现的理解落后越远;习惯了代劳就放弃独立审查。可以外包思考,不能外包理解。

配套代码

  • chapter10/multi-role-transfer/ — 同一共享轨迹下"替换 system prompt"与"加载 Skill"两种角色切换的受控对比
  • chapter10/staged-system-prompt/ — 分阶段切换 system prompt + 工具集的归档实验(需求→实现→评审回环)
  • chapter10/book-translation/ — 管理者模式四 Agent(Glossary/Translation/Proofreading/Manager),验证 Manager 上下文不随书厚增长
  • chapter10/parallel-web-research/ — Manager 动态启动 N 个同构 worker、消息总线、第一个已验证命中的级联终止与资源清理
  • chapter10/autonomous-phone-registration/ — 电话 + 电脑双 Agent 点对点协作,模型自主决定是否派生 Phone Agent
  • chapter10/talkact-reproduction/ — 固定拓扑快慢双 Agent 与单模型基线的对照
  • chapter10/voice-werewolf/ — 多 Agent 语音狼人杀:私有/公共记忆隔离与代码驱动的只读 Judge
  • chapter10/generative-agents/ — 25 角色斯坦福 AI 小镇复现,反思机制与信息扩散的对照实验

深度阅读

  • book/chapter10.md「多 Agent 协作的分类框架」
  • book/chapter10.md「多 Agent 何时真正优于单 Agent」
  • book/chapter10.md「共享上下文的多 Agent 协作」
  • book/chapter10.md「不共享上下文的多 Agent 协作」
  • book/chapter10.md「多 Agent 协作的失败模式」

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

为 Agent 建立或改进评估体系时使用——设计评估指标(Pass@k/Pass^k/成本)、搭建可重复运行的评估环境、选择确定性验证器或 LLM-as-a-Judge 及各自适用边界、编写 Rubric、做失败归因与回归任务、评估驱动的模型选型、判断统计显著性、建设可观测性与内部评估基础设施(消融、AB 测试、特性开关、提示词回归)、从 Benchmark 报告走到系统改进。

日本語の概要は準備中です。原文の説明を表示しています。

bojieli/ai-agent-book5.4万2026年10月9日 更新

让 Agent 从运行经验中持续学习、构建自进化闭环时使用——涵盖从运行轨迹提取学习信号(三层轨迹验证)、四种进化方式(经验知识库、Prompt/Skill、程序/Harness、模型参数)的适用边界与选择依据、Prompt 自动优化、轨迹编译为程序、Agent 自我修改与安全门禁、睡眠学习与长期分层评估。触发词:持续进化、自进化、经验学习、轨迹验证器、自我修改、进化闭环。

日本語の概要は準備中です。原文の説明を表示しています。

bojieli/ai-agent-book5.4万2026年10月9日 更新

Agent 陷入无限循环、数不清工具调用次数、遗忘 TODO 或目标偏离、长任务中思考 token 持续膨胀时使用——Agent 状态栏机制、作为 user 消息注入末尾的 KV Cache 理由、每轮替换与持久追加两种实现及成本模型、五种状态栏技术(时间戳、工具计数器、TODO、详细错误、系统状态)与维护铁律。

日本語の概要は準備中です。原文の説明を表示しています。

bojieli/ai-agent-book5.4万2026年10月9日 更新

ai-style

無料

中文文案去「AI 味」检查清单,由用户纠正反馈持续提炼而来

日本語の概要は準備中です。原文の説明を表示しています。

bojieli/ai-agent-book5.4万2026年10月9日 更新

构建异步/事件驱动 Agent,或让 Agent 响应外部事件(新邮件、webhook 回调、IM 消息、定时器、系统告警)、 处理工具执行期间的用户打断与多任务并发时使用。覆盖事件循环与安全点、三类事件触发工具、用户沟通与多渠道召回、 虚拟身份与隔离执行环境、队列式/取消式/并行式三种事件处理策略及紧急度判定,以及模型原生异步与同步接口兼容两条路线。 触发词:异步 Agent、事件驱动、event-driven、webhook、定时器、心跳、任务句柄、打断、steering、并行工具执行。

日本語の概要は準備中です。原文の説明を表示しています。

bojieli/ai-agent-book5.4万2026年10月9日 更新

把生产 bad case / 失败轨迹转成训练数据时使用——从失败归因、轨迹前缀截取、DPO 偏好对构造、LoRA 训练到边界集与保留集双集验证的完整链路;也用于判断某类问题该走 SFT、DPO、RL 还是先修 Harness/工具/tokenizer,以及如何从运行轨迹中提取带证据的结构化学习信号。触发词:bad case、失败归因、DPO、偏好对、轨迹前缀、拒绝采样、过度矫正、边界集、保留集、过早结束、reward hacking、LoRA 微调、训练评估隔离。

日本語の概要は準備中です。原文の説明を表示しています。

bojieli/ai-agent-book5.4万2026年10月9日 更新

bojieli のスキルをすべて見る

このスキルの問題を報告する