pstack的swarm技能深度解析:N个并行工作者扇出与聚合报告
【免费下载链接】pstack-claudeClaude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Poteto's pstack. Rigorous agent workflows with Cursor primitives translated for other harnesses.项目地址: https://gitcode.com/GitHub_Trending/ps/pstack-claude
pstack 是 Poteto 著名 Cursor 技能栈面向 Claude Code、Codex、Copilot 等多个 Agent 运行时的移植版,而其中的swarm 技能正是它的"并行调度引擎":通过/swarm指令扇出(fan out)N 个并行工作者,让它们覆盖切片、竞速或混合执行,最后由父 Agent 等待、聚合并返回一份报告。对新手来说,这是理解"多智能体并行工作"最直观的一课——无需写代码,只需理解四个阶段的分工。
什么是 swarm:一句话概括
swarm 的官方描述是:"扇出 N 个并行工作者,排空它们,返回一份报告"(plugins/pstack/skills/swarm/SKILL.md)。它适用于三类场景:
- 并行覆盖(coverage):把大任务切成互不重叠的切片,每个工作者负责一块
- 竞速(race):N 个工作者拿到完全相同的任务书,各自独立作答
- 混合(mixed):部分切片 + 部分竞速,视任务而定
触发方式很简单:在会话中输入/swarm或直接说 "swarm this"。
扇出前的 5 个决策:形态、N、模型与输出隔离
在启动任何工作者之前,swarm 要求先列出一份"每阶段一条"的待办清单。核心决策都在第一个阶段完成:
| 决策点 | 说明 |
|---|---|
| 完成判据(done predicate) | 明确 swarm 最终要交付的报告长什么样 |
| 形态选择 | 切成切片、N 路竞速,还是混合;竞速形态需预先声明first pass、rank all或best-of的裁决规则 |
| N 的含义 | N 是工作者总数,不是同时并发数 |
| 模型选择 | 默认取pstack-models.md中swarm workers一行的配置,缺省为opus(定义于 plugins/pstack/models.json) |
| 输出隔离 | 每个会写文件的工作者必须拥有独立的 worktree 或输出目录——因为所有子 Agent 都运行在同一台机器上 |
💡 小技巧:如果任务要求工作者验证或测量某个提交,任务书里必须写明确切的 SHA;测量类任务还要写明方法(样本数、单次样本含义、顺序),工作者需在结果中如实记录。
四阶段流程:Frame → Fan out → Aggregate → Report
这是 swarm 技能的核心骨架,也是它区别于"随手开几个子任务"的关键:
阶段 A|Frame(定框)——如上表,把判据、形态、N、模型、输出路径全部定死。
阶段 B|Fan out(扇出)——在一条消息中一次性启动全部 N 个工作者,全部以run_in_background: true后台运行。每份任务书(brief)必须自包含:目标、范围、确切切片或竞速臂、验证方法、报告格式。报告统一使用PASS/ISSUES/BLOCKED加证据三级状态;能证明缺陷的工作者要列出所有可证明的问题,而不只是第一个。有工作者掉线?按 N-1 继续并记录即可。
阶段 C|Aggregate(聚合)——读取终端结果,执行严格的质量闸门:
- 结果若没有记录任务书要求的 SHA 与方法,直接丢弃,只允许重新生成一次
- 二次缺失则记为"缺口(gap)"——缺口不算通过
- 覆盖类任务:每个必需切片都要有结果
- 竞速类任务:套用启动前声明的裁决规则,不得临时改规则
- 禁止把工作者的原始输出直接粘贴进报告
阶段 D|Report(汇报)——最终只返回一份整合报告:紧凑的结果表、一行一条的证据化问题清单、缺口/掉线说明,以及(若用了竞速)所适用的裁决规则。
模型与推理强度:swarm 如何挑选"大脑"
swarm 工作者默认使用opus模型,这份默认值从 plugins/pstack/models.json 中"盖章"生成,可随时通过/setup-pstack写入的pstack-models.md覆盖表在运行时覆盖。
进阶用法是为角色指定推理强度,写法形如opus @xhigh(可选等级:low、medium、high、xhigh、max)。在 Claude Code 上,等级会通过pstack:effort-<level>等专用 Agent 分派;在 Codex 上则直接作为spawn_agent的reasoning_effort参数传递。详见 skills/swarm/SKILL.md 的 Reasoning effort 一节。
swarm 与 arena 的区别:什么时候用哪个
pstack 提供两个并行技能,容易混淆:
| 维度 | swarm | arena |
|---|---|---|
| 目的 | 覆盖、竞速、探索,返回一份聚合报告 | 同一任务出 N 个候选方案,选基座 + 嫁接最强部分 |
| 典型场景 | 覆盖率矩阵、验收关卡(gauntlet)、探索分区 | 设计/代码"烤比"(bakeoff),单一尝试会锁死错误形态 |
| 终点产物 | 一张结果表 + 问题清单 | 一个综合后的工件 + 综合说明 |
poteto-mode 的路由规则说得很清楚:并行扇出走 swarm,需要择优融合的设计对抗走 arena(见 plugins/pstack/skills/poteto-mode/SKILL.md 与 plugins/pstack/skills/arena/SKILL.md)。
实战:swarm 在 poteto-mode 剧本中的用法
swarm 不只是独立技能,更是 pstack 多阶段工作流的"验证引擎":
- multi-phase-plan 剧本:PR 的代码就绪头 SHA 上,按 swarm 技能扇出验收车道——1 条门控车道 + 10 条实时车道 + 性能车道 + 至少 2 条各自聚焦的审计车道,全部
PASS才算干净(playbooks/multi-phase-plan.md) - autopilot-full 剧本:每个 PR 合并前都要"每轮 swarm 验证",根 Agent 只保留验证、会签与审计,合并按钮永远由人来点(playbooks/autopilot-full.md)
跨平台时,swarm 的语义不变,只换工具名:Codex 上每个工作者是一次spawn_agent调用(references/codex-tools.md),Copilot 上用task后台任务、每个写者独立 worktree(references/copilot-tools.md)。
上手总结:3 步跑通第一次 swarm
- 安装 pstack 插件后,用自然语言或
/swarm发起,例如 "swarm this: 检查这 5 个模块的边界情况" - 让 Agent 先完成 Frame:确认完成判据、形态、N 和模型,批准后再扇出
- 等待聚合报告——你会得到一张结果表、一行一条的问题清单,以及所有缺口的明确声明
swarm 技能的设计哲学浓缩在一句话里:并行负责广度,聚合负责收敛——N 个工作者再热闹,最终交到你手里的必须是一份带证据、无遗漏说明的报告。想继续深挖,建议按顺序阅读 skills/swarm/SKILL.md 全文、docs/reference.md 的斜杠命令表,以及 poteto-mode 的剧本目录。
【免费下载链接】pstack-claudeClaude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Poteto's pstack. Rigorous agent workflows with Cursor primitives translated for other harnesses.项目地址: https://gitcode.com/GitHub_Trending/ps/pstack-claude
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考