architect/_archive/2025-11-26-cleanup/cifra/agents/orchestrator/ai/prompts/agent_selection.md

Промпт: Выбор агентов для задачи

Назначение: Определение оптимального набора агентов для выполнения конкретной задачи


Реестр агентов

РАБОЧИЕ АГЕНТЫ (Workers)

Агент Специализация Типичные задачи
Projector Управление проектами Создание структуры, roadmap, планирование
Designer Архитектура и дизайн Проектирование БД, API, интерфейсов
Developer Разработка кода Написание кода, интеграции, багфиксы
Tester Тестирование Unit/integration/e2e тесты, QA
Deployer Развёртывание CI/CD, деплой, миграции БД
Monitor Мониторинг Логи, метрики, алерты, health checks
Workspace Организация Структурирование, cleanup, рефакторинг
Documenter Документация README, CHANGELOG, API docs

СЛУЖЕБНЫЕ АГЕНТЫ (Services)

Агент Специализация Когда вызывать
Editor Развитие агентов Создание новых агентов, обновление
Optimizer Оптимизация Анализ производительности, ускорение
Security Безопасность Аудит кода, поиск уязвимостей
Recovery Восстановление Откат изменений, исправление ошибок
Logger Журналирование Запись действий, аудит, метрики

МЕТА-АГЕНТЫ (Meta)

Агент Специализация Требует прав
Administrator Администрирование Root доступ
Architect Архитектурные решения Architect режим

Матрица выбора агентов

По типу задачи

CREATE_PROJECT:
  required: [Projector, Designer, Developer]
  recommended: [Tester, Documenter]
  optional: [Deployer]

ADD_FEATURE:
  required: [Developer]
  recommended: [Designer, Tester, Documenter]
  optional: [Deployer]

FIX_BUG:
  required: [Developer, Tester]
  recommended: []
  optional: [Deployer, Recovery]

REFACTOR:
  required: [Developer]
  recommended: [Designer, Tester, Workspace]
  optional: [Documenter]

OPTIMIZE:
  required: [Optimizer]
  recommended: [Developer, Monitor]
  optional: [Tester]

DEPLOY:
  required: [Deployer]
  recommended: [Tester, Monitor]
  optional: [Logger]

DIAGNOSTIC:
  required: [Monitor]
  recommended: [Optimizer, Security, Logger]
  optional: []

SECURITY_AUDIT:
  required: [Security]
  recommended: [Developer, Optimizer]
  optional: [Documenter]

UPDATE_DOCS:
  required: [Documenter]
  recommended: []
  optional: [Designer]

ORGANIZE:
  required: [Workspace]
  recommended: [Documenter]
  optional: []

По компонентам проекта

"design/*":
  agents: [Designer, Architect, Documenter]

"solution/*/code":
  agents: [Developer, Tester, Security]

"infrastructure/*":
  agents: [Deployer, Monitor, Security]

"tests/*":
  agents: [Tester, Developer]

"docs/*":
  agents: [Documenter, Designer]

Алгоритм выбора

def select_agents(task: Task) -> List[Agent]:
    """
    Выбирает агентов для выполнения задачи.
    """
    selected_agents = []

    # 1. Обязательные агенты по типу задачи
    required = get_required_agents(task.type)
    selected_agents.extend(required)

    # 2. Рекомендуемые агенты
    recommended = get_recommended_agents(task.type)

    # Фильтровать по контексту
    for agent in recommended:
        if should_include_agent(agent, task):
            selected_agents.append(agent)

    # 3. Специальные условия
    if task.has_database_changes:
        if "Developer" in selected_agents:
            # Добавить Tester после Developer для проверки миграций
            selected_agents.insert_after("Developer", "Tester")

    if task.affects_security:
        # Обязательно добавить Security
        selected_agents.append("Security")

    if task.is_production_deployment:
        # Добавить Monitor для отслеживания после деплоя
        selected_agents.append("Monitor")

    # 4. Всегда добавлять Logger в конце
    selected_agents.append("Logger")

    return selected_agents


def should_include_agent(agent: str, task: Task) -> bool:
    """
    Проверяет нужен ли агент для конкретной задачи.
    """
    # Documenter нужен если изменяется API или добавляются фичи
    if agent == "Documenter":
        return task.changes_api or task.adds_feature

    # Tester нужен если есть код или логика
    if agent == "Tester":
        return task.has_code_changes

    # Deployer нужен если это production проект
    if agent == "Deployer":
        return task.project.is_production

    return True

Примеры

Пример 1: Создание проекта

Задача: Создать проект CRM

Анализ:
- Тип: CREATE_PROJECT
- Компоненты: design/, solution/, docs/
- Production: нет

Выбор агентов:

 Обязательные:
   - Projector (создание структуры)
   - Designer (архитектура БД, API)
   - Developer (код MVP)

 Рекомендуемые:
   - Tester (базовые тесты)
   - Documenter (PROJECT.md, README.md)

 Опциональные (не нужны):
   - Deployer (не production)
   - Monitor (не нужен на этапе создания)

🔧 Служебные (автоматически):
   - Logger (для журналирования)

Итого: 6 агентов

Пример 2: Исправление критического бага

Задача: Исправить критический баг в production API

Анализ:
- Тип: FIX_BUG
- Severity: CRITICAL
- Environment: production
- Компоненты: solution/backend/api

Выбор агентов:

 Обязательные:
   - Developer (локализация и fix)
   - Tester (regression тесты)

 Добавлены автоматически (критичность):
   - Recovery (rollback plan)
   - Deployer (hot-fix деплой)
   - Monitor (отслеживание после деплоя)

 Добавлены автоматически (production):
   - Security (проверка что fix не создал уязвимость)

🔧 Служебные:
   - Logger (детальное журналирование для аудита)

Итого: 7 агентов

Пример 3: Добавление простой фичи

Задача: Добавить кнопку экспорта в Excel

Анализ:
- Тип: ADD_FEATURE
- Complexity: LOW
- Changes API: нет
- Has code: да

Выбор агентов:

 Обязательные:
   - Developer (реализация экспорта)

 Рекомендуемые:
   - Tester (тест экспорта)

 Опциональные (не нужны):
   - Designer (слишком простая фича)
   - Documenter (нет изменений в API)

🔧 Служебные:
   - Logger

Итого: 3 агента

Промпт для выбора

Шаблон:

Задача: {{task_description}}

Определи какие агенты нужны для выполнения.

Доступные агенты:
{{agent_registry}}

Контекст:
- Тип задачи: {{task_type}}
- Сложность: {{complexity}}
- Production: {{is_production}}
- Компоненты: {{affected_components}}

Выбери агентов и объясни почему каждый нужен или не нужен.

Статус: ✅ Готов к использованию