Получить AX Code · БесплатноДокументация

Эта страница переведена с английской документации. Команды, идентификаторы и примеры не изменены. Среда выполнения 7.24.4 · SDK 2.6.7. Английский оригинал

Режимы выполнения (локально, облако, гибрид, Council, Arena)

Статус: активно
Область: текущее состояние
Последняя проверка: 2026-09-12
Владелец: среда выполнения ax-code

AX Code может размещать работу на локальном выводе, у размещённых провайдеров и CLI или у обоих (гибрид) и может раздавать работу с высокими ставками нескольким подключённым провайдерам (рецензия council и arena «лучший из N»). Эта страница документирует выпущенное поведение этих режимов.

Источник истины

Когда поведение меняется, сверьте с:

  • packages/ax-code/src/mode/ — чистая политика, гибрид, агрегация council, ранжирование arena, дебаты, бюджет, память, политика worktree, оценка implement-arena
  • packages/ax-code/src/tool/council.ts — инструмент council для нескольких провайдеров
  • packages/ax-code/src/tool/arena.ts и arena-implement.ts — план и реализация arena
  • packages/ax-code/src/session/prompt/prompt-routing.ts — гибридное размещение, когда modes.default равен hybrid
  • packages/ax-code/src/config/schema-impl.ts — схема конфигурации modes
  • packages/ax-code/src/command/template/{council,arena}.txt — /council и /arena есть в меню команд с косой чертой по умолчанию

Выбор режима работы (Agent | Council | Arena)

TUI и Desktop показывают элемент режима работы для маршрутизации нескольких моделей. По умолчанию — Agent.

Выбор в интерфейсе Отправка свободного текста становится
Agent (по умолчанию) Обычный запрос одного агента
Council рецензия нескольких провайдеров /council {your message}
Arena лучший из N на нескольких моделях /arena {your message}
  • Обычное обрамление TUI: подвал не показывает метку Agent. Режим запуска и песочница остаются. /work-mode (палитра Выбрать режим работы) открывает явный выбор: Agent, Council и Arena, со стоимостью и семантикой в каждой строке. Недоступные строки ансамбля отключены с указанием причины.
  • Обрамление взведённого ансамбля: после выбора Council или Arena появляется метка (Council · 2 или полая Arena (off), если позже станет недоступной). Щёлкните метку, чтобы вернуться к Agent. Новые чаты сбрасываются на Agent.
  • Доступность: режим доступен, когда он включён в конфигурации, у хотя бы двух подключённых провайдеров есть выбираемая модель и настроенный потолок участников не равен 1. Метки и строки выбора обновляются вживую, когда провайдеры подключаются или отключаются.
  • Подсказка до отправки (TUI): однострочная подсказка над запросом появляется, когда council или arena заблокированы или ещё проверяются, и при первом использовании доступного режима (например, Council mode · up to 2 reviewers · advisory · approval on first use). После успешной отправки в этом режиме метка остаётся статусом, а подсказка скрывается. Отправка, пока выбранный режим недоступен, блокируется с указанием причины: черновик сохраняется, и запрос никогда молча не понижается до запуска одной модели.
  • Desktop: метка на панели компоновщика (рядом с Ручной/Автономный).
  • Явные /council и /arena никогда не переписываются и остаются разовыми точками входа.
  • Агенты-специалисты (architect, security, …) остаются в отдельном выборе агента.

Режимы размещения вкратце

Режим Что делает Меняет рабочую область? По умолчанию
local Предпочитать AX Engine (или настроенного локального провайдера) Да (один агент) Когда вы закрепляете local / гибрид размещает локально
cloud Предпочитать размещённых провайдеров или CLI переднего края Да (один агент) Когда локальное недоступно
hybrid Политика выбирает локально или облако по доступности, сложности и приватности Да (один путь) Задайте modes.default: "hybrid"
council Раздать структурированную рецензию или замысел; классифицировать консенсус / большинство / меньшинство / одиночку Нет (рекомендательно) Инструмент плюс /council или режим работы = Council
arena Сравнение планов нескольких моделей или лучший из N реализации в worktree План: нет. Реализация: только в worktree По согласию (modes.arena.enabled) плюс режим работы = Arena

