- Зачем: - боевой прогон 2026-07-22 (конвейер issue #5 в демо-стенде) прошёл через плагин-обёртку Codex и воспроизвёл её известные баги; ресёрч 2026-07-07 давно рекомендовал прямой CLI, но в скилл не был поглощён. - Что: - roles.md: третий режим «Канал командной строки» — codex exec фоном у координатора, resume треда, плагин только для интерактива; - SKILL.md: передача владения только после остановки прежнего владельца; проверка команд сценария на живом объекте до прогона; - lessons.md: два датированных наблюдения 2026-07-22, вопрос №9 переориентирован на проверку CLI-канала боем. - Проверка: - перечитка трёх файлов на связность и отсутствие дублей; следующий прогон конвейера — по CLI-каналу. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
14 KiB
Уровни и роли
Маршрутизация моделей обновлена 2026-07-13. Имена и уровни здесь — датированная настройка среды; логика основной оптики остаётся относительной.
Читай этот файл только при настройке ролей или когда нужная роль недоступна. Основная оптика описывает, когда отдельный агент вообще нужен. Этот файл — условные настройки мандата, а не список обязательных участников. Один агент может совмещать совместимую работу; не создавай тред на каждое имя.
- Возможности хоста
- Выбор уровня
- Текущая маршрутизация
- Возможные мандаты
- Файл пользовательского агента
- Пределы параллельности
Возможности хоста
Сначала установи, позволяет ли текущий хост выбрать пользовательского агента и его конфигурацию, а для линии другого семейства — каким каналом её запускать.
- Управляемая стоимость. Хост видит агентов из
~/.codex/agentsили.codex/agentsи схемаspawn_agentоткрываетagent_type,modelиreasoning_effort. Для TOML-роли передавайagent_type, а модель и глубину бери из её файла. Для разового выбора передавайmodelиreasoning_effortбез пользовательской роли с закреплённой моделью. Плейбук используетfork_turns="none"ради чистого контекста. Технически ограниченный fork числом тоже допускает переопределения; только полный forkallнаследует модель координатора и отклоняет их. - Неуправляемая стоимость. Интерфейс запуска принимает только задачу и
имя треда. Передавай роль мандатом в промпте, но не утверждай, что выбрана
дешёвая или сильная модель.
task_name— идентификатор треда, а не выбор конфигурации агента. - Канал командной строки. Хост другого семейства запускай напрямую:
codex execв собственной фоновой команде координатора — pid, код выхода и лог принадлежат координатору, а не посреднику. Модель и effort задавай явно; тред продолжай черезcodex exec resume <session-id>. Плагин-обёртку с фоновыми задачами для конвейера не используй: известные сбои — ложный «started» с подменой ответа, зависшие фоновые ревью, воркеры без признаков жизни (openai/codex-plugin-cc issues #279, #158, #49, #277); она годится только для интерактива по явному запросу партнёра.
Если способ выбора роли не виден в доступном инструменте, считай стоимость неуправляемой, отметь это в итоговом отчёте и не разделяй совместимую работу на дополнительные роли без явной пользы.
Вызов TOML-роли:
{
"task_name": "explore_code",
"message": "Исследуй код и верни выжимку по договору роли.",
"fork_turns": "none",
"agent_type": "explorer"
}
Разовый выбор модели без TOML-роли с закреплёнными настройками:
{
"task_name": "explore_code",
"message": "Исследуй код и верни выжимку по договору результата.",
"fork_turns": "none",
"model": "<быстрая модель>",
"reasoning_effort": "medium"
}
Не смешивай режимы: роль применяется отдельным слоем конфигурации и может
перекрыть прямые параметры. service_tier передавай только по явному запросу;
он технически совместим и с полным fork. Если TOML-роль закрепляет
service_tier, значение роли перекрывает аргумент вызова; для гарантированного
разового tier используй роль без закреплённого tier.
Основание: официальная документация о субагентах
и актуальная схема spawn_agent.
Выбор уровня
| Уровень | Для чего | Настройка |
|---|---|---|
| Быстрый | Поиск, журналы, известные проверки, ограниченная механика | Дешёвая подходящая модель, обычно medium |
| Рабочий | Обычная реализация и проверка по задаче | Подходящая ролевая модель, medium |
| Глубокий | Архитектура, сложная реализация, ревью кода | Сильная модель, high |
| Исключительный | Необратимое решение или несходимость сильных агентов | Самая сильная модель, max |
Модель задаёт потолок способности, effort — глубину работы этой модели. Повышай effort, когда подходящей модели не хватило поиска или рассуждения. Повышай модель, когда не хватает качества решения. После двух слабых результатов замени исполнителя свежим более сильным агентом вместо переноса его неудачного контекста.
xhigh не является автоматической ступенью: текущая эмпирика показывает
малый прирост относительно high при заметной цене. Выбирай его вручную для
узкой задачи. max заметно сильнее и дороже; используй по явному триггеру и
объясняй партнёру причину.
Текущая маршрутизация
Это начальная рабочая таблица, а не рейтинг моделей. Проверяй её на прогонах и меняй после согласования эмпирики с партнёром.
| Роль | Модель и effort |
|---|---|
Простая ограниченная реализация, fast-worker, известная проверка |
Luna medium |
| Узкий обзор постановки, проверка реализации по задаче | Terra medium |
| Обычная нетривиальная реализация | Sol medium |
| Сложная или рискованная реализация | Sol high |
deep-reasoner: архитектурное предложение, декомпозиция, компромиссы |
Sol high |
| Ревью кода | Sol high |
| Необратимое решение, спор сильных агентов, повторная несходимость | Sol max |
Официальное назначение текущих уровней семейства — в
каталоге моделей OpenAI.
Конкретные имена держи здесь и в конфигурации агентов, а не в SKILL.md.
Возможные мандаты
fast-worker
Уровень: быстрый. Читает шумный ввод, запускает проверки, выполняет простые пакетные операции. Возвращает только выжимку и пути к полным журналам.
Обычно: sandbox_mode = "workspace-write", потому что тесты и инструменты
создают временные файлы. В инструкциях ограничить изменения явно названной
механикой.
explorer
Уровень: быстрый. Строит карту кода, находит точки входа, контракты и команды проверки. Не запускает полный набор тестов и не проектирует решение, пока координатор прямо не попросит. Узкую команду запускает только для проверки факта, без которого карта ненадёжна.
Обычно: sandbox_mode = "read-only".
worker
Уровень: рабочий или глубокий по сложности задачи. Единственный владелец реализации. Читает самодостаточный файл-задачу, меняет код и проверяет свою часть. Не делает коммит.
Обычно: sandbox_mode = "workspace-write".
deep-reasoner
Уровень: глубокий. Принимает одно сложное решение: архитектура, алгоритм, диагноз, противоречие требований. Возвращает предложение, ключевые доводы и непроверенные предположения; итоговое решение принимает координатор.
Обычно: sandbox_mode = "read-only".
reviewer
Уровень: глубокий. Свежий тред без истории исполнителя. Ищет ошибки корректности, безопасности, контракта и тестов. Каждая находка содержит сценарий сбоя, доказательство, влияние и способ проверки.
Для полноценного ревью обычно нужен sandbox_mode = "workspace-write": тесты,
кэши, временные артефакты и исследование не следует урезать ради запрета
правок. Исходники и постоянное окружение защищает явный мандат, Git сверяется
до и после. Доступ к сети проверять отдельно: право записи не гарантирует
поиск и документацию. Непроверенную внешнюю механику отмечать как гипотезу.
Канал результата от песочницы не зависит. При выбранном ревью используй
единый договор: назначенный файл отчёта — единственный
результат наблюдателя; временные кэши допустимы, исходники и Git неизменны.
verifier
Уровень: быстрый. Запускает уже известные команды приёмки, разбирает сбои и возвращает счётчики. Не ищет новые требования и не исправляет продуктовый код.
Обычно: sandbox_mode = "workspace-write".
Файл пользовательского агента
Роли Codex хранятся в ~/.codex/agents/*.toml или .codex/agents/*.toml.
Минимальный шаблон:
name = "role-name"
description = "Когда координатору выбирать эту роль."
model = "<актуальная модель нужного уровня>"
model_reasoning_effort = "medium"
sandbox_mode = "read-only"
developer_instructions = """
Одна узкая роль и её договор результата.
"""
Не подменяй выбор роли совпадением task_name с её именем: это работает
только при явной гарантии хоста. После добавления или изменения TOML начни
новую сессию и проверь, что имя роли появилось в описании agent_type.
Пределы параллельности
- Держи глубину
1: субагенты не создают собственное дерево исполнителей. - Оставляй один слот координатору.
- Параллельно запускай только работу без конфликтующих входов, команд и изменяемого состояния. Второй слепой обзор добавляй ради отдельной линии, а не ради заполнения свободного слота.
- Реализацию и починку одного рабочего дерева выполняй последовательно одним владельцем.