SuperAPI AI 工具集

arena

智能体与模型

查看项目

更新于 10-15 14:34

技能介绍

用途

Arena 用于对同一个任务并行生成多个候选方案,再从中择优并整合。它适合需要比较多种实现或设计方向、并希望把各方案优点合并成一个更优结果的场景。触发方式包括 /arena、'arena this'、'throw it in the…' 等。

主要能力

Arena 按六个阶段组织工作,启动前需先建立一个待办清单,每个阶段一条:Frame、Fan out、Cross-judge、Pick、Graft、Verify。

  • Phase A:Frame。所有候选使用同一提示词,因此提示词即契约。需说明每个候选要产出的产物,并推导出评分标准(3-6 条具体、可评分的成功标准),该标准供 Phase D 的挑选者使用,候选本身只看到任务。选择运行者时使用 pstack-models.md 中的 arena runners 行;若该表或该行缺失,则按 Models 中的默认值各运行一个。该行或 cross-judge 行中的 auto 或 inherit-parent 条目表示父模型,因此省略 model。若 Agent 工具拒绝某个已配置条目,则该席位改用其所属家族的默认模型并说明。家族按模型名划分,如 Opus、Fable、Sonnet。无家族匹配时,使用 Models 中的单角色默认值。若默认值被拒绝,则使用其错误信息中同家族最接近的有效 slug。当 arena 覆盖多个设计方向时可增加运行者;当工作偏向生成而非判断时,可对同一模型使用 N 次。每个候选需有独立输出位置(优先 git worktree,否则 /tmp/arena-<slug>/candidate-<n>/)。

  • Phase B:Fan out。在一条消息中并行派发全部 N 个子代理(run_in_background: true),每个子代理获得任务、共享依据的路径、自己的输出路径,以及产出产物和简短理由(说明考虑过哪些替代方案、拒绝了什么)的指令。若某候选无输出,则以 N-1 继续并记录掉队情况。

  • Phase C:Cross-judge。所有 Phase B 候选完成后,从 pstack-models.md 的 arena cross-judge pool 行中选择一个模型;若缺失则从 Models 的运行者默认值中选择,优先选择与父模型不同的家族。派发一个只读评审子代理,它看到评分标准和按路径标签标识的候选,逐条评分并推荐一个基础方案及理由。它与 Phase D 中你的阅读并行进行,但不要在候选仍在写入时派发。

  • Phase D:Pick a base。挑选前需完整阅读每个候选,按评分标准逐条打分而非整体感觉,并与交叉评审对比。基础方案一致则确认选择;不一致说明一方有偏差或评分标准含糊,需阅读双方理由后再决定。选择未来维护者最容易扩展且不破坏不变量的基础方案;两者接近时,按 Laziness Protocol 优先边界更清晰或 API 更小的方案。

  • Phase E:Graft。再次浏览每个落选候选,找出值得移植进基础方案的内容,通常每个候选一到两处,而非大部分。按 redesign-from-first-principles 原则手工折入每处移植,使结果在同一心智模型下保持连贯,不要机械粘贴。若候选收敛到同一形态,说明高度一致,记录并交付该共识形态,无需移植。若分歧极大,说明 Phase A 规格不足,应重新框定并重跑,而非对分歧取平均。

  • Phase F:Verify。按 prove-it-works 原则验证综合产物。若验证发现 arena 遗漏的问题,要么 Phase A 有误(重新框定并重跑),要么某候选已发现而你在移植时遗漏(回到 Phase E)。不要掩盖问题。

输出

一个综合产物,并附一份简短综合说明,内容包括:基础方案及其理由、交叉评审的裁决、每处移植及其来源候选、被拒绝的内容及原因、任何收敛或掉队情况,以及验证结果。

模型与推理强度

角色默认值来自 plugins/pstack/models.json(在该处编辑,重跑 tools/generate.mjs)。pstack-models.md 覆盖表中匹配的角色行会在运行时覆盖各默认值;/setup-pstack 会写入该表并按运行时列出其路径。

  • arena runners:opus、fable、sonnet、haiku
  • arena cross-judge pool:opus、fable、sonnet、haiku

覆盖表中的角色值可在模型名后指定推理强度,如 opus @xhigh。Claude Code 上的级别有:low、medium、high、xhigh、max,具体适用哪些取决于模型。不带 @ 的值取该表的默认强度行(一个级别或 session),表中无该行时取 session。session 不设置强度,即常规派发。读取模型前需去掉后缀:inherit-parent 或 auto 在任何级别下仍省略 model,模型名则作为 model 传入。在 Claude Code 上,级别会选择原本要用的 subagent_type 对应的 effort agent:pstack:poteto-agent 变为 subagent_type: "pstack:poteto-agent-<level>";general-purpose 或无 subagent_type 变为 subagent_type: "pstack:effort-<level>"。effort agent 只设置强度,因此传入的模型仍决定模型。在 Codex 上,将级别作为 spawn_agent 的 reasoning_effort 传入并保留常规指令。

平台说明

在 Codex 上,遵循本技能前需先阅读平台映射,包括其各技能说明。在 GitHub Copilot 上同样需先阅读平台映射,包括其各技能说明。

适用场景与限制

Arena 适用于需要并行探索多个方案并择优整合的任务,尤其是设计方向多样或对判断敏感的工作。其限制与前提包括:依赖 pstack-models.md 与 Models 配置,缺失时回退到默认值;候选需独立输出位置;交叉评审需在候选完成后进行;若候选分歧极大,需重新框定并重跑而非取平均。关于收费、价格、平台支持范围等具体信息,资料中暂未提供。