Agent Arena
複数のAIモデルを同時に起動して同一のタスクを実行させ、それぞれの解答を並べて比較し、最適な結果を選んでワークスペースに適用できます。
[!warning] Agent Arenaは実験的な機能です。表示モードとセッション管理に関する既知の制限事項があります。
Agent Arenaを使用すると、複数のAIモデルを同じタスクで競わせることができます。各モデルは、独立したGitワークツリー内で完全に独立したエージェントとして実行されるため、ファイル操作が互いに干渉することはありません。すべてのエージェントが完了すると、結果を比較して勝者を選択し、メインのワークスペースにマージできます。
単一セッション内で特定のサブタスクを委任するサブエージェントとは異なり、Arenaのエージェントは完全なトップレベルのエージェントインスタンスであり、それぞれが独自のモデル、コンテキストウィンドウ、および完全なツールアクセスを持ちます。
このページでは以下を説明します:
- Agent Arenaを使用するタイミング
- Arenaセッションの開始
- エージェントとの対話(表示モードとナビゲーション)
- 結果の比較と勝者の選択
- ベストプラクティス
Agent Arenaを使用するタイミング
Agent Arenaは、異なるモデルが同じ問題にどのように取り組むかを評価または比較したい場合に最も効果的です。最も強いユースケースは次のとおりです:
- モデルのベンチマーク:実際のコードベースで、さまざまなモデルの実タスクにおける能力を評価します(合成ベンチマークではありません)
- Best-of-N選択:複数の独立したソリューションを取得し、最適な実装を選びます
- アプローチの探求:異なるモデルが同じ問題をどのように推論し、解決するかを確認します。学習や洞察に役立ちます
- リスク低減:重要な変更の場合、複数のモデルが同様のアプローチに収束することを確認してからコミットします
Agent Arenaは単一セッションよりも大幅に多くのトークンを使用します(各エージェントが独自のコンテキストウィンドウとモデル呼び出しを持ちます)。比較の価値がコストを正当化する場合に最適です。デフォルトのモデルを信頼している日常的なタスクでは、単一セッションの方が効率的です。
Arenaセッションの開始
スラッシュコマンド/arenaを使用してセッションを開始します。競わせたいモデルとタスクを指定します:
/arena --models qwen3.5-plus,glm-5,kimi-k2.5 "認証モジュールをJWTトークンを使用するようにリファクタリングする"--modelsを省略すると、インタラクティブなモデル選択ダイアログが表示され、設定済みのプロバイダーから選択できます。
開始時の動作
- ワークツリーのセットアップ:Qwen Codeは、各エージェント用の隔離されたGitワークツリーを
~/.qwen/arena/<session-id>/worktrees/<model-name>/に作成します。各ワークツリーは、現在の作業ディレクトリの状態(ステージされた変更、ステージされていない変更、追跡されていないファイルを含む)を正確に複製します。 - エージェントの起動:各エージェントは独自のワークツリーで起動し、完全なツールアクセスと設定されたモデルを持ちます。エージェントは順次起動されますが、並列で実行されます。
- 実行:すべてのエージェントは、共有状態や通信なしで独立してタスクを実行します。進行状況を監視したり、任意のエージェントと対話したりできます。
- 完了:すべてのエージェントが完了(または失敗)すると、結果比較フェーズに入ります。
エージェントとの対話
表示モード
現在、Agent Arenaはインプロセスモードのみをサポートしています。すべてのエージェントは同じターミナルプロセス内で非同期に実行されます。ターミナル下部のタブバーでエージェントを切り替えることができます。
[!note] 分割ペイン表示モードは将来計画されています。 各エージェントが独自のターミナルペインを持つtmuxベースおよびiTerm2ベースの分割ペインレイアウトをサポートする予定です。現在はインプロセスタブ切り替えのみ利用可能です。
エージェント間の移動
インプロセスモードでは、キーボードショートカットを使用してエージェントビューを切り替えます:
| ショートカット | アクション |
|---|---|
Right | 次のエージェントタブに切り替え |
Left | 前のエージェントタブに切り替え |
Up | 入力ボックスにフォーカス |
Down | エージェントタブバーにフォーカス |
タブバーには各エージェントの現在のステータスが表示されます:
| インジケーター | 意味 |
|---|---|
● | 実行中または待機中 |
✓ | 正常に完了 |
✗ | 失敗 |
○ | キャンセル |
個々のエージェントとの対話
エージェントのタブを表示しているときは、次の操作が可能です:
- メッセージの送信 — 入力エリアに入力して、エージェントに追加の指示を与えます
- ツール呼び出しの承認 — エージェントがツールの承認を要求した場合、確認ダイアログがそのタブに表示されます
- 完全な履歴の表示 — モデル出力、ツール呼び出し、結果を含むエージェントの会話全体をスクロールして表示できます
各エージェントは完全な独立したセッションです。メインエージェントでできることはすべて、Arenaエージェントでも実行できます。
結果の比較と勝者の選択
すべてのエージェントが完了すると、Arenaは結果比較フェーズに入ります。次の情報が表示されます:
- ステータスサマリー:どのエージェントが成功、失敗、またはキャンセルされたか
- 実行メトリクス:各エージェントの実行時間、推論ラウンド数、トークン使用量、ツール呼び出し回数
- Arena比較サマリー:共通で変更されたファイルと一方のエージェントのみが変更したファイル、行変更数、トークン効率、各エージェントのdiff、メトリクス、会話履歴から生成された高レベルのアプローチサマリー
成功したエージェントを提示する選択ダイアログが表示されます。いずれかを選択してその変更をメインワークスペースに適用するか、すべての結果を破棄します。pを押すとハイライトされたエージェントのクイックプレビューを切り替え、dを押すとそのエージェントの詳細なdiffを切り替えてから勝者を選択できます。
勝者を選択した後の動作
- 勝者の変更がベースラインとのdiffとして抽出されます
- そのdiffがメインの作業ディレクトリに適用されます
- すべてのワークツリーと一時ブランチは自動的にクリーンアップされます
決定前に完全な推論経路を確認したい場合は、選択ダイアログがアクティブな間も、タブバーから各エージェントの完全な会話履歴を引き続き参照できます。
設定
Arenaの動作はsettings.jsonでカスタマイズできます:
{
"arena": {
"worktreeBaseDir": "~/.qwen/arena",
"maxRoundsPerAgent": 50,
"timeoutSeconds": 600
}
}| 設定 | 説明 | デフォルト |
|---|---|---|
arena.worktreeBaseDir | Arenaワークツリーのベースディレクトリ | ~/.qwen/arena |
arena.maxRoundsPerAgent | エージェントあたりの最大推論ラウンド数 | 50 |
arena.timeoutSeconds | 各エージェントのタイムアウト(秒) | 600 |
ベストプラクティス
互いに補完し合うモデルを選ぶ
Arenaは、意味のある異なる強みを持つモデルを比較するときに最も価値があります。例えば:
/arena --models qwen3.5-plus,glm-5,kimi-k2.5 "データベースクエリ層を最適化する"同じモデルファミリーの3つのバージョンを比較するよりも、プロバイダーをまたいで比較する方がより多くの洞察が得られます。
タスクを自己完結型に保つ
Arenaエージェントは独立して動作し、通信はありません。タスクは、プロンプト内で完全に記述可能であり、やり取りを必要としないものであるべきです:
良い例:「支払いモジュールをストラテジーパターンを使用するようにリファクタリングする。すべてのテストを更新する。」
効果が低い例:「支払いモジュールを改善する方法について話し合いましょう」 — これは会話が役立つため、単一セッションに適しています。
エージェントの数を制限する
最大5つのエージェントを同時に実行できます。実際には、2〜3つのエージェントが比較価値とリソースコストの最適なバランスを提供します。エージェントを増やすと:
- トークンコストの増加(各エージェントが独自のコンテキストウィンドウを持つ)
- 合計実行時間の増加
- 比較する結果の増加
最初は2〜3で始め、比較の価値がコストを正当化する場合にのみ拡大してください。
重要度の高い判断にArenaを使用する
Arenaは、複数のモデルを実行する価値がある場合に真価を発揮します:
- 新しいモジュールのアーキテクチャの選択
- 複雑なリファクタリングのアプローチの選定
- 重要なバグ修正を複数の観点から検証する
変数名の変更や設定ファイルの更新などの日常的な変更には、単一セッションの方が高速でコストが低くなります。
トラブルシューティング
エージェントが起動に失敗する
--modelsで指定した各モデルが適切に設定され、有効なAPI認証情報があることを確認してください- 作業ディレクトリがGitリポジトリであることを確認してください(ワークツリーにはGitが必要です)
- ワークツリーのベースディレクトリ(デフォルトでは
~/.qwen/arena/)への書き込みアクセス権があることを確認してください
ワークツリーの作成に失敗する
git worktree listを実行して、以前のセッションの古いワークツリーがないか確認してくださいgit worktree pruneで古いワークツリーをクリーンアップしてください- Gitのバージョンがワークツリーをサポートしていることを確認してください(
git --version、Git 2.5以降が必要)
エージェントの実行に時間がかかりすぎる
- タイムアウトを延長する:設定で
arena.timeoutSecondsを設定します - タスクの複雑さを減らす — Arenaのタスクは集中して明確に定義する必要があります
- エージェントが多くのラウンドを費やしている場合は、
arena.maxRoundsPerAgentを下げます
勝者の適用に失敗する
- メインの作業ディレクトリに競合する可能性のある未コミットの変更がないか確認してください
- diffはパッチとして適用されます。セッション中に作業ディレクトリが変更された場合、マージ競合が発生する可能性があります
制限事項
Agent Arenaは実験的な機能です。現在の制限事項は次のとおりです:
- インプロセスモードのみ:tmuxやiTerm2による分割ペイン表示はまだ利用できません。すべてのエージェントは単一のターミナルウィンドウ内で実行され、タブ切り替えで操作します。
- 選択前のdiffプレビューなし:各エージェントの会話履歴は表示できますが、勝者を選ぶ前にソリューションを並べて比較する統合diffビューアはありません。
- ワークツリーの保持なし:ワークツリーは選択後常にクリーンアップされます。さらに調査するために保持するオプションはありません。
- セッションの再開不可:Arenaセッションは終了後に再開できません。セッション中にターミナルを閉じた場合、ワークツリーはディスクに残り、
git worktree pruneで手動でクリーンアップする必要があります。 - 最大5エージェント:最大5つの同時エージェントのハードリミットは変更できません。
- Gitリポジトリ必須:Arenaではワークツリー分離のためにGitリポジトリが必要です。Git以外のディレクトリでは使用できません。
他のマルチエージェントモードとの比較
Agent Arenaは、Qwen Codeで計画されているいくつかのマルチエージェントモードの1つです。Agent TeamおよびAgent Swarmはまだ実装されていません。以下の表は、それらの意図された設計を参考として説明しています。
| Agent Arena | Agent Team(計画中) | Agent Swarm(計画中) | |
|---|---|---|---|
| 目標 | 競争的:同一タスクの最適解を見つける | 協調的:異なる側面を一緒に取り組む | バッチ並列:大量タスクのために動的にワーカーを生成 |
| エージェント | 事前設定されたモデルが独立して競争 | 役割が割り当てられたチームメイトが協力 | その場で生成され、完了後に破棄されるワーカー |
| 通信 | エージェント間の通信なし | 直接のピアツーピアメッセージング | 一方向:結果は親エージェントに集約 |
| 分離 | 完全:別々のGitワークツリー | 共有タスクリストを持つ独立したセッション | ワーカーごとに軽量な一時コンテキスト |
| 出力 | 選択された1つのソリューションをワークスペースに適用 | 複数の視点から統合された結果 | 並列処理からの集約結果 |
| 最適な用途 | ベンチマーク、モデルアプローチの選択 | リサーチ、複雑なコラボレーション、クロスレイヤー作業 | バッチ操作、データ処理、マップリデュースタスク |
次のステップ
並列作業と委譲作業に関連するアプローチを探る: