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 worktrees для каждого агента по пути
~/.qwen/arena/<session-id>/worktrees/<model-name>/. Каждый worktree точно отражает состояние вашего текущего рабочего каталога — включая проиндексированные, непроиндексированные и неотслеживаемые файлы. - Запуск агентов: Каждый агент стартует в своём worktree с полным доступом к инструментам и настроенной моделью. Агенты запускаются последовательно, но выполняются параллельно.
- Выполнение: Все агенты работают над задачей независимо, без общего состояния или взаимодействия. Вы можете отслеживать их прогресс и взаимодействовать с любым из них.
- Завершение: Когда все агенты завершают работу (или завершаются с ошибкой), вы переходите к фазе сравнения результатов.
Взаимодействие с агентами
Режимы отображения
В настоящее время Agent Arena поддерживает режим in-process, где все агенты работают асинхронно в одном терминальном процессе. Панель вкладок внизу терминала позволяет переключаться между агентами.
[!note] Режимы отображения с разделением панелей запланированы на будущее. Мы планируем поддержку макетов с разделением панелей на основе tmux и iTerm2, где каждый агент получит собственную терминальную панель для настоящего просмотра бок о бок. В настоящее время доступно только переключение вкладок в рамках одного процесса.
Навигация между агентами
В режиме in-process используйте горячие клавиши для переключения между представлениями агентов:
| Горячая клавиша | Действие |
|---|---|
Right | Переключиться на следующую вкладку агента |
Left | Переключиться на предыдущую вкладку агента |
Up | Перевести фокус в поле ввода |
Down | Перевести фокус на панель вкладок агентов |
Панель вкладок отображает текущий статус каждого агента:
| Индикатор | Значение |
|---|---|
● | Выполняется или ожидает |
✓ | Успешно завершён |
✗ | Завершён с ошибкой |
○ | Отменён |
Взаимодействие с отдельными агентами
При просмотре вкладки агента вы можете:
- Отправлять сообщения — введите текст в поле ввода, чтобы дать агенту дополнительные инструкции
- Подтверждать вызовы инструментов — если агент запрашивает подтверждение, диалог подтверждения появится на его вкладке
- Просматривать полную историю — прокручивайте полный разговор агента, включая вывод модели, вызовы инструментов и результаты
Каждый агент представляет собой полноценную независимую сессию. Всё, что вы можете делать с основным агентом, доступно и для агента Arena.
Сравнение результатов и выбор победителя
Когда все агенты завершают работу, Arena переходит в фазу сравнения результатов. Вы увидите:
- Сводка статусов: Какие агенты успешно завершили работу, завершились с ошибкой или были отменены
- Метрики выполнения: Длительность, раунды рассуждений, использование токенов и количество вызовов инструментов для каждого агента
Диалог выбора покажет успешно завершивших работу агентов. Выберите одного, чтобы применить его изменения в основное рабочее пространство, или отклоните все результаты.
Что происходит при выборе победителя
- Изменения агента-победителя извлекаются в виде 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 работают независимо и не взаимодействуют друг с другом. Задачи должны быть полностью описаны в промпте без необходимости уточнений:
Хорошо: «Рефакторинг модуля оплаты с использованием паттерна «Стратегия». Обновите все тесты.»
Менее эффективно: «Давайте обсудим, как улучшить модуль оплаты» — это требует диалога, что лучше подходит для обычной сессии.
Ограничивайте количество агентов
Одновременно может работать до 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: Отображение с разделением панелей через 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 для полного ручного контроля