Маршрутизация специалистов по ключевым словам и уровни сложности (см. Автомаршрут) ортогональны гибридному размещению и режимам ансамбля.

Усилие модели / уровень рассуждения (Быстро, Сбалансированно, Глубоко, Максимум) тоже ортогонален: это бюджет рассуждения на модель, а не режим работы. См. Усилие модели.

Конфигурация

В ax-code.json:

{
  "modes": {
    "default": "hybrid",
    "hybrid": {
      "preferLocalWhenAvailable": true,
      "escalateOnHighComplexity": true,
      "localProviderID": "ax-engine"
    },
    "council": {
      "enabled": true,
      "maxMembers": 3,
      "timeoutMs": 180000,
      "debateRounds": 0
    },
    "arena": {
      "enabled": true,
      "maxContestants": 3,
      "strategy": "verify_first"
    },
    "budget": {
      "maxEstimatedUsd": 0.5,
      "estimatedUsdPerMember": 0.05
    }
  }
}
Поле Смысл
modes.default local | cloud | hybrid | arena | council. Не задано: гибрид, когда локальное подходит сигналам политики, иначе облако для путей по умолчанию с одним маршрутом.
modes.hybrid.* Предпочтение локального, повышение высокой сложности в облако, идентификатор локального провайдера
modes.council.* Включение, потолок участников, тайм-аут, масштаб тайм-аута модели рассуждения, переопределения тайм-аута на участника, раунды дебатов, председатель по согласию / адаптивная раздача (оба по умолчанию выключены)
modes.arena.enabled Должно быть true для инструмента arena (по умолчанию выключено). Правки посреди сессии подхватываются на следующем вызове инструмента (Config.getFresh). Или передайте enableIfDisabled: true инструменту arena.
modes.arena.strategy verify_first (рекомендуется для реализации), diversity или hybrid_score
modes.arena.reasoningTimeoutScale Множитель тайм-аута для участников, чья модель объявляет возможность рассуждения (иначе modes.council.reasoningTimeoutScale, затем 3)
modes.arena.memberTimeoutMs Абсолютные переопределения тайм-аута на участника по ключу "providerID" или "providerID/modelID" (иначе modes.council.memberTimeoutMs)
modes.arena.judge Ослеплённый судья по рубрике для режима плана (по умолчанию: true)
modes.ensembleLedger Локальный журнал вызовов JSONL для порождений ансамбля (по умолчанию: true; только хеши SHA-256 запросов, без тел, без исходящей передачи)
modes.budget.* Закрытый при сбое потолок оценочной суммы в долларах США для раздачи ансамбля

Гибридное размещение

Когда modes.default равен hybrid и пользователь или агент не закрепил модель:

  1. Если у локального провайдера (по умолчанию ax-engine) есть выбираемая модель → предпочитать local для низкой и средней сложности.
  2. Если сложность высокая и escalateOnHighComplexity истинно → cloud.
  3. Если приватность требует локального и локальное доступно → local.
  4. Если локальное недоступно → cloud.

Сложность по-прежнему использует существующий путь малой и быстрой модели для сообщений low, когда включена маршрутизация сложности автомаршрута (Автомаршрут). Гибрид не заменяет маршрутизацию специалистов по ключевым словам.

Локальные модели и рекомендации по памяти: Выбор модели AX Engine. Список провайдеров: Поддерживаемые провайдеры.

Council (режим консенсуса)

Инструмент: council
Команда: /council <question>

  1. Выбирает разнообразных подключённых провайдеров (разнообразие семейств — у нераспознанного шлюза нескольких моделей семейство сводится к идентификатору модели; мягкое смещение из памяти исходов).
  2. Параллельно раздаёт структурированный запрос рецензии или замысла.
  3. Собирает замечания в уровни консенсуса (единогласие успешных участников при кворуме — хотя бы max(2, ⌈2/3 × attempted⌉) успехов), строгого большинства (больше половины попыток участников), меньшинства (хотя бы двое) и одиночки. Находки раскрывают поддержку относительно попыток участников (2/6), а отчёты с низким покрытием говорят, что метки консенсуса требуют кворума.
  4. Необязательные раунды дебатов: анонимный синтез (Chatham House) между раундами; без указания бренда. Дебаты ограничены тремя раундами и останавливаются раньше при сходимости.
  5. Возвращает рекомендательный отчёт в markdown. Файлы не правит.

