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

Agent Arena

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

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

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

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

本文档涵盖以下内容:

何时使用 Agent Arena

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

  • 模型基准测试:在实际代码库的真实任务上评估不同模型的能力,而非依赖合成基准测试
  • 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 使用量和工具调用次数
  • Arena 对比摘要:共同修改的文件与仅单个 agent 修改的文件、代码行变更数量、token 效率,以及基于每个 agent 的 diff、指标和对话历史生成的高层方案摘要

选择对话框会列出成功的 agent。选择一个将其更改应用到主工作区,或放弃所有结果。在选择优胜者之前,按 p 可切换高亮 agent 的快速预览,按 d 可切换该 agent 的详细 diff。

选择优胜者时会发生什么

  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 会以补丁形式应用——如果会话期间你的工作目录发生了更改,可能会产生合并冲突

限制

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 任务

后续步骤

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

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