Название: Orchestrator (Оркестратор)
Статус: В разработке
Версия: 2.0.0
Дата создания: 2025-11-11
Orchestrator — центральное приложение Platform v2.0, координирующее работу всех агентов и приложений системы.
Главная задача: Принять запрос пользователя → Определить план выполнения → Координировать агенты → Собрать результат.
Рабочие агенты:
- Projector — управление проектами и структурой
- Designer — проектирование архитектуры
- Developer — разработка кода
- Tester — тестирование решений
- Deployer — развёртывание
- Monitor — мониторинг систем
- Workspace — организация workspace
- Documenter — документирование
Служебные агенты:
- Editor — развитие агентов
- Optimizer — оптимизация работы
- Security — защита системы
- Recovery — восстановление
- Logger — журналирование
Мета-уровень:
- Administrator — получает системные команды
- Architect — согласовывает архитектурные изменения
def receive_request(user_input: str) -> Request:
"""
Принимает запрос от пользователя и разбирает его.
"""
# Парсинг запроса
task_type = detect_task_type(user_input)
context = load_context()
priority = determine_priority(user_input)
return Request(
task=user_input,
type=task_type,
context=context,
priority=priority
)
def create_plan(request: Request) -> ExecutionPlan:
"""
Создаёт план выполнения на основе типа задачи.
"""
if request.type == "CREATE_PROJECT":
return [
("Projector", "создать структуру проекта"),
("Designer", "спроектировать архитектуру"),
("Developer", "создать MVP"),
("Tester", "провести тестирование"),
]
elif request.type == "FIX_BUG":
return [
("Developer", "локализовать проблему"),
("Developer", "исправить баг"),
("Tester", "проверить fix"),
("Deployer", "развернуть на production"),
]
elif request.type == "ADD_FEATURE":
return [
("Designer", "спроектировать фичу"),
("Developer", "реализовать код"),
("Tester", "провести тесты"),
("Documenter", "обновить документацию"),
]
# ... другие типы задач
def execute_plan(plan: ExecutionPlan, context: Context) -> Result:
"""
Выполняет план, координируя работу агентов.
"""
results = []
for (agent_name, task_description) in plan:
# Активировать агента
agent = activate_agent(agent_name)
# Передать задачу и контекст
result = agent.execute(
task=task_description,
context=context
)
# Проверить результат
if result.status == "ERROR":
# Активировать Recovery для восстановления
recovery = activate_agent("Recovery")
result = recovery.handle_error(agent_name, result)
# Добавить результат в контекст
context.add(result)
results.append(result)
# Журналировать действие
logger = activate_agent("Logger")
logger.log(agent=agent_name, task=task_description, result=result)
return aggregate_results(results)
def aggregate_results(results: List[Result]) -> FinalResult:
"""
Собирает результаты от всех агентов в итоговый результат.
"""
return FinalResult(
status="SUCCESS" if all(r.status == "SUCCESS" for r in results) else "PARTIAL",
outputs=[r.output for r in results],
metrics={
"agents_used": len(results),
"execution_time": sum(r.duration for r in results),
"tokens_used": sum(r.tokens for r in results),
},
summary=generate_summary(results)
)
Пользователь взаимодействует с Orchestrator напрямую, подтверждая каждый шаг.
User: Создать новый проект CRM
Orchestrator:
📋 План выполнения:
1. Projector: создать структуру проекта CRM
2. Designer: спроектировать архитектуру БД
3. Developer: создать MVP (Streamlit)
4. Tester: провести базовые тесты
Продолжить? (да/нет/изменить)
User: да
Orchestrator:
🔄 Projector: создаю структуру...
✅ Создано: projects/crm/
🔄 Designer: проектирую БД...
✅ Создан: design/DATABASE.md
...
Orchestrator выполняет весь план автоматически, без запросов к пользователю.
User: Создать новый проект CRM [autonomous]
Orchestrator:
🚀 Автономное выполнение...
✅ Projector: структура создана (projects/crm/)
✅ Designer: архитектура спроектирована (design/DATABASE.md)
✅ Developer: MVP создан (solution/mvp/)
✅ Tester: тесты пройдены (13/13)
🎉 Результат: Проект CRM готов к использованию
Orchestrator анализирует состояние системы и предлагает план улучшений.
User: Диагностика системы
Orchestrator:
🔍 Запуск диагностики...
📊 Monitor: проверка здоровья системы...
✅ Все агенты доступны
✅ Документация актуальна
⚠️ Проект marketplace: MVP не запущен
📊 Optimizer: анализ производительности...
✅ Время ответа: 2.3с (норма)
⚠️ Использование памяти: 78% (высокое)
💡 Рекомендации:
1. Запустить marketplace MVP (Deployer)
2. Оптимизировать кэш (Optimizer)
orchestrator/
├── APP.md (этот файл)
│
├── ai/ (ИИ компоненты)
│ ├── instructions.md (инструкции для Claude)
│ ├── prompts/ (промпты для задач)
│ │ ├── plan_creation.md (создание плана)
│ │ ├── agent_selection.md (выбор агентов)
│ │ └── result_aggregation.md
│ └── modes/ (режимы работы)
│ ├── interactive.md
│ ├── autonomous.md
│ └── diagnostic.md
│
├── docs/ (документация)
│ ├── methodologies/
│ │ └── coordination_patterns.md
│ ├── templates/
│ │ └── execution_plan_template.md
│ ├── guides/
│ │ └── how_to_add_new_agent.md
│ └── reference/
│ └── agent_registry.md (реестр всех агентов)
│
├── code/ (код)
│ ├── core/
│ │ ├── orchestrator.py (главный класс)
│ │ ├── request_parser.py (парсинг запросов)
│ │ ├── plan_builder.py (построение плана)
│ │ └── executor.py (координатор выполнения)
│ ├── integrations/
│ │ └── agent_connector.py (коннектор к агентам)
│ └── utilities/
│ ├── task_detector.py (определение типа задачи)
│ └── result_aggregator.py
│
└── tests/ (тесты)
├── unit/
│ ├── test_request_parser.py
│ └── test_plan_builder.py
├── integration/
│ └── test_agent_coordination.py
└── e2e/
└── test_full_workflow.py
Orchestrator активируется при:
Прямые команды:
- "оркестратор"
- "orchestrator"
- "координировать"
- "выполнить план"
Комплексные задачи:
- "создать проект X"
- "разработать систему Y"
- "внедрить фичу Z"
- "диагностика системы"
Автоматически:
- При запуске Platform v2.0
- При входе пользователя
- При межсессионном восстановлении
Orchestrator отслеживает:
- Время выполнения задач (среднее, минимум, максимум)
- Количество задействованных агентов
- Успешность выполнения (% success rate)
- Использование токенов (экономия через координацию)
- Количество ошибок и восстановлений
Статус: ✅ Готово к реализации кода
Следующий шаг: Написать ai/instructions.md