Чтобы запуститься вообще, нужны хотя бы два разрешённых участника — меньшее число обрывается предварительной проверкой «недостаточно участников» до любого запроса одобрения или вызова модели (явные пары моделей одного шлюза считаются за двоих). Содержательные уровни консенсуса всё ещё требуют хотя бы двух успешных участников; иначе отчёт помечается неполным.

Допуск свидетельств. Участники получают только переданный вопрос и контекст. Они не наследуют вызывающую сессию и не читают файлы по путям из задания. Включите требования, относящийся diff, нужные исходные фрагменты и свидетельства проверки, необходимые для заявленной области рецензии.

Необязательный context принимается дословно до 24 000 кодовых единиц UTF-16. Более крупный контекст возвращает context_rejected до вывода участников; AX Code никогда не укорачивает его молча. Разделите рецензию на явно ограниченные запросы или уберите необязательный фон, сохранив требуемые свидетельства.

Перед каждым раундом AX Code проверяет весь запрос против локального потолка в 128 000 байт и известных пределов входа и контекста каждого разрешённого участника, резервируя запрошенный вывод и запасную инструкцию плюс 2 048 токенов на схему и обрамление. Размер входа использует намеренно консервативную оценку в байтах UTF-8. Она может отвергнуть запросы, которые уместились бы; это не точный подсчёт токенизатора и не гарантия сериализации провайдера. Неизвестные пределы модели раскрываются и остаются под локальными потолками. Если раунд дебатов не умещается, результат неполон и сохраняет отчёт последнего завершённого раунда.

contextAdmission записывает локальный шлюз длины контекста, переданный размер и дайджест содержимого; promptBudget проверяет полный запрос отдельно. Оба должны пройти до вывода. Эти поля независимы от successfulMembers и не устанавливают смысловую полноту, свежесть источников или гарантированное качество рецензии.

Тайм-ауты. Каждый участник работает под modes.council.timeoutMs (по умолчанию 180000 мс); модели, которые объявляют возможность рассуждения, получают этот бюджет, умноженный на modes.council.reasoningTimeoutScale (по умолчанию 3, то есть 540000 мс). Чтобы дать одному известному медленному участнику больше времени, не раздувая ожидание остальных, задайте абсолютное переопределение modes.council.memberTimeoutMs по ключу "providerID" или "providerID/modelID" — точный ключ модели побеждает ключ на весь провайдер, и любой из них побеждает расчёт базы и масштаба:

{
  "modes": {
    "council": {
      "memberTimeoutMs": { "deepseek/deepseek-v4-pro": 900000 }
    }
  }
}

ax-code.json — защищённый файл конфигурации: агенты должны просить пользователя изменить его.

Необязательные дорожки (по умолчанию выключены). modes.council.chairman: true добавляет один ослеплённый вызов синтеза председателя после агрегации (и любых раундов дебатов): председатель получает только анонимизированные находки (уровни и счётчики поддержки, никогда личности участников) и возвращает вердикт, рекомендуемые действия и заметки о несогласии. Детерминированное распределение по уровням остаётся основным выводом; сбой председателя раскрывается и не фатален. modes.council.adaptive: true начинает раздачу с двух участников и расширяет по одному до maxMembers, пока покрытие первого раунда ниже кворума или несогласие существенно; триггеры расширения — константы, настраиваемые обвязкой.

Когда использовать

  • Компромиссы архитектуры, безопасности и замысла
  • Рецензия кода с высокими ставками, где согласие нескольких моделей повышает уверенность
  • Пользователь просит рецензию нескольких моделей или «второе мнение»

Процесс агента (важно)

Вызовите council рано, как только доступны относящиеся свидетельства, с явно ограниченным заданием context. Избегайте широких раскопок, не связанных с этой рецензией; соберите требуемые исходные свидетельства, прежде чем просить участников о находках в коде. Если пользователь просил council или arena, task_parallel отвергается, пока инструмент ансамбля не стал задуманным основным действием.

