关于 swarm
swarm 是用于编排多 Agent 任务的技能,涵盖任务拆解、委派工作、汇总结果和报告。它规定了执行阶段、工作者简报要求,以及处理结果与缺口的规则。
主要功能
- 01四阶段任务流程
- 02任务界定与拆分
- 03工作者模型选择
- 04并行委派指导
- 05结果汇总与缺口跟踪
适用场景
- 01将任务拆分给多个 Agent
- 02按预设规则开展工作者竞赛
- 03检查工作者结果是否覆盖需求
- 04工作者退出后报告缺口
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mariusflorescu/ pstack-t3 --skill swarm安装后在 Claude Code 中输入/swarm确认已加载。
附带文件agents/openai.yaml
详细介绍
Swarm
以粗体或反引号标出的技能名称,或以 /<name> 运行的技能,是此技能目录旁的 ../<name>/SKILL.md 文件;不带前缀的原则名称对应 ../principle-<name>/SKILL.md。读取该文件并遵循其中的要求。大多数 pstack 技能仅供用户使用,因此你的技能工具无法加载它们。每次 delegate_task 调用都遵循 ../poteto-mode/SKILL.md 的 Subagents 部分中的默认设置。
开始
在启动任何工作之前,创建一个任务列表(使用你所用框架的任务工具;如果没有此工具,则在 ~/.local/state/pstack/checklists/<repo>-<branch>.md 创建清单文件),每个阶段列一项。
- 规划
- 分派
- 汇总
- 报告
阶段 A:规划
- 明确完成条件,以及 swarm 必须返回的产物或报告。
- 选择组织方式:拆分为多个切片、让 N 个工作者根据相同简报竞速,或两者结合。若采用竞速或混合方式,请在启动前声明
first pass、rank all或best-of。 - 从
~/.config/pstack/pstack-models.md中的swarm workers行选择工作者模型。条目<providerInstanceId>/<model> (<effort>)对应target: {"providerInstanceId": ..., "model": ..., "options": {"<effort option id>": "<effort>"}},其中 effort 选项 ID 由该模型的orchestrator_capabilities列出。若为auto或inherit-parent,或文件或该行不存在,则省略target,让工作者使用父模型。若文件不存在,请说明这一点并建议使用/setup-pstack。如果delegate_task不接受某个条目,请改用orchestrator_capabilities列出的同一提供商最接近的模型,并说明这一点。对于模型竞速,请预先列出每个赛道所用的模型。根据 poteto-mode 技能的 Subagents 部分,为工作安排选择每个子 Agent 的推理级别和快速或标准速度。 - 工作者需要写入内容时,为每个工作者指定各自可写的输出位置。工作者验证或测量提交时,每份简报都必须注明准确的 SHA。测量简报还必须注明方法(样本数量、单个样本的定义、顺序)。工作者需在结果中记录两者。
阶段 B:分派
在同一轮中将全部 N 个工作者作为 delegate_task 子任务启动,设置 mode: "async",并让 title 标明切片或竞速赛道;使用第 4 步中的 target,若为 auto 或 inherit-parent 则不设置。子任务共享你的检出目录,因此并行写入者只能操作彼此不重叠的文件,也不得运行 git 命令。需要独立工作树或分支的工作者应作为 t3_thread_launch 线程启动,并设置 workspaceStrategy: {"type":"worktree","baseRef":"<commit or branch>","branch":"<new branch>","startFromOrigin":false},modelSelection: {"instanceId": ..., "model": ..., "options": ...} 使用第 4 步的设置,并将简报放入 message。先提交,因为未提交的编辑不会进入新的工作树。每个工作树或分支仅安排一名写入者。
如果工作者必须从非默认分支开始,则使用该分支作为 baseRef,通过 t3_thread_launch 启动线程。
每份简报都必须独立完整。包括目标、范围、准确的切片或竞速赛道、验证方式以及需报告的内容。报告使用 PASS、ISSUES 或 BLOCKED,并附上证据。能够证明存在缺陷的工作者应报告 ISSUES,并列出所有已证实的问题,而非仅列出第一个问题。
启动工作者后即结束此轮。每个子任务完成时都会通知你。仅在需要于本轮中途获取结果时使用 task_status;已启动线程则使用 t3_thread_wait。如果某个工作者退出,继续处理剩余的 N-1 个工作者并注明这一情况。
阶段 C:汇总
读取最终结果。若某份结果未记录其简报中指定的 SHA 和方法,则舍弃该结果并重新启动该工作者一次。第二次仍不符合要求时,记录为缺口。缺口不算通过。就覆盖范围而言,每个必需切片都必须有结果。竞速则按照预先声明的规则进行选择。使用 first pass、rank all 或 best-of。不要粘贴工作者的原始输出。
阶段 D:报告
在聊天中返回一份整合报告,包含表格、问题简述、缺口或退出情况,以及采用竞速时所用的规则。