集群协调Skill swarm-coordination

集群协调技能提供多智能体协调指南,用于OpenCode集群工作流,支持任务分解、并行处理、文件保留和代理间通信,适用于复杂软件开发任务,提高效率并减少冲突。关键词:集群协调,多智能体,OpenCode,任务分解,并行处理,软件开发,工作流管理,智能体协作

架构设计 0 次安装 0 次浏览 更新于 3/19/2026

name: 集群协调 description: 用于OpenCode集群工作流的多智能体协调模式。当处理受益于并行化的复杂任务、协调多个代理或管理任务分解时使用。不要用于简单的单代理任务。 tags:

  • 集群
  • 多智能体
  • 协调 tools:
  • swarm_decompose
  • swarm_complete
  • swarmmail_init
  • swarmmail_send
  • swarmmail_inbox
  • swarmmail_read_message
  • swarmmail_reserve
  • swarmmail_release
  • skills_use
  • skills_list related_skills:
  • 测试模式
  • 系统设计
  • cli构建器

集群协调技能

此技能为OpenCode集群工作流中的多智能体协调提供指导。

重要提示: 此技能引用全局技能在global-skills/中。工作者应根据其子任务类型加载领域特定技能。

强制要求:集群邮件

所有协调必须使用swarmmail_*工具。 这是不可协商的。

集群邮件是嵌入式(无需外部服务器)并提供:

  • 文件保留以防止冲突
  • 代理间消息传递
  • 与单元格绑定的基于线程的协调

何时使用集群协调

在以下情况使用集群协调:

  • 任务有多个可并行运行的独立子任务
  • 任务需要不同专业化(例如,前端 + 后端 + 测试)
  • 工作可按文件/模块边界划分
  • 完成时间重要且并行化有帮助

在以下情况不要使用集群协调:

  • 任务简单,可由单个代理完成
  • 子任务彼此有重度依赖
  • 协调开销超过收益

任务分解策略

1. 分析任务

分解前,理解:

  • 工作有哪些独立单元?
  • 哪些部分可并行运行 vs 顺序运行?
  • 文件/模块边界是什么?
  • 是否有需要协调的共享资源?

2. 选择分解策略

并行策略 - 用于独立子任务:

父任务:"添加用户认证"
├── 子任务1:"创建认证API端点"(后端)
├── 子任务2:"构建登录/注册表单"(前端)
├── 子任务3:"编写认证集成测试"(测试)
└── 子任务4:"添加认证文档"(文档)

顺序策略 - 当顺序重要时:

父任务:"迁移数据库架构"
├── 步骤1:"创建迁移文件"
├── 步骤2:"更新模型定义"
├── 步骤3:"运行迁移"
└── 步骤4:"验证数据完整性"

混合策略 - 混合依赖:

父任务:"添加功能X"
├── 阶段1(并行):
│   ├── 子任务A:"设计API"
│   └── 子任务B:"设计UI模拟"
├── 阶段2(顺序,阶段1后):
│   └── 子任务C:"基于设计实现"
└── 阶段3(并行):
    ├── 子任务D:"编写测试"
    └── 子任务E:"更新文档"

文件保留协议

当多个代理在同一代码库上工作时:

  1. 首先初始化集群邮件 - 在任何工作前使用swarmmail_init
  2. 编辑前保留文件 - 使用swarmmail_reserve声明文件
  3. 尊重保留 - 不要编辑其他代理保留的文件
  4. 完成后释放 - 使用swarmmail_release或让swarm_complete处理
  5. 在共享文件上协调 - 如果必须编辑保留文件,向拥有代理发送消息
// 首先初始化
await swarmmail_init({
  project_path: "$PWD",
  task_description: "处理认证功能",
});

// 保留文件
await swarmmail_reserve({
  paths: ["src/auth/**"],
  reason: "bd-123: 认证实现",
  ttl_seconds: 3600,
});

// 工作...

// 完成后释放
await swarmmail_release();

通信模式

广播更新

swarmmail_send({
  to: ["*"],
  subject: "API完成",
  body: "完成API端点,准备前端集成",
  thread_id: epic_id,
});

直接协调

swarmmail_send({
  to: ["前端代理"],
  subject: "认证API规范",
  body: "认证API位于/api/auth/*,以下是规范...",
  thread_id: epic_id,
});

检查消息

// 检查收件箱(最多5条,无正文以确保上下文安全)
const inbox = await swarmmail_inbox();

// 读取特定消息正文
const message = await swarmmail_read_message({ message_id: N });

报告阻塞

swarmmail_send({
  to: ["协调员"],
  subject: "阻塞:需要数据库架构",
  body: "没有用户表无法继续",
  thread_id: epic_id,
  importance: "紧急",
});

最佳实践

  1. 首先初始化集群邮件 - 始终在开始工作前调用swarmmail_init
  2. 小且专注的子任务 - 每个子任务应可在一次代理会话中完成
  3. 清晰边界 - 明确定义每个子任务涉及的文件/模块
  4. 显式交接 - 当一个任务启用另一个时,清晰沟通
  5. 优雅失败 - 如果子任务失败,不要阻塞整个集群
  6. 进度更新 - 使用珠子跟踪子任务状态
  7. 加载相关技能 - 工作者应根据任务类型调用skills_use()
    • 测试工作 → skills_use(name="测试模式")
    • 架构决策 → skills_use(name="系统设计")
    • CLI开发 → skills_use(name="cli构建器")
    • 多智能体协调 → skills_use(name="集群协调")

常见模式

功能开发

分解:
  策略:混合
  技能:[系统设计, 集群协调]
  阶段:
    - 名称:设计
      并行:true
      子任务:[api设计, ui设计]
      推荐技能:[系统设计]
    - 名称:实现
      并行:true
      子任务:[后端, 前端]
      推荐技能:[系统设计]
    - 名称:验证
      并行:true
      子任务:[测试, 文档, 审查]
      推荐技能:[测试模式]

错误修复集群

分解:
  策略:顺序
  技能:[测试模式]
  子任务:
    - 复现错误
    - 识别根本原因
    - 实施修复
    - 添加回归测试
  推荐技能:[测试模式]

重构

分解:
  策略:并行
  技能:[测试模式, 系统设计]
  子任务:
    - 重构模块A
    - 重构模块B
    - 更新导入
    - 运行完整测试套件
  推荐技能:[测试模式, 系统设计]

技能集成工作流

对于协调员:

  1. 使用swarmmail_init初始化集群邮件
  2. 加载集群协调技能
  3. 分析任务类型
  4. 基于领域加载额外技能(测试、设计、CLI)
  5. shared_context中为工作者包含技能推荐

对于工作者:

  1. 使用swarmmail_init初始化集群邮件
  2. 从协调员读取shared_context
  3. 使用skills_use(name="技能名称")加载推荐技能
  4. 将技能知识应用于子任务
  5. 通过swarmmail_send报告进度
  6. 使用swarm_complete完成

示例shared_context:

## 来自协调员的上下文

过去类似任务:[CASS结果]
项目学习:[语义记忆结果]

## 推荐技能

- skills_use(name="测试模式") - 用于测试创建
- skills_use(name="系统设计") - 用于模块边界

## 任务特定笔记

[来自协调员的领域知识]

集群邮件快速参考

工具 用途
swarmmail_init 初始化会话(必须首先调用)
swarmmail_send 向代理发送消息
swarmmail_inbox 检查收件箱(最多5条,无正文)
swarmmail_read_message 读取特定消息正文
swarmmail_reserve 为独占编辑保留文件
swarmmail_release 释放文件保留
swarmmail_ack 确认消息
swarmmail_health 检查数据库健康