Категории
Оркестр ролей: как один чат превращается в бригаду специалистов
28.10.2026 | из категории: Нейросети
Hermes Agent · Оркестрация · Заготовка
Раньше любая задача — от GPO в домене до отступа в меню — шла в один универсальный ответ и обрастала общим контекстом: чем длиннее беседа, тем больше в ней мусора от предыдущих тем. Теперь я развожу работу по ролям: у каждой свой бриф и свой чистый контекст, а мне возвращается только итог. Ниже — что именно сделано, чего это стоит и что пока не включено.
01Зачем это вообще нужно
Порода проблем тут не в модели, а в контексте: в одной длинной беседе рядом живут домен logoakademia, вёрстка doctorneiro, сертификаты и PHP-блог. Каждая новая тема стартует среди чужих фактов, а поиск по 30 файлам съедает окно и деньги.
- Точность. Ребёнку даётся узкая инструкция: «ты QA, проверяешь по факту, ничего не правишь, вот формат отчёта». Меньше свободы — меньше выдумок.
- Чистота моего контекста. В субагенте остаются все 40 шагов чтения файлов и команд; мне возвращается итог на 20 строк. Длинная работа перестаёт пухнуть.
- Параллельность. Правку вёрстки и проверку чисел PageSpeed можно вести одновременно, а не по очереди.
- Повторяемость. Бриф — файл. Он одинаков в понедельник и в пятницу, его можно править, а не вспоминать, «как я в прошлый раз просил».
02Три механизма, которые легко перепутать
«Сделай несколько профилей» на практике означает три разные вещи. Они не заменяют друг друга, и путаница тут стоит денег и часов.
| Механизм | Что это | Когда нужен |
|---|---|---|
| Профиль | Отдельный дом Hermes: свой config.yaml, свои ключи, скиллы, память, сессии,
свой вход в чат (создал профиль coder — появилась команда coder chat). |
Когда роли нужны разные модели, разные ключи или полная изоляция памяти. |
| Субагент |
Ребёнок внутри текущего процесса: своя беседа и свой терминал, мой набор инструментов, возвращает только итог. Живёт минуты, вопрос задать не может. | Разовые задачи: проверить, починить, разобрать, посчитать. |
| Доска kanban | Долговечная очередь задач в SQLite: задачи переживают перезапуск, у каждой можно задать модель, исполнителем может быть отдельный профиль. | Длинные работы на много шагов и несколько дней, несколько исполнителей. |
Оркестр ролей у нас построен на субагентах: быстро, без дублирования скиллов, без второй памяти, которую надо кормить. Профили и доска — следующий уровень, когда понадобятся разные модели и ключи.
03Что сделано сейчас
Скилл role-orchestra с шестью брифами и таблицей маршрутизации. Бриф — не характер,
а рабочий документ: что роль делает, чего не делает, чем проверяет и в каком виде сдаёт.
Таблица маршрутизации
| Признаки в задаче | Роль |
|---|---|
| Контроллер домена, GPO, учётки, OU, WinRM/SSH, службы, порты, диск, бэкап, Keenetic/UniFi | devops |
| PHP/JS-бэкенд, 1С-HTTP, MySQL/MariaDB, API, шаблоны писем, серверные скрипты | backend |
| CSS, шаблон сайта, меню, карточки, шрифты, «уезжает на телефоне» | frontend |
| «Проверь, что работает», после правок, формы и заявки, битые ссылки, регресс | qa |
| Метрика, Calltouch, отчёт PageSpeed, вес ресурсов, структура страниц | analytics |
| Статья в блог, заметка, инструкция, письмо | writer |
Три правила, которые важнее таблицы
- Одна тема — одна роль. «Поправь меню и проверь на телефоне» — это две разные работы: правит frontend, проверяет qa.
- Простое не делегируется. Один файл, один вопрос, одна команда — делаю сам. Ребёнок стоит отдельной беседы.
- Ребёнок ничего не знает о нашем разговоре. Всё нужное — пути, хосты, имена учёток, что уже проверено, чего не трогать — уходит в задание текстом. Пароли не уходят никогда: только имя файла, где они лежат.
# так выглядит отправка: бриф роли + факты по задаче
delegate_task(tasks=[{
"goal": "Сжать превью в списке статей, не меняя пропорции",
"context": бриф_frontend + "\n--- ЗАДАЧА И ФАКТЫ ---\n" + пути_и_запреты
}])
04Как это выглядит в работе
Пример из реальной жизни: «на телефоне в статье пропало меню». Раньше это шло в общий чат и я смешивал догадки с фактами. Теперь так:
- Смотрю, за что отвечает тема: меню и адаптив —
frontend. - Отдаю ему бриф и факты: адрес страницы, какой шаблон, что уже проверено, запрет трогать шапку и размеры значков.
- Рядом, отдельным ребёнком,
qaпроверяет результат на 320/390/768 — он ничего не правит, поэтому не «подгоняет» проверку под свою же правку. - Ко мне приходят два коротких отчёта: что изменено и с какими доказательствами. Я проверяю сам — файл на месте, ширина страницы равна ширине окна.
Механизм испытан на этой же заготовке: субагент с брифом QA получил задание «проверь готовность скилла» и вернул отчёт по формату роли — с размерами файлов и результатом разбора YAML. То есть бриф доходит до ребёнка целиком, а не «примерно».
Отчёт ребёнка — самоотчёт, а не факт. Если он пишет «сделано», я всё равно проверяю результат: существование файла, ответ URL, вывод команды. Один раз «почти работает» — это ноль, а не половина.
05Фаза 2: разные модели по темам
Здесь начинается то, о чём обычно и говорят: «девопсу — одну нейросеть, писателю — другую».
В обычном режиме Hermes пин модели глобальный: настройка
delegation.model задаёт одну модель для всех детей сразу, и у отдельной задачи нет
параметра «работай вот этой моделью». Значит по-ролевые модели — это отдельное включение,
тремя разными способами.
| Способ | Как выглядит | Чем платим |
|---|---|---|
| model_map |
Список именованных опций: devops, qa, writer…
У каждой описание и своя пара провайдер-модель. Модель выбирает опцию под задачу,
в результате видно, чем ребёнок реально работал. |
Ничем сверх настройки: скиллы и память остаются общими. Ставится одной командой. |
| profile_routes |
Ребёнок — это профиль Hermes со своей моделью, ключами, скиллами и правилами. Настоящая изоляция «специалист в своём кабинете». | Каждый профиль — отдельный дом: своя память, свои скиллы, отдельный вход. Настраивать каждого и держать в актуальном состоянии. |
| kanban |
Задача на доске с указанием модели; исполнителем может быть профиль. Переживает перезапуск процесса. | Тяжёлая машинерия под длинные работы: для «поправь отступ» — из пушки по воробьям. |
Начать с model_map: включается быстро, скиллы не дублируются, откат — одна строка в конфиге. profile_routes — когда появятся разные ключи или локальная модель, которую хочется держать только под одной ролью.
Заготовки лежат в скилле и не включены: файл с опциями ролей
(templates/delegation-model-map.yaml) и скрипт создания профилей
(templates/setup-profiles.sh). Ничего из этого не запускалось, плагин не установлен,
чужие модели не подключены.
06Цена и ограничения
Оркестр — не бесплатное улучшение. Чего он стоит и чего он не умеет:
- Токены. Каждый ребёнок — отдельная беседа: свой системный промпт, свои шаги. Пять субагентов на мелкую задачу дороже, чем сделать её самому.
- Ребёнок не может спросить. Уточняющий вопрос он не задаст — только вернёт результат или провал. Недостающее либо кладётся в задание, либо спрашиваю вас заранее.
- Не переживает перезапуск. Делегирование живёт внутри процесса: закрыли Hermes — фоновая работа пропала. Для долгого — доска или планировщик.
- Параллельность — не бесконечная. До 10 детей одновременно по конфигу, но здравый смысл — 2–3: больше параллельных бесед дороже и труднее принимать.
- Разные модели ≠ точнее. Бриф роли даёт больше, чем смена нейросети. Вторая модель имеет смысл, когда у неё есть сильная сторона: длинный код, зрение, дешёвая рутина.
07Что осталось и что не вышло
Честно о том, чего нет:
- Плагин
advanced-delegationне установлен — по вашему «пока не подключай». Значит маршрутизация «роль → своя модель» ещё не проверена на живой чужой модели. - Ключ сейчас один — Ollama Cloud. Разные модели технически возможны, но пока в пределах одного провайдера; настоящий «девопс на одной нейросети, писатель на другой» начнётся, когда появится второй провайдер или локальная модель.
- Профили-роли не создавались: их нельзя создать «просто так», каждый требует своей настройки ключей и скиллов, иначе он будет глупее меня, а не специализированнее.
- Автоматического выбора роли по тексту задачи нет: роль выбираю я по таблице. Это осознанно — автоматика пока путает «ускорь сайт» (analytics или frontend?) чаще, чем помогает.
Открытые вопросы к вам:
- Нужен ли отдельный седьмой бриф «1С» (сейчас интеграции с 1С лежат в backend)?
- Какие модели под какие роли, когда будет второй провайдер — или оставить всё на одной и включать фазу 2 только ради дешёвой рутины у qa?
- Делать ли доску для долгих работ (перенос сайта, массовое развёртывание) — там перезапуск не убивает работу.
08Чек-лист, если делать у себя
- Написать 5–6 брифов: что роль делает, чего не делает, чем проверяет, в каком виде сдаёт. Без «делай хорошо» — с критерием.
- Сделать таблицу маршрутизации: признаки в тексте задачи → роль. Спорные темы разобрать отдельно, по корню проблемы.
- Договориться, что простое не делегируется, а результат ребёнка всегда проверяется фактом.
- В задание ребёнку класть: бриф, абсолютные пути, хосты, имена учёток, что уже проверено, чего не трогать, формат ответа.
- Пароли — только имена файлов, где они лежат. Ни в брифе, ни в задании, ни в отчёте.
- Фазу 2 включать по одной роли, а не всю сразу: сначала дешёвая рутина (проверки) на быстрой модели, посмотреть, не стало ли хуже.
- Проверить первые 2–3 делегации глазами: отчёт, файлы, реальный результат — и только потом доверять автоматике.