群协调Skill swarm-coordination

群协调技能用于指导 OpenCode 群工作流中的多代理协调模式,支持任务分解、工人生成、文件预留、进度跟踪和审查循环,适用于需要并行化或协调的软件开发任务。

AI智能体 0 次安装 0 次浏览 更新于 3/19/2026

名称: 群协调 描述: | OpenCode 群工作流的多代理协调模式。当工作从并行化或协调中受益时使用。涵盖:任务分解、工人生成、文件预留、进度跟踪和审查循环。

群协调

此技能指导 OpenCode 群工作流中的多代理协调。

何时使用群

当调用 /swarm 时,始终使用群。 用户的明确调用会覆盖任何启发式方法。

群的使用除了并行化外还有多个目的:

  • 上下文保存 - 工人从协调器中卸载工作
  • 会话弹性 - 如果协调器压缩,工人可以持续存在
  • 进度跟踪 - 蜂窝细胞跟踪完成状态
  • 学习捕获 - 集体智能存储每个子任务的发现

即使小任务(1-2个文件)在上下文珍贵时也能从群中受益。

对于顺序工作,使用子任务之间的依赖关系,而不是拒绝使用群。

工具访问(通配符)

此技能根据用户选择配置了 tools: ["*"]。如果需要后续进行筛选访问,请用显式工具列表替换通配符。

前台与后台

  • 前台代理 可以访问 MCP 工具。
  • 后台代理 没有 MCP 工具。
  • swarmmail_*swarm_*hive_* 和 MCP 调用使用前台工人。
  • 仅对文档编辑和静态工作使用后台工人。

MCP 生命周期缓解

Claude Code 从 mcpServers 配置自动启动 MCP 服务器。除非用于调试,否则不要要求手动 swarm mcp-serve

协调器协议(高级)

  1. 初始化群邮件 (swarmmail_init)。
  2. 查询过去的学习 (hivemind_find) - 分解前必须执行。
  3. 分解 (swarm_plan_prompt + swarm_validate_decomposition)。
  4. 生成工人并指定文件列表。
  5. 审查工人输出 (swarm_review + swarm_review_feedback)。
  6. 记录结果 (swarm_complete)。
  7. 存储学习 (hivemind_store) - 群完成后必须执行。

工人协议(高级)

  1. 初始化群邮件 (swarmmail_init)。
  2. 预留文件 (swarmmail_reserve)。
  3. 在范围内工作并报告进度。
  4. 存储发现 (hivemind_store) - 任何陷阱、模式或决策。
  5. 完成 (swarm_complete)。

集体智能使用(必须)

代理必须使用集体智能来构建集体记忆:

工作前:

hivemind_find({ query: "相关主题或代码库模式" })

工作中(当发现某事时):

hivemind_store({
  information: "认证模块在 Y 之前需要 X",
  tags: "auth,陷阱,代码库名称"
})

工作后:

hivemind_store({
  information: "完成任务 X。关键学习点:...",
  tags: "群,完成,史诗ID"
})

大量存储。内存廉价;重新发现陷阱代价高昂。

文件预留

工人必须在编辑前预留文件,并通过 swarm_complete 释放。 协调器从不预留文件。

进度报告

在完成度 25%、50% 和 75% 时使用 swarm_progress 触发自动检查点。

生成工人(关键 - 请阅读此部分)

步骤 1: 使用 swarm_spawn_subtask 准备子任务

const spawnResult = await swarm_spawn_subtask({
  bead_id: "cell-abc123",           // 此子任务的蜂窝细胞 ID
  epic_id: "epic-xyz789",           // 父史诗 ID
  subtask_title: "添加日志工具",
  subtask_description: "创建一个带有结构化日志支持的日志器模块",
  files: ["src/utils/logger.ts", "src/utils/logger.test.ts"],  // 字符串数组,不是 JSON 字符串
  shared_context: "此史诗正在添加可观察性。其他工人正在添加指标和跟踪。",
  project_path: "/absolute/path/to/project"  // 用于跟踪的必需项
});

步骤 2: 使用 Task 工具生成工人

// 解析结果以获取提示
const { prompt, recommended_model } = JSON.parse(spawnResult);

// 生成工人
await Task({
  subagent_type: "swarm:worker",
  prompt: prompt,
  model: recommended_model  // 可选:使用自动选择的模型
});

常见错误

错误 - 文件作为 JSON 字符串:

files: '["src/auth.ts"]'  // 不要这样做

正确 - 文件作为适当数组:

files: ["src/auth.ts", "src/auth.test.ts"]  // 这样做

错误 - 缺少 project_path:

swarm_spawn_subtask({
  bead_id: "...",
  epic_id: "...",
  // 没有 project_path - 工人无法初始化跟踪!
})

正确 - 始终包含 project_path:

swarm_spawn_subtask({
  bead_id: "...",
  epic_id: "...",
  project_path: "/Users/joel/myproject"  // 必需!
})

并行与顺序生成

并行(独立任务)

在单个消息中发送多个 Task 调用:

// 所有在一个消息中 - 并行运行
Task({ subagent_type: "swarm:worker", prompt: prompt1 })
Task({ subagent_type: "swarm:worker", prompt: prompt2 })
Task({ subagent_type: "swarm:worker", prompt: prompt3 })

顺序(依赖任务)

在生成下一个之前等待每一个:

const result1 = await Task({ subagent_type: "swarm:worker", prompt: prompt1 });
// 审查 result1...
const result2 = await Task({ subagent_type: "swarm:worker", prompt: prompt2 });

故事状态流

状态转换应遵循:

  1. 协调器 在生成工人时将故事设置为 in_progress
  2. 工人 完成工作并将其设置为 ready_for_review
  3. 协调器 审查并将其设置为 passedfailed

工人不设置最终状态 - 那是协调器在审查后的工作。

技能加载指南

工人应根据任务类型加载技能:

  • 测试或修复 → testing-patterns
  • 架构 → system-design
  • CLI 工作 → cli-builder
  • 协调 → swarm-coordination