Мультиагентная оркестрация и распределение ролей
Как организовать работу нескольких ИИ-агентов над одним большим планом, изолировать контекст исполнителей и не будить PM посреди ночи.
👥 Разделение ответственности: Parent vs Worker
Parent-агент (Техдиректор)
- Не пишет продуктовый код! Его задача — архитектура и координация.
- Читает план и нарезает очередь задач на компактные пачки.
- Формирует минимальный контекст для Worker (только файлы пачки).
- Сам запускает юнит-тесты после сдачи пачки исполнителем.
- Принимает решение о переходе к следующей задаче без вопросов человеку.
Worker-агент (Исполнитель)
- Пишет код ровно одной пачки.
- Имеет чистое короткое контекстное окно — не знает о других 50 пунктах плана.
- Строго следует критериям приёмки (acceptance criteria).
- Сдает краткий отчёт: какие файлы изменены, какие функции добавлены.
- После сдачи пачки закрывается. Следующую пачку делает новый Worker.
📊 Файл состояния: orchestration-state.md
Очередь и статусВсе агенты координируются через единый маркдаун-файл состояния. Если чат перезагрузится, агент прочитает этот файл и продолжит с прерванного места:
## Meta - plan_path: _MD/OLD_BIG_MD/MD/context/ADM10_TEXT_PLAN.md - status: in_progress - worker_model: inherit ## Queue (ordered) | id | title | status | depends_on | notes | |----|-------|--------|------------|-------| | S1 | Заморозка листа 10 | done | | 29 тестов с листом 09 | | S2 | Пустой лист 11 | done | S1 | вкладки и справка на /adm10/1279 | | S3 | Вкладка объёмного текста | done | S2 | список и параметры | | S4 | Поверхность клика | in_progress| S2 | грань того же клика, нормаль в мире | | S5 | Каталог и справочники | pending | S3, S4 | завести карточки в tools hub |
Ночной режим («PM ушёл спать»)
Что делает классический ИИ-ассистент, если у него возник вопрос по спорному дизайну или нехватке токена? Он останавливается и ждёт человека. Если человек ушел на ночь, вся работа простаивает до утра.
orchestrate-plan.mdc:- Если задача упирается в решение PM — пометить статус как
blockedи записать вопрос в секциюBlocked awaiting PM. - Не ждать ответа в чате! Немедленно найти следующую задачу со статусом
pending, которая не зависит от заблокированной. - Продолжать выполнение независимых задач конвейера.
- Когда не осталось доступных задач — сформировать красивый финальный отчёт со списком сделанного и перечнем вопросов к PM.
Утром PM просыпается, видит сделанные 80% задач и отвечает только на точечные вопросы, разблокируя оставшиеся 20%.
Изначально задумывалась схема из 4 независимых субагентов: Planner планирует, Worker пишет, Tester тестирует, Reviewer делает код-ревью. На практике это привело к чудовищной бюрократической петле: на простейшую задачу из 5 строк кода вызывались 4 агента, съедались миллионы токенов, а Reviewer и Worker спорили о названиях переменных.
Текущий канон: Только Parent (Техдир) + 1 Worker на пачку. Тесты запускает родитель. Агенты-тестеры и ревьюеры вызываются только точечно по явному запросу.