Agent Arena
Одновременно отправьте несколько моделей ИИ на выполнение одной задачи, сравните их решения бок о бок и выберите лучший результат для применения в вашем рабочем пространстве.
[!warning] Agent Arena является экспериментальной. У неё есть известные ограничения, связанные с режимами отображения и управлением сессиями.
Agent Arena позволяет вам столкнуть несколько моделей ИИ друг с другом для решения одной задачи. Каждая модель работает как полностью независимый агент в своём изолированном 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 "Рефакторинг модуля аутентификации для использования JWT-токенов"Если опустить --models, появится интерактивный диалог выбора моделей, в котором вы сможете выбрать из ваших настроенных провайдеров.
Что происходит при запуске
- Настройка worktree: Qwen Code создаёт изолированные Git worktree для каждого агента в
~/.qwen/arena/<session-id>/worktrees/<model-name>/. Каждый worktree точно отражает текущее состояние вашего рабочего каталога — включая проиндексированные изменения, непроиндексированные изменения и неотслеживаемые файлы. - Запуск агентов: Каждый агент запускается в своём worktree с полным доступом к инструментам и своей настроенной моделью. Агенты запускаются последовательно, но выполняются параллельно.
- Выполнение: Все агенты работают над задачей независимо, без общего состояния или связи. Вы можете отслеживать их прогресс и взаимодействовать с любым из них.
- Завершение: Когда все агенты завершат работу (или произойдёт сбой), вы переходите к фазе сравнения результатов.
Взаимодействие с агентами
Режимы отображения
Agent Arena в настоящее время поддерживает внутрипроцессный режим, где все агенты работают асинхронно в рамках одного терминального процесса. Панель вкладок внизу терминала позволяет переключаться между агентами.
[!note] Режимы отображения с разделёнными панелями запланированы на будущее. Мы планируем поддерживать раскладки на основе tmux и iTerm2, где каждый агент получит свою панель терминала для истинного просмотра бок о бок. В настоящее время доступно только переключение вкладок внутри процесса.
Навигация между агентами
Во внутрипроцессном режиме используйте сочетания клавиш для переключения между представлениями агентов:
| Сочетание | Действие |
|---|---|
Вправо | Переключиться на следующую вкладку агента |
Влево | Переключиться на предыдущую вкладку |
Вверх | Переместить фокус в поле ввода |
Вниз | Переместить фокус на панель вкладок |
Панель вкладок показывает текущий статус каждого агента:
| Индикатор | Значение |
|---|---|
● | Выполняется или ожидает |
✓ | Успешно завершён |
✗ | Произошла ошибка |
○ | Отменён |
Взаимодействие с отдельными агентами
При просмотре вкладки агента вы можете:
- Отправлять сообщения — введите текст в поле ввода, чтобы дать агенту дополнительные инструкции.
- Подтверждать вызовы инструментов — если агент запрашивает одобрение вызова инструмента, диалог подтверждения появляется на его вкладке.
- Просматривать полную историю — прокрутите полный диалог агента, включая вывод модели, вызовы инструментов и результаты.
Каждый агент — это полноценная независимая сессия. Всё, что вы можете делать с основным агентом, вы можете делать и с агентом Arena.
Сравнение результатов и выбор победителя
Когда все агенты завершены, Arena переходит в фазу сравнения результатов. Вы увидите:
- Сводка статусов: Какие агенты успешно завершились, завершились ошибкой или были отменены.
- Метрики выполнения: Время выполнения, количество раундов рассуждений, использование токенов и количество вызовов инструментов для каждого агента.
- Сводка сравнения Arena: Файлы, изменённые общими усилиями, и файлы, изменённые только одним агентом; количество изменённых строк; эффективность использования токенов; сводка подходов на высоком уровне, сгенерированная на основе 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 "Оптимизировать слой запросов к базе данных"Сравнение трёх версий одной и той же семейства моделей даёт меньше понимания, чем сравнение разных провайдеров.
Оставляйте задачи самодостаточными
Агенты 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 поддерживает worktree (
git --version, требуется Git 2.5+).
Агент выполняется слишком долго
- Увеличьте таймаут: установите
arena.timeoutSecondsв настройках. - Уменьшите сложность задачи — задачи Arena должны быть сфокусированными и хорошо определёнными.
- Уменьшите
arena.maxRoundsPerAgent, если агенты тратят слишком много раундов.
Не удаётся применить изменения победителя
- Проверьте, нет ли незафиксированных изменений в вашем основном рабочем каталоге, которые могут конфликтовать.
- Diff применяется как патч — возможны конфликты слияния, если ваш рабочий каталог изменился во время сессии.
Ограничения
Agent Arena является экспериментальной. Текущие ограничения:
- Только внутрипроцессный режим: Разделение панелей через 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 (планируется) | |
|---|---|---|---|
| Цель | Конкурентная: найти лучшее решение для одной задачи | Коллаборативная: совместно решать разные аспекты | Пакетная параллельная: динамически порождать воркеры для массовых задач |
| Агенты | Предварительно настроенные модели соревнуются независимо | Участники команды сотрудничают с назначенными ролями | Воркеры создаются на лету, уничтожаются по завершении |
| Общение | Нет меж-агентской связи | Прямые сообщения между участниками | Однонаправленное: результаты агрегируются родителем |
| Изоляция | Полная: отдельные Git worktree | Независимые сессии с общим списком задач | Лёгкий эфемерный контекст на каждого воркера |
| Результат | Одно выбранное решение применяется к рабочему пространству | Синтезированные результаты с разных точек зрения | Агрегированные результаты от параллельной обработки |
| Лучше всего | Бенчмаркинг, выбор между подходами моделей | Исследования, сложная коллаборация, межслоевая работа | Пакетные операции, обработка данных, задачи map-reduce |
Дальнейшие шаги
Изучите смежные подходы для параллельной и делегированной работы:
- Лёгкое делегирование: Под-агенты обрабатывают сфокусированные подзадачи в рамках вашей сессии — лучше, когда не нужно сравнивать модели.
- Ручные параллельные сессии: Запустите несколько сессий Qwen Code в отдельных терминалах с помощью Git worktree для полного ручного контроля.