Skip to Content
用户指南功能特性智能体竞技场

Agent Arena

同时调度多个 AI 模型执行同一任务,并排比较它们的解决方案,然后选择最佳结果应用到你的工作区。

[!warning] Agent Arena 目前处于实验阶段。它在显示模式和会话管理方面存在已知限制

Agent Arena 允许你让多个 AI 模型在同一任务上相互竞争。每个模型都在其独立的 Git worktree 中作为完全独立的 agent 运行,因此文件操作绝不会相互干扰。当所有 agent 完成后,你可以比较结果并选择一个优胜者,将其更改合并回主工作区。

与在单个会话中委派专注子任务的 subagent 不同,Arena agent 是完整的顶级 agent 实例——每个实例都拥有自己的模型、上下文窗口和完整的工具访问权限。

本文档涵盖以下内容:

何时使用 Agent Arena

当你想要评估或比较不同模型如何处理同一问题时,Agent Arena 最为有效。最典型的使用场景包括:

  • 模型基准测试:在实际代码库的真实任务上评估不同模型的能力,而非依赖合成基准测试
  • Best-of-N 选择:获取多个独立的解决方案并挑选最佳实现
  • 探索不同思路:观察不同模型如何推理和解决同一问题——有助于学习和获取启发
  • 降低风险:对于关键更改,在提交前验证多个模型是否收敛于相似的方案

Agent Arena 消耗的 token 远高于单个会话(每个 agent 都有独立的上下文窗口和模型调用)。当比较带来的价值足以抵消成本时,它的效果最好。对于你信任默认模型的常规任务,使用单个会话效率更高。

启动 Arena 会话

使用 /arena 斜杠命令启动会话。指定要参与竞争的模型和任务:

/arena --models qwen3.5-plus,glm-5,kimi-k2.5 "Refactor the authentication module to use JWT tokens"

如果省略 --models,将弹出交互式模型选择对话框,让你从已配置的提供商中进行选择。

启动时会发生什么

  1. Worktree 设置:Qwen Code 会在 ~/.qwen/arena/<session-id>/worktrees/<model-name>/ 为每个 agent 创建隔离的 Git worktree。每个 worktree 都会精确镜像你当前工作目录的状态——包括已暂存更改、未暂存更改和未跟踪文件。
  2. Agent 生成:每个 agent 在其独立的 worktree 中启动,拥有完整的工具访问权限和配置的模型。Agent 按顺序启动,但并行执行。
  3. 执行:所有 agent 独立处理任务,不共享状态或通信。你可以监控它们的进度并与任意 agent 交互。
  4. 完成:当所有 agent 完成(或失败)后,你将进入结果比较阶段。

与 agent 交互

显示模式

Agent Arena 目前支持进程内模式,所有 agent 在同一终端进程中异步运行。终端底部的标签栏允许你在不同 agent 之间切换。

[!note] 未来计划支持分屏显示模式。 我们打算支持基于 tmux 和 iTerm2 的分屏布局,每个 agent 将拥有独立的终端窗格以实现真正的并排查看。目前仅支持进程内标签切换。

在 agent 之间导航

在进程内模式下,使用键盘快捷键在 agent 视图之间切换:

快捷键操作
Right切换到下一个 agent 标签页
Left切换到上一个 agent 标签页
Up将焦点切换到输入框
Down将焦点切换到 agent 标签栏

标签栏显示每个 agent 的当前状态:

指示符含义
运行中或空闲
成功完成
失败
已取消

与单个 agent 交互

查看 agent 标签页时,你可以:

  • 发送消息 — 在输入区域键入内容,向 agent 提供额外指令
  • 批准工具调用 — 如果 agent 请求工具批准,确认对话框将出现在其标签页中
  • 查看完整历史 — 滚动浏览 agent 的完整对话记录,包括模型输出、工具调用和结果

每个 agent 都是一个完整且独立的会话。你能对主 agent 执行的所有操作,同样适用于 arena agent。

比较结果并选择优胜者

当所有 agent 完成后,Arena 将进入结果比较阶段。你将看到:

  • 状态摘要:哪些 agent 成功、失败或被取消
  • 执行指标:每个 agent 的耗时、推理轮数、token 使用量和工具调用次数

选择对话框将列出成功的 agent。选择一个将其更改应用到主工作区,或丢弃所有结果。

选择优胜者时会发生什么

  1. 将优胜 agent 的更改提取为相对于基线的 diff
  2. 将该 diff 应用到你的主工作目录
  3. 自动清理所有 worktree 和临时分支

如果你想在决定前检查结果,在选择对话框处于活动状态时,可以通过标签栏查看每个 agent 的完整对话历史。

配置

可以在 settings.json 中自定义 Arena 行为:

{ "arena": { "worktreeBaseDir": "~/.qwen/arena", "maxRoundsPerAgent": 50, "timeoutSeconds": 600 } }
配置项描述默认值
arena.worktreeBaseDirArena worktree 的基目录~/.qwen/arena
arena.maxRoundsPerAgent每个 agent 的最大推理轮数50
arena.timeoutSeconds每个 agent 的超时时间(秒)600

最佳实践

选择优势互补的模型

当你比较具有显著不同优势的模型时,Arena 的价值最大。例如:

/arena --models qwen3.5-plus,glm-5,kimi-k2.5 "Optimize the database query layer"

比较同一模型家族的三个版本,其收获通常不如跨提供商比较。

保持任务自包含

Arena agent 独立工作且互不通信。任务应能在提示词中完整描述,无需来回交互:

推荐:“重构支付模块以使用策略模式。更新所有测试。”

效果较差:“我们来讨论一下如何改进支付模块”——这类任务更适合对话交互,使用单个会话更佳。

限制 agent 数量

最多可同时运行 5 个 agent。实际上,2-3 个 agent 能在比较价值与资源成本之间取得最佳平衡。更多 agent 意味着:

  • 更高的 token 成本(每个 agent 都有独立的上下文窗口)
  • 更长的总执行时间
  • 需要比较的结果更多

建议从 2-3 个开始,仅在比较价值足以证明成本合理时再增加数量。

将 Arena 用于高影响决策

当决策的重要性足以证明运行多个模型的成本合理时,Arena 最能发挥价值:

  • 为新模块选择架构
  • 为复杂重构选择方案
  • 从多个角度验证关键 bug 修复

对于重命名变量或更新配置文件等常规更改,使用单个会话更快且成本更低。

故障排查

Agent 无法启动

  • 验证 --models 中的每个模型是否已正确配置有效的 API 凭证
  • 检查工作目录是否为 Git 仓库(worktree 依赖 Git)
  • 确保你对 worktree 基目录(默认为 ~/.qwen/arena/)具有写入权限

Worktree 创建失败

  • 运行 git worktree list 检查是否存在来自之前会话的残留 worktree
  • 使用 git worktree prune 清理残留 worktree
  • 确保你的 Git 版本支持 worktree(git --version,需要 Git 2.5+)

Agent 执行时间过长

  • 增加超时时间:在设置中配置 arena.timeoutSeconds
  • 降低任务复杂度——Arena 任务应聚焦且定义明确
  • 如果 agent 消耗过多轮次,可降低 arena.maxRoundsPerAgent

应用优胜者更改失败

  • 检查主工作目录中是否存在可能冲突的未提交更改
  • diff 以 patch 形式应用——如果会话期间工作目录发生更改,可能会产生合并冲突

限制

Agent Arena 目前处于实验阶段。当前限制包括:

  • 仅支持进程内模式:尚未提供通过 tmux 或 iTerm2 的分屏显示。所有 agent 均在单个终端窗口内运行,通过标签切换。
  • 选择前无 diff 预览:你可以查看每个 agent 的对话历史,但在选择优胜者前,没有统一的 diff 查看器来并排比较解决方案。
  • 不保留 worktree:选择完成后 worktree 始终会被清理。没有选项可保留它们以供进一步检查。
  • 不支持会话恢复:Arena 会话退出后无法恢复。如果在会话中途关闭终端,worktree 将保留在磁盘上,必须通过 git worktree prune 手动清理。
  • 最多 5 个 agent:5 个并发 agent 的硬性限制无法更改。
  • 需要 Git 仓库:Arena 依赖 Git 仓库实现 worktree 隔离。无法在非 Git 目录中使用。

与其他多 agent 模式的对比

Agent Arena 是 Qwen Code 计划中的多种多 agent 模式之一。Agent TeamAgent Swarm 尚未实现——下表描述了它们的预期设计,仅供参考。

Agent ArenaAgent Team(计划中)Agent Swarm(计划中)
目标竞争性:为_同一_任务寻找最佳解决方案协作性:共同处理_不同_方面批量并行:为批量任务动态生成 worker
Agent预配置的模型独立竞争队友按分配的角色协作动态生成 worker,完成后销毁
通信无 agent 间通信直接点对点消息传递单向:结果由父节点汇总
隔离性完全隔离:独立的 Git worktree独立会话,共享任务列表每个 worker 使用轻量级临时上下文
输出将选定的一个解决方案应用到工作区综合多视角的结果并行处理的汇总结果
适用场景基准测试、在模型方案之间进行选择研究、复杂协作、跨层工作批量操作、数据处理、map-reduce 任务

后续步骤

探索并行和委派工作的相关方法:

  • 轻量级委派Subagent 在你的会话内处理专注的子任务——当你不需要模型比较时更合适
  • 手动并行会话:在独立的终端中自行运行多个 Qwen Code 会话,并配合 Git worktrees  实现完全的手动控制
Last updated on