- Зачем: - следующая сессия должна управлять стоимостью субагентов без повторной загрузки длинных отчётов в контекст мастера. - Что: - разделены TOML-роли и разовые переопределения модели, уточнены fork и service tier. - добавлен файловый обмен, жизненный цикл временного каталога и нативные скелеты промптов. - синхронизированы полевые заметки и handoff с проверенной механикой Codex. - Проверка: - quick_validate.py agents/.agents/skills/codex-subagent-playbook. - git diff --cached --check. - независимое ревью: VERDICT: APPROVED.
11 KiB
Уровни и роли
Читай этот файл только при настройке ролей или когда нужная роль недоступна.
Сам конвейер описан в SKILL.md.
Возможности хоста
Сначала установи, позволяет ли текущий хост выбрать пользовательского агента и его конфигурацию.
- Управляемая стоимость. Хост видит агентов из
~/.codex/agentsили.codex/agentsи схемаspawn_agentоткрываетagent_type,modelиreasoning_effort. Для TOML-роли передавайagent_type, а модель и глубину бери из её файла. Для разового выбора передавайmodelиreasoning_effortбез пользовательской роли с закреплённой моделью. Плейбук используетfork_turns="none"ради чистого контекста. Технически ограниченный fork числом тоже допускает переопределения; только полный forkallнаследует модель мастера и отклоняет их. - Неуправляемая стоимость. Интерфейс запуска принимает только задачу и
имя треда. Передавай роль мандатом в промпте, но не утверждай, что выбрана
дешёвая или сильная модель.
task_name— идентификатор треда, а не выбор конфигурации агента.
Если способ выбора роли не виден в доступном инструменте, считай стоимость неуправляемой и отметь это в итоговом отчёте.
Вызов 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.
Выбор уровня
| Уровень | Для чего | Настройка |
|---|---|---|
| Быстрый | Поиск, чтение журналов, тесты, пакетная механика | Быстрая дешёвая модель, low или medium |
| Рабочий | Обычная реализация по ясной постановке | Сильная модель для кода, medium или high |
| Глубокий | Архитектура, сложная диагностика, ревью высокого риска | Самая сильная доступная модель, high или выше |
Начинай с самого дешёвого подходящего уровня. Повышай уровень, когда агент не может проверить предположение, дважды возвращает слабый результат или задача требует решения с высокой ценой ошибки. Не повышай уровень ради объёма механической работы: дели её на независимые части.
low/medium: детерминированная механика, поиск и известные проверки.medium/high: реализация по ясному контракту, несколько связанных файлов, нет необратимых решений.high: публичный контракт, безопасность, целостность данных, конкуренция, миграция или неоднозначная архитектура.xhighи выше: необратимый дорогой выбор либо повторное противоречие сильных агентов. Это исключение, а не обычный режим ревью.
Конкретные названия моделей держи в конфигурации агентов, а не в 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 = "read-only". Если ревью требует запуска
инструментов, которые пишут кэш или артефакты, использовать
workspace-write, запретить правки исходников мандатом и сверить 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: субагенты не создают собственное дерево исполнителей. - Оставляй один слот мастеру.
- Параллельно запускай чтение, независимые исследования и слепые ревью.
- Реализацию и починку одного рабочего дерева выполняй последовательно одним владельцем.