Многоагентная оркестрация

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 с массивом спецификаций — каждый элемент задаёт роль, промпт и опционально модель/инструменты. Creo создаёт отдельную сессию для каждого child'а и запускает их параллельно.

Блокирующий инструмент. Parent ждёт, пока кто-то из детей не закончит свой turn. Возвращает статусы всех детей (работает / результат / вопрос) и их последние сообщения. Parent LLM видит статусы, рассуждает и решает, кому отправить ответ.

С параметром messages отправляет указанным детям user-сообщения и снова блокируется. Дети не общаются напрямую — только через родителя.

Состояние оркестрации хранится в БД. При перезапуске Creo и команде «продолжи» — agent_manage находит незавершённых детей и перезапускает их с сохранением контекста.

  • Один уровень вложенности. Children не могут порождать своих детей.
  • До 10 одновременно на одну цель (goal).
  • Отмена. При прерывании родительского хода (Esc) все дети автоматически отменяются.
  • Подтверждения. Деструктивные действия детей пробрасываются через родительскую сессию.