跳转到内容

Team Mode 并行多 Agent 编排

Team Mode 并行多 Agent 编排

学习目标

  • 理解 Team Mode 的架构和 12 个 team_* 工具族
  • 掌握共享邮箱和文件锁任务列表的设计
  • 识别多 Agent 并发编辑冲突的规避策略

前置知识

本章涉及多 Agent 编排的通用原理,建议先阅读:

下文假设你已理解 Orchestrator 模式和并行执行概念,直接聚焦 Oh-My-OpenAgent 的具体实现。

项目实践

Team Mode 架构

Team Mode 将 oh-my-openagent 从「一个 Agent 带子 Agent」转变为真正的多 Agent 系统:

Lead Agent (主编排者)
├── Member 1 (专业 Agent) ──┐
├── Member 2 (专业 Agent) ──┤── 共享邮箱 (deferred-ack mailbox)
├── Member 3 (专业 Agent) ──┤
├── ... ┤── 共享任务列表 (文件锁 Claim)
└── Member 8 (最大成员数) ──┘

启用配置

{
"team_mode": {
"enabled": true,
"max_parallel_members": 4,
"tmux_visualization": true
}
}

12 个 team_* 工具族

Team Mode 暴露 12 个专用工具,分为三组:

成员管理

  • team_create:创建新成员 Agent
  • team_terminate:终止成员 Agent
  • team_list:列出所有成员
  • team_status:查询成员状态

通信

  • team_send_message:向成员发送消息
  • team_mailbox_send:向共享邮箱发送消息
  • team_mailbox_read:读取邮箱消息

任务管理

  • team_task_create:创建任务
  • team_task_claim:声明任务执行权(文件锁)
  • team_task_complete:标记任务完成

可视化

  • team_grid:获取 tmux 网格状态
  • team_focus:聚焦到特定成员 pane

共享延迟确认邮箱

成员间通过延迟确认邮箱通信:

  • 发送消息后立即返回(非阻塞)
  • 接收方在方便时读取和响应
  • 避免直接 session 耦合

文件锁任务声明

成员通过文件锁定机制声明对任务的独占权:

  • team_task_claim 获取文件锁
  • 其他成员看到已 claim 的任务不会重复处理
  • 任务完成后释放锁

tmux 可视化

每个成员的 session 输出流到独立 tmux pane:

  • focus 窗口:显示选中成员的完整输出
  • grid 窗口:所有成员的概览
  • 自动清理:成员完成后 pane 回收

问题与规避

多 Agent 编辑冲突

问题:多个成员同时编辑同一文件。

规避

  • 可选 per-member git worktree 隔离
  • 文件锁防止同一任务被多人处理
  • Hashline 协议检测冲突(哈希不匹配即拒绝)

成员过多导致资源竞争

问题:8 个成员并行运行时竞争 API 限流和系统资源。

规避

  • max_parallel_members 控制并行度
  • 每个成员有独立的模型 fallback 链
  • tmux 可视化帮助监控资源使用

设计取舍

Team Mode vs 传统 Subagent

维度传统 SubagentTeam Mode
通信返回值聚合共享邮箱 + 消息传递
状态独立共享任务列表 + 可选 worktree
适用场景独立短任务协作性强的长任务

Oh-My-OpenAgent 的选择:Team Mode 默认关闭(off by default),因为不是所有任务都需要如此强的协作。用户在需要时启用。

参考来源