用途
Arena 用于解决 Claude 反复给出不理想答案的问题。与其反复重试,不如将同一任务同时交给多个子代理,让它们以不同方式求解,再通过淘汰赛对抗,最终留下一个经过多轮攻击和防御考验的方案。用户角色是编排者,不参与竞争、攻击或评判。
主要能力
- 多子代理并行求解:默认启动 100 个子代理(
--quick为 16 个),每个获得完全相同的任务,但分配不同的策略卡片(推理模式、工作流、策略)。 - 淘汰赛对抗:方案之间两两配对,互相攻击对方缺陷(错误、遗漏、边界情况、模糊之处),然后各自防御并修订,由裁判根据评分标准打分,胜者晋级。
- 最终对比:如果存在用户之前不满意的答案,冠军方案会与旧答案进行盲评对比。
- 状态管理:所有运行状态保存在当前目录的
.arena/<run>/arena.json,通过.arena/LATEST定位最近一次运行。所有子代理只写入.arena/目录。 - 波次控制:子代理按波次启动,默认每波 10 个,以适应 Claude Code 默认的并发限制。
使用方式
- 在请求中通过
/arena触发,可附加参数:--agents N(代理数量)、--quick(16 个代理)、--seed S(固定策略卡片和配对)、--wave W(每波子代理数)。 - 工具先执行
ARENA plan输出轮次和调用次数;若用户未明确要求使用 Arena 但表达不满,会先询问确认。 - 编写
.arena/task.md,包含任务、所有要求与约束、必要上下文以及“完成”标准;若有需超越的旧答案,写入.arena/baseline.md。 - 执行
ARENA init初始化运行。 - 通过
ARENA next驱动循环:spawn(生成方案)→ 每轮 attack(攻击)→ defend(防御)→ judge(评判)→ARENA collect→ARENA advance。 - 运行结束后执行
ARENA winner,读取冠军方案文件并向用户汇报获胜方案、获胜原因、轮次数以及旧答案对比结果(如有)。
适用场景
- 用户对 Claude 的回答不满意,希望获得更高质量或更多样化的解决方案。
- 任务较复杂,需要多角度推理和严格检验。
- 需要对比新旧答案质量,量化改进程度。
限制
- 依赖 Claude Code 的 Agent 工具(旧版本称为 Task)和
bracket.py脚本。 - 子代理无法访问对话上下文,所有信息必须写入任务文件。
- 大量子代理会产生大量文件写入,默认权限模式下需要逐文件批准,建议在运行前切换到 accept-edits 模式。
- 默认并发限制为 10 个工具调用,100 个代理的生成阶段需要 10 波,完整竞赛总计 70 波(含最终检查为 71 波)。
- 每次运行消耗较多子代理调用(如 100 代理约 595 次调用),需注意成本。
- 平台、收费信息暂未提供。