Agent Arena
Запускайте несколько AI-моделей одновременно для выполнения одной задачи, сравнивайте их решения бок о бок и выбирайте лучший результат для применения в вашем рабочем пространстве.
[!warning] Agent Arena находится в экспериментальной стадии. У неё есть известные ограничения в режимах отображения и управлении сессиями.
Agent Arena позволяет запустить несколько AI-моделей в соревновании за выполнение одной задачи. Каждая модель работает как полностью независимый агент в своём изолированном Git worktree, поэтому файловые операции никогда не пересекаются. Когда все агенты завершают работу, вы сравниваете результаты и выбираете победителя, чьи изменения будут объединены в основное рабочее пространство.
В отличие от субагентов, которые делегируют узкие подзадачи в рамках одной сессии, агенты Arena — это полноценные экземпляры агентов верхнего уровня, каждый со своей моделью, контекстным окном и полным доступом к инструментам.
На этой странице рассматриваются:
- Когда использовать Agent Arena
- Запуск сессии Arena
- Взаимодействие с агентами, включая режимы отображения и навигацию
- Сравнение результатов и выбор победителя
- Рекомендации
Когда использовать Agent Arena
Agent Arena наиболее эффективна, когда вам нужно оценить или сравнить, как разные модели решают одну и ту же задачу. Лучшие сценарии использования:
- Бенчмаркинг моделей: Оценка возможностей разных моделей на реальных задачах в вашей кодовой базе, а не на синтетических тестах
- Выбор лучшего из N: Получение нескольких независимых решений и выбор лучшей реализации
- Исследование подходов: Наблюдение за тем, как разные модели рассуждают и решают одну проблему — полезно для обучения и получения инсайтов
- Снижение рисков: Для критических изменений убедитесь, что несколько моделей сходятся на схожем подходе перед коммитом
Agent Arena потребляет значительно больше токенов, чем одна сессия (у каждого агента своё контекстное окно и вызовы модели). Она оправдана, когда ценность сравнения превышает затраты. Для рутинных задач, где вы доверяете модели по умолчанию, одна сессия будет эффективнее.
Запуск сессии Arena
Для запуска сессии используйте слэш-команду /arena. Укажите модели для соревнования и задачу:
/arena --models qwen3.5-plus,glm-5,kimi-k2.5 "Refactor the authentication module to use JWT tokens"Если опустить --models, появится интерактивное окно выбора моделей, где можно выбрать из настроенных провайдеров.
Что происходит при запуске
- Настройка worktree: Qwen Code создаёт изолированные Git worktree для каждого агента в
~/.qwen/arena/<session-id>/worktrees/<model-name>/. Каждый worktree точно отражает состояние вашего текущего рабочего каталога — включая staged, unstaged изменения и untracked файлы. - Запуск агентов: Каждый агент стартует в своём worktree с полным доступом к инструментам и настроенной моделью. Агенты запускаются последовательно, но выполняются параллельно.
- Выполнение: Все агенты работают над задачей независимо, без общего состояния или обмена данными. Вы можете отслеживать их прогресс и взаимодействовать с любым из них.
- Завершение: Когда все агенты завершают работу (или завершаются с ошибкой), начинается фаза сравнения результатов.
Взаимодействие с агентами
Режимы отображения
В настоящее время Agent Arena поддерживает in-process mode, где все агенты работают асинхронно в одном терминальном процессе. Панель вкладок внизу терминала позволяет переключаться между агентами.
[!note] Режимы отображения с разделением панелей запланированы на будущее. Мы планируем поддержку макетов с разделением панелей на основе tmux и iTerm2, где каждый агент получит собственную терминальную панель для настоящего просмотра бок о бок. В данный момент доступно только переключение вкладок в процессе.
Навигация между агентами
В in-process mode используйте горячие клавиши для переключения между представлениями агентов:
| Горячая клавиша | Действие |
|---|---|
Right | Переключиться на следующую вкладку агента |
Left | Переключиться на предыдущую вкладку агента |
Up | Перевести фокус в поле ввода |
Down | Перевести фокус на панель вкладок агентов |
Панель вкладок отображает текущий статус каждого агента:
| Индикатор | Значение |
|---|---|
● | Выполняется или ожидает |
✓ | Успешно завершён |
✗ | Завершён с ошибкой |
○ | Отменён |
Взаимодействие с отдельными агентами
При просмотре вкладки агента вы можете:
- Отправлять сообщения — введите текст в поле ввода, чтобы дать агенту дополнительные инструкции
- Подтверждать вызовы инструментов — если агент запрашивает подтверждение, диалог появится в его вкладке
- Просматривать полную историю — прокручивайте полный диалог агента, включая вывод модели, вызовы инструментов и результаты
Каждый агент представляет собой полноценную независимую сессию. Всё, что вы можете делать с основным агентом, доступно и для агента Arena.
Сравнение результатов и выбор победителя
Когда все агенты завершают работу, Arena переходит в фазу сравнения результатов. Вы увидите:
- Сводка статусов: Какие агенты успешно завершили работу, завершились с ошибкой или были отменены
- Метрики выполнения: Длительность, раунды рассуждений, использование токенов и количество вызовов инструментов для каждого агента
- Сводка сравнения Arena: Общие изменённые файлы vs. уникальные для одного агента, количество изменённых строк, эффективность использования токенов и краткое описание подхода, сгенерированное на основе diff, метрик и истории диалога каждого агента
Диалог выбора предлагает успешных агентов. Выберите одного, чтобы применить его изменения в основное рабочее пространство, или отклоните все результаты. Нажмите p для быстрого просмотра выделенного агента или d для просмотра детального diff перед выбором победителя.
Что происходит при выборе победителя
- Изменения победившего агента извлекаются в виде diff относительно базовой версии
- Diff применяется к вашему основному рабочему каталогу
- Все worktree и временные ветки автоматически очищаются
Если вы хотите изучить полный путь рассуждений перед принятием решения, полная история диалога каждого агента остаётся доступна через панель вкладок, пока активен диалог выбора.
Конфигурация
Поведение Arena можно настроить в settings.json:
{
"arena": {
"worktreeBaseDir": "~/.qwen/arena",
"maxRoundsPerAgent": 50,
"timeoutSeconds": 600
}
}| Параметр | Описание | Значение по умолчанию |
|---|---|---|
arena.worktreeBaseDir | Базовый каталог для worktree Arena | ~/.qwen/arena |
arena.maxRoundsPerAgent | Максимальное количество раундов рассуждений на агента | 50 |
arena.timeoutSeconds | Таймаут для каждого агента в секундах | 600 |
Рекомендации
Выбирайте модели, дополняющие друг друга
Arena наиболее полезна при сравнении моделей с существенно разными сильными сторонами. Например:
/arena --models qwen3.5-plus,glm-5,kimi-k2.5 "Optimize the database query layer"Сравнение трёх версий одного семейства моделей даст меньше инсайтов, чем сравнение моделей от разных провайдеров.
Делайте задачи самодостаточными
Агенты Arena работают независимо и не обмениваются данными. Задачи должны быть полностью описаны в промпте без необходимости уточнений:
Хорошо: «Рефакторинг модуля оплаты с использованием паттерна Strategy. Обновите все тесты.»
Менее эффективно: «Давайте обсудим, как улучшить модуль оплаты» — это требует диалога, что лучше подходит для одной сессии.
Ограничивайте количество агентов
Одновременно могут работать до 5 агентов. На практике 2–3 агента обеспечивают оптимальный баланс между ценностью сравнения и затратами ресурсов. Больше агентов означает:
- Более высокие затраты токенов (у каждого агента своё контекстное окно)
- Увеличение общего времени выполнения
- Больше результатов для сравнения
Начинайте с 2–3 агентов и увеличивайте количество только тогда, когда ценность сравнения оправдывает затраты.
Используйте Arena для решений с высоким влиянием
Arena раскрывает свой потенциал, когда важность задачи оправдывает запуск нескольких моделей:
- Выбор архитектуры для нового модуля
- Выбор подхода для сложного рефакторинга
- Валидация критического исправления бага с разных сторон
Для рутинных изменений, таких как переименование переменной или обновление конфигурационного файла, одна сессия будет быстрее и дешевле.
Устранение неполадок
Агенты не запускаются
- Убедитесь, что каждая модель в
--modelsправильно настроена с валидными API-ключами - Проверьте, что ваш рабочий каталог является Git-репозиторием (worktree требуют Git)
- Убедитесь, что у вас есть права на запись в базовый каталог worktree (
~/.qwen/arena/по умолчанию)
Ошибка создания worktree
- Выполните
git worktree list, чтобы проверить наличие старых worktree от предыдущих сессий - Очистите старые worktree с помощью
git worktree prune - Убедитесь, что ваша версия Git поддерживает worktrees (
git --version, требуется Git 2.5+)
Агент выполняется слишком долго
- Увеличьте таймаут: задайте
arena.timeoutSecondsв настройках - Уменьшите сложность задачи — задачи для Arena должны быть сфокусированными и чётко определёнными
- Уменьшите
arena.maxRoundsPerAgent, если агенты тратят слишком много раундов
Ошибка применения победителя
- Проверьте наличие незакоммиченных изменений в основном рабочем каталоге, которые могут вызвать конфликты
- Diff применяется как патч — возможны конфликты слияния, если ваш рабочий каталог изменился во время сессии
Ограничения
Agent Arena находится в экспериментальной стадии. Текущие ограничения:
- Только in-process mode: Отображение с разделением панелей через tmux или iTerm2 пока недоступно. Все агенты работают в одном окне терминала с переключением вкладок.
- Нет предпросмотра diff до выбора: Вы можете просматривать историю диалога каждого агента, но отсутствует единый просмотрщик diff для сравнения решений бок о бок перед выбором победителя.
- Без сохранения worktree: Worktree всегда очищаются после выбора. Нет возможности сохранить их для дальнейшего изучения.
- Нет возобновления сессии: Сессии Arena нельзя возобновить после выхода. Если вы закроете терминал в середине сессии, worktree останутся на диске и должны быть очищены вручную через
git worktree prune. - Максимум 5 агентов: Жёсткий лимит в 5 одновременных агентов изменить нельзя.
- Требуется Git-репозиторий: Arena требует Git-репозиторий для изоляции worktree. Её нельзя использовать в каталогах без Git.
Сравнение с другими режимами мультиагентности
Agent Arena — один из нескольких запланированных режимов мультиагентности в Qwen Code. Agent Team и Agent Swarm ещё не реализованы — таблица ниже описывает их предполагаемую архитектуру для справки.
| Agent Arena | Agent Team (запланировано) | Agent Swarm (запланировано) | |
|---|---|---|---|
| Цель | Соревновательный: найти лучшее решение для одной и той же задачи | Коллаборативный: совместно решать разные аспекты задачи | Пакетный параллельный: динамическое создание воркеров для массовых задач |
| Агенты | Заранее настроенные модели соревнуются независимо | Участники команды сотрудничают с назначенными ролями | Воркеры создаются на лету и уничтожаются после завершения |
| Коммуникация | Отсутствует обмен данными между агентами | Прямой обмен сообщениями peer-to-peer | Односторонняя: результаты агрегируются родительским процессом |
| Изоляция | Полная: отдельные Git worktrees | Независимые сессии с общим списком задач | Лёгкий эфемерный контекст для каждого воркера |
| Результат | Одно выбранное решение применяется в рабочее пространство | Синтезированные результаты с разных точек зрения | Агрегированные результаты параллельной обработки |
| Лучше всего подходит для | Бенчмаркинга, выбора между подходами моделей | Исследований, сложной коллаборации, кросс-уровневой работы | Пакетных операций, обработки данных, задач map-reduce |
Следующие шаги
Изучите связанные подходы для параллельной и делегированной работы:
- Лёгкая делегация: Субагенты обрабатывают узкие подзадачи в рамках вашей сессии — лучше подходят, когда сравнение моделей не требуется
- Ручные параллельные сессии: Запускайте несколько сессий Qwen Code самостоятельно в отдельных терминалах с Git worktrees для полного ручного контроля