管理者模式
管理者模式是什么?
- 触发条件: 任务涉及大量子任务、需要动态调度,或子任务之间存在复杂依赖时,对等协作力不从心;
- 职责类比: 像一个项目经理——先理解整体任务,再拆解为可分配的子任务,选择合适的 Agent 执行,跟踪进度并处理异常(重试、换 Agent、调整计划),最后把各 Agent 输出整合为最终结果;
- 抽象手段: 把每个专门 Agent 建模为 Manager 可调用的工具;
- 统一抽象: 从 Manager 视角看,调用一个 Agent 与调用一个普通工具没有本质区别;
- 可扩展性: 新增能力只需开发对应 Agent 并注册为工具,Manager 核心逻辑无需修改;
- 异构性: 不同 Agent 可以用不同模型、提示词、工具集,甚至运行在不同硬件环境上;
管理者模式的固有挑战是什么?
- 单点瓶颈: Manager 必须理解所有子任务性质、选择正确 Agent、准确传递上下文,任何决策偏差都会影响整体流程;
- 上下文膨胀: Manager 需要维护整个任务的全局上下文,随任务推进与调用增多而快速膨胀;
- 应对方向: 特别需要注意 Manager 的提示词质量、上下文管理策略与合理的任务分解粒度;
- 实证: 2025 年 Plan-and-Act(arXiv:2503.09572)分析 Planner–Executor 双 Agent 架构,发现弱规划者是整个系统最关键的瓶颈——Planner 质量足够高时简单 Executor 也能取得好结果;Planner 分解有误则所有 Executor 的工作都建立在错误前提上;
- 基准成绩: 该研究在 WebArena-Lite 上取得 54% 成功率,核心贡献是改善 Planner 而非 Executor;
- 启示: 应把最强模型与最精心设计的提示词分配给 Manager(规划者),而不是把资源平均分配给所有 Agent;
顺序协调形态适合什么任务?
- 结构: Manager 按顺序依次调用专门 Agent,每个 Agent 完成后返回结果,Manager 再决定下一步;
- 控制流: 线性的,简单明了;
- 适用: 子任务之间有清晰先后依赖的场景;
- 实例: 书籍翻译流水线见 管理者模式的实践案例;
并行协调形态需要什么基础设施?
- 结构: Manager 同时规划多个并行子任务,实时监控所有运行中的 Agent,协调通信,并在成功或失败时做全局决策;
- 基础设施: 通常需要消息总线(Message Bus)——可理解为"公共公告板",Agent 往上面贴消息(发布),也关注自己感兴趣的消息类型(订阅),实现异步通信、互不阻塞;
- 消息信封与状态语义见 Agent 间的消息与状态;
并行管理器如何界定结算点?
- 要求: 必须定义"第一个已验证成功"而不是"第一个声称成功"的结算点;
- 参考实现:
workers = launch_independent_workers(subtasks)
while workers.any_running:
event = next_event()
if event.type == RESULT:
if verify(event.artifact, hidden_checks):
if not settle_once(event): # atomically claim the winner
continue
broadcast_cancel(to = workers - {event.worker_id})
await_all_ack_or_timeout()
return assemble(event.artifact, evidence = event.evidence)
else:
record_failure(event)
return summarize_failures(workers)
- 幂等要求:
settle_once必须是幂等的(通常由锁或事务保护),否则两个几乎同时到达的成功事件会触发两次汇总; - 并发冲突的完整治理见 多 Agent 的失败模式 与 终止级联与资源调度;