Когда не использовать

  • Тривиальные вопросы (задержка и стоимость)
  • Код, чувствительный к приватности, который не должен покидать локальный вывод
  • Подключён только один провайдер

Arena (лучший из N)

Инструмент: arena
Команда: /arena <task>
Требует: modes.arena.enabled: true и не меньше двух различных выбираемых моделей на подключённых провайдерах (включая общий шлюз)

Допуск свидетельств (общий с council). Необязательный context принимается дословно до 24 000 кодовых единиц UTF-16. Более крупный контекст возвращает context_rejected до любого запроса одобрения, создания worktree или вызова модели — AX Code никогда не укорачивает его молча. Разделите задачу на явно ограниченные запросы или сократите необязательный фон, сохранив требуемые свидетельства. Сам запрос одобрения срабатывает только после того, как прошли все предварительные проверки без эффекта (выключено, допуск контекста, предварительная проверка git для реализации, бюджет, разрешение участников).

mode: "plan" (по умолчанию)

  • Каждый участник предлагает подход, шаги, риски и калиброванную самооценку риска (без записи в рабочую область).
  • При не меньше двух успешных предложениях один вызов ослеплённого судьи по рубрике (первый разрешённый участник; личности сняты, порядок случаен) оценивает каждое предложение по покрытию требований, осуществимости, плану проверки и свидетельствам риска (0–10 каждое, ничьи допустимы). Сумма рубрики (0–40) — основной сигнал ранжирования; самооценка риска остаётся только для показа. Сбой судьи или modes.arena.judge: false возвращается к самооценке с заметкой о раскрытии.
  • Ранжирование: сначала уровень проверки, затем оценка судьи или риска, затем разнообразие отпечатка патча (никогда не чистая популярность). Ранжирование планов рекомендательно и не является проверкой выполнения.
  • Только рекомендательно.

mode: "implement"

  • Требует основной worktree git хотя бы с одним коммитом и без незафиксированных изменений, записывает его точный базовый коммит и создаёт git worktree на каждого участника из этого коммита.
  • Запускает агента реализации в каждом worktree.
  • Снимает отслеживаемые и неотслеживаемые изменения каждого участника в долговечный коммит ветви, включая коммиты, созданные самим агентом.
  • Запускает обнаруженные команды проверки проекта (проверка типов / тест / линтер) только после захвата непустого патча.
  • По умолчанию ранжирует сначала проверку: победить могут только завершённые непустые патчи, прошедшие проверку; среди прошедших предпочитаются меньший риск и разнообразные патчи.
  • Не сливает автоматически. Отчёт включает пути worktree, ветви и диапазоны коммитов, чтобы вы осмотрели, слили или сделали cherry-pick.

Arena реализации требует проекта git.

Правило ранжирования (согласовано с исследованиями)

Для кандидатов кода: сначала проверка, затем разнообразие, популярность никогда не одна.
Наивное голосование большинства по похожим неверным патчам — антипаттерн (ловушка популярности).

Команды с косой чертой

Команда Назначение
/council … Вести рекомендательную рецензию нескольких провайдеров
/arena … Вести план или реализацию «лучший из N»

Безопасность и стоимость

  • Песочница и автономный режим по-прежнему применяются к работе одного агента (Песочница, Автономный режим).
  • Council и arena плана не пишут файлы.
  • Писатели arena реализации изолированы в worktree; грязная основная worktree отвергается, чтобы незафиксированный ввод нельзя было молча опустить.
  • Раздача ансамбля умножает исходящий трафик и стоимость провайдера; используйте modes.budget и держите maxMembers / maxContestants небольшими. Оценки бюджета считают худший случай: council — 2 × (debateRounds + 1) вызовов на участника (запасная схема плюс повтор), arena плана — 2 на участника плюс один плоский вызов судьи, arena реализации — документированная оценка 12 вызовов на траекторию.
  • Локальный журнал вызовов ансамбля (ensemble-calls.jsonl в глобальном каталоге состояния, потолок 2 МБ) записывает исходы каждого порождения с хешами SHA-256 запросов — никогда тела запросов, никогда учётные данные, без исходящей передачи. Отключите через modes.ensembleLedger: false.
  • Согласие нескольких моделей — свидетельство, не доказательство: перед поставкой запустите тесты.