multi-agent-patterns:多 Agent 协作架构与上下文隔离

前言

单 Agent 在长任务里往往会把检索结果、工具输出和历史对话堆进同一个上下文窗口,出现注意力稀释、中间信息丢失或无关内容「污染」有效信号等问题。不少团队于是拆成多个模型实例并行或分工,但若缺少明确的协调协议,协调成本会抵消拆分带来的收益。

下面介绍仓库 Agent-Skills-for-Context-Engineering 中的 Skill multi-agent-patterns:它在设计阶段帮你选型编排者、点对点、层级式等架构,并把「上下文隔离」当作拆分子 Agent 的首要理由,而不是单纯模拟组织角色。

这是什么

multi-agent-patterns 是一份面向「多 Agent 系统设计」的结构化指南(SKILL.md 格式),维护者为该 Context Engineering 技能合集项目。官方描述指出:在需要上下文隔离、监督者或蜂群式协调、显式交接(handoff)、并行执行,或需要判断「是否真的值得上多 Agent」时,应启用本 Skill。

其核心命题是:子 Agent 主要服务于隔离上下文——每个实例在相对干净的窗口里处理子任务,避免信息在多次摘要传递中劣化(俗称「传话游戏」)。

与本 Skill 边界相邻、官方明确划归其他 Skill 的工作包括:任务与模型匹配、管线形态(project-development)、托管沙箱与远程运行时(hosted-agents)、编排者 KV 压缩共享(latent-briefing)、各 Agent 暴露的工具设计(tool-design)等;做拓扑选型时应避免混用职责。

核心功能

何时启用

在以下情况官方建议激活本 Skill:

  • 单 Agent 上下文上限制约任务复杂度
  • 任务可自然拆成可并行的子任务
  • 不同子任务需要不同的工具集或 system prompt
  • 系统需同时处理多个领域
  • 需要在单上下文之外扩展 Agent 能力
  • 设计带多个专用组件的生产级 Agent 系统

三种主导架构模式

选型应基于协调需求,而非组织隐喻:

模式 适用情形
Supervisor / Orchestrator(监督者 / 编排者) 任务可清晰分解、需要跨域协调或人工 oversight
Peer-to-Peer / Swarm(点对点 / 蜂群) 需要灵活探索、刚性规划反而有害、需求动态涌现
Hierarchical(层级式) 大规模项目,策略、规划、执行分层抽象,各层上下文结构不同

设计时应围绕:显式协调协议、能抑制谄媚(sycophancy)的共识机制、以及防止错误级联传播的失败处理。

为何需要多 Agent(资料中的论证线)

上下文瓶颈:当单窗口被历史、检索文档和工具输出填满时,可关注三类退化信号——lost-in-middle(中间段注意力变弱)、注意力稀缺(过多竞争项)、上下文污染(无关内容挤占有用信息)。多窗口分工后,在协调层聚合结果,避免任一上下文承担全部负担。

Token 经济学:资料强调多 Agent 往往显著高于单 Agent 对话的 token 消耗,并给出相对量级示意(非精确计费公式):

Architecture Token Multiplier Use Case
Single agent chat Baseline Simple queries
Single agent with tools Higher than baseline Tool-using tasks
Multi-agent system Much higher than baseline Complex research/coordination

资料同时指出:评测研究中 token 用量、工具调用与模型选择常主导表现方差;应相对单 Agent 基线测量,而非默认「多加 Agent 就好」。模型升级有时比单纯加倍 token 预算更有效,架构与模型选择应互补。

并行与专用化:可并行的子任务交给带新上下文的专用 Agent,墙钟时间更接近最长子任务而非各步相加;协调者可将请求路由到只携带本子任务所需 prompt、工具与上下文的专用实例,避免通用 Agent 在上下文中堆砌全部配置。

模式一:Supervisor / Orchestrator

中央 Agent 维护全局状态与轨迹,分解用户目标并路由到工作者,再聚合输出:

User Query -> Supervisor -> [Specialist, Specialist, Specialist] -> Aggregation -> Final Output

权衡:流程可控、便于 human-in-the-loop;但监督者上下文易成瓶颈,监督者失败会波及工作者,且存在「传话游戏」——监督者转述子 Agent 回答时丢失细节。资料提到 LangGraph 类基准中,监督者架构在未优化时可能明显弱于优化版本(约 50% 量级,以官方引用的 benchmark 表述为准)。

缓解传话游戏:实现 forward_message,让子 Agent 在合适时直接把完整回答交给用户,跳过监督者二次合成。官方示例:

def forward_message(message: str, to_user: bool = True):
    """
    Forward sub-agent response directly to user without supervisor synthesis.

    Use when:
    - Sub-agent response is final and complete
    - Supervisor synthesis would lose important details
    - Response format must be preserved exactly
    """
    if to_user:
        return {"type": "direct_response", "content": message}
    return {"type": "supervisor_input", "content": message}

若子 Agent 可直接对用户响应,资料倾向于在可行时考虑 swarm,以消除翻译误差。

模式二:Peer-to-Peer / Swarm

去掉中心控制,Agent 按预定协议直接通信;通过显式 handoff 将控制权交给另一 Agent。示意(资料片段):

def transfer_to_agent_b():
    return agent_b  # Handoff via function return

agent_a = Agent(
    name="Agent A",
    functions=[transfer_to_agent_b]
)

权衡:无单点故障、利于广度扩展;但 Agent 数量上升会带来协调复杂度、发散风险,且缺少中心状态时需要更强的收敛约束(资料在截断处继续展开该主题)。

模式三:Hierarchical

用于多层抽象的大规模分解:高层负责策略与规划,低层负责执行,各层维护与粒度匹配的上下文结构(细节见仓库内完整 SKILL.md)。

安装与启用

本 Skill 以通用 Agent Skills(SKILL.md)形式发布,官方路径为:

https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering/tree/main/skills/multi-agent-patterns

合集根目录说明其适用于从零构建 Agent、优化性能、调试上下文问题、设计多 Agent 架构等场景。各宿主(Cursor、Codex CLI、Claude Code 等)如何把该目录注册为可加载 Skill,以你所用产品的 Skills 文档为准;已抓取资料中未给出统一的安装命令或版本号,此处不臆造配置字段。

启用逻辑以 Skill 元数据为准:当任务涉及多 Agent 拓扑、隔离、协调与并行决策时,在对话或 Agent 配置中加载 multi-agent-patterns 对应说明即可。

典型用法(设计流程)

结合官方「When to Activate」与架构章节,可复现的设计顺序如下:

  1. 判断是否真的需要多 Agent:若复杂度仍可由单上下文承载,或问题属于 project-development 阶段的任务-模型匹配,先不要套用本 Skill 的拓扑建议。
  2. 识别并行与工具差异:子任务是否独立可并行、是否需要不同工具或 system prompt;若是,再在三种模式中选型。
  3. 为监督者架构加防劣化措施:若采用 Supervisor,评估是否必须为最终答案保留 forward_message 直通路径,避免监督者 paraphrase 损失细节。
  4. 为 swarm 定义 handoff 协议:用显式 transfer_to_* 或等价机制约定控制权转移,避免隐式「谁接着说话」含糊不清。
  5. 对照基线评估成本:用单 Agent 基线对比 token、工具调用与任务完成质量;资料强调不应默认多 Agent 更优。

适用场景与注意

适合谁:正在设计或重构生产级多组件 Agent 系统的开发者;需要在大检索量、多域并行、长轨迹任务里做上下文分区的团队。

限制与坑:

  • Token 与调用次数通常显著高于单 Agent,需有预算与基线评测。
  • 监督者架构要专门处理传话游戏与监督者单点故障。
  • Swarm 需要协议与收敛约束,否则易发散。
  • 工具清单、沙箱运行时、KV latent 共享等应交给对应 Skill,避免在一个对话里混谈全部基础设施细节。

与 Cursor、Codex 等工具演进方向一致的是:多 Agent 正在成为常见能力,但架构模式可复用;本 Skill 提供的是选型与隔离策略层面的共识语言,而不是替代具体框架实现。

结尾

multi-agent-patterns 把多 Agent 设计收敛为「上下文隔离 + 三种协调模式 + 显式协议与失败处理」,并提醒用单 Agent 基线和 token 现实校验架构选择。完整条文、层级模式细节及截断后的进阶主题,请以官方仓库为准:

https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering/tree/main/skills/multi-agent-patterns

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