Многоагентная оркестрация
Creo может порождать независимых под-агентов для параллельной работы. Каждый под-агент получает свою сессию, роль, модель и набор инструментов. Координация идёт через шину событий.
Как использовать
Попросите агента в чате:
«Запусти reviewer и tester параллельно — пусть reviewer ревьюит internal/orchestration/, а tester проверит что тесты проходят»
Агент вызовет инструмент agent с двумя спецификациями, затем agent_manage для ожидания результатов. В нижней панели TUI виден живой поток обоих под-агентов.
Роли
Роли определяются JSON-файлами. Поиск ведётся в трёх директориях:
| Приоритет | Путь | Scope |
|---|---|---|
| 1 | ./agents/ |
Проектные роли текущего проекта |
| 2 | ./.creo/agents/ |
Проектные роли (можно коммитить) |
| 3 | ~/.config/creo/agents/ |
Глобальные роли для всех проектов |
Проектные роли перебивают глобальные при совпадении имени.
Формат файла роли
1{
2 "name": "reviewer",
3 "description": "Агент code review — анализирует качество кода и даёт обратную связь.",
4 "prompt": "Ты — ревьюер кода. Анализируй изменения, указывай на проблемы...",
5 "model": "mini",
6 "skills": ["code-review-skill"],
7 "tools": ["read", "grep", "glob"]
8}
| Поле | Обязательное | Описание |
|---|---|---|
name |
нет | Имя роли. Если не указано — из имени файла |
description |
нет | Краткое описание для system prompt родителя |
prompt |
нет | Системный промпт роли. Добавляется к system prompt child'а |
model |
нет | "default", "mini", имя модели, или пусто (наследовать parent) |
skills |
нет | Рекомендуемые навыки для активации |
tools |
нет | Инструменты для авто-разрешения (остальные требуют подтверждения) |
Инструменты оркестрации
| Инструмент | Назначение |
|---|---|
agent |
Запуск дочерних агентов — одного или нескольких параллельно. До 10 |
agent_manage |
Блокирующий оркестратор: ожидание результатов, статусы, отправка сообщений |
agent_abort |
Остановка указанных детей по role или child_id |
agent
Агент вызывает agent с массивом спецификаций — каждый элемент задаёт роль, промпт и опционально модель/инструменты. Creo создаёт отдельную сессию для каждого child'а и запускает их параллельно.
agent_manage
Блокирующий инструмент. Parent ждёт, пока кто-то из детей не закончит свой turn. Возвращает статусы всех детей (работает / результат / вопрос) и их последние сообщения. Parent LLM видит статусы, рассуждает и решает, кому отправить ответ.
С параметром messages отправляет указанным детям user-сообщения и снова блокируется. Дети не общаются напрямую — только через родителя.
Crash recovery
Состояние оркестрации хранится в БД. При перезапуске Creo и команде «продолжи» — agent_manage находит незавершённых детей и перезапускает их с сохранением контекста.
Ограничения
- Один уровень вложенности. Children не могут порождать своих детей.
- До 10 одновременно на одну цель (goal).
- Отмена. При прерывании родительского хода (
Esc) все дети автоматически отменяются. - Подтверждения. Деструктивные действия детей пробрасываются через родительскую сессию.