system/agents/dispatcher.ai.md

Dispatcher — Диспетчер делегирования

Версия: 2.0.0
Дата: 2025-12-23


НАЗНАЧЕНИЕ

Dispatcher — центральный компонент принятия решений о делегировании задач между моделями для МАКСИМАЛЬНОЙ ЭКОНОМИИ без потери качества.


СТОИМОСТЬ МОДЕЛЕЙ

┌────────────────────────────────────────────────────────────┐
│  Opus 4.5     $5/$25      100%   архитектура, решения     │
│  Sonnet 4     $3/$15       60%   код, рефакторинг         │
│  Haiku 4.5    $1/$5        20%   поиск, анализ            │
│  Haiku 3.5    $0.8/$4      16%   простые задачи           │
│  Haiku 3     $0.25/$1.25    5%   рутина ← В 20 РАЗ ДЕШЕВЛЕ│
└────────────────────────────────────────────────────────────┘

ID дешёвых моделей:
- Haiku 3: claude-3-haiku-20240307
- Haiku 3.5: claude-3-5-haiku-20241022


АЛГОРИТМ ДЕЛЕГИРОВАНИЯ

ВХОД: Задача от пользователя

1. КЛАССИФИКАЦИЯ
   └─ Определить тип задачи (см. таблицу ниже)

2. ВЫБОР ПРОЦЕССА
   └─ Исследование | Планирование | Выполнение | Проверка

3. ВЫБОР МОДЕЛИ (от дешёвой к дорогой!)
   └─ Haiku 3  Haiku 4.5  Sonnet  Opus
   └─ Всегда начинать с минимально достаточной

4. ДЕЛЕГИРОВАНИЕ
   └─ Task(model=..., prompt=...)

ВЫХОД: Результат подзадачи

КЛАССИФИКАЦИЯ ЗАДАЧ

Триггеры → Процесс → Модель

Триггеры Процесс Модель Цена Пример
grep, find, ls, существует ли Рутина Haiku 3 5% Task(model="claude-3-haiku-20240307")
где, найди, покажи Исследование Haiku 4.5 20% Task(subagent_type="Explore")
тесты, проверь, lint Проверка Haiku 3.5 16% Task(model="claude-3-5-haiku-20241022")
исправь, баг, ошибка Выполнение Sonnet 60% Task(model="sonnet")
рефакторинг, код Выполнение Sonnet 60% Task(model="sonnet")
фича, архитектура, план Планирование Opus 100% Сам / EnterPlanMode

ПРАВИЛА ДЕЛЕГИРОВАНИЯ

Когда делегировать Haiku 3 ($0.25) — САМЫЙ ДЕШЁВЫЙ

✓ Grep, find, ls — элементарные команды
✓ Проверка синтаксиса (да/нет)
✓ Извлечение данных из структурированных файлов
✓ Простое форматирование
✓ Проверка существования файлов
✓ Подсчёт, суммирование

Task(model="claude-3-haiku-20240307", prompt="...")

Когда делегировать Haiku 4.5 ($1)

 Поиск по кодовой базе (Explore агент)
 Чтение и понимание кода
 Простые вопросы "где X?"
 Запуск тестов, линтеров
 Сбор информации перед работой
 Проверка результатов

Task(subagent_type="Explore", model="haiku")

Когда делегировать Sonnet ($$)

✓ Написание нового кода
✓ Исправление багов
✓ Написание тестов
✓ Code review с рекомендациями
✓ Рефакторинг (после плана)
✓ Интеграции API

Когда НЕ делегировать (Opus сам)

✓ Планирование архитектуры
✓ Принятие решений с trade-offs
✓ Общение с пользователем
✓ Финальная проверка качества
✓ Неясные требования (нужны вопросы)

ПАТТЕРНЫ ДЕЛЕГИРОВАНИЯ

Паттерн 1: Исследование → Решение

1. Task(model="haiku", "найди все файлы с X")
2. Анализирую результат (сам)
3. Отвечаю пользователю

Паттерн 2: План → Реализация

1. Планирую (сам, Opus)
2. Получаю "ок" от пользователя
3. Task(model="sonnet", "реализуй план: ...")
4. Проверяю результат (сам)

Паттерн 3: Параллельное выполнение

# Независимые задачи — параллельно
Task(model="haiku", "найди все API endpoints")
Task(model="haiku", "найди все тесты")
Task(model="haiku", "проверь зависимости")

# Жду все результаты, анализирую

Паттерн 4: Цепочка

1. Task(model="haiku", "найди где ошибка")
2. На основе результата:
   Task(model="sonnet", "исправь в файле X строку Y")
3. Task(model="haiku", "запусти тесты")

ПРИМЕРЫ ПРОМПТОВ ДЛЯ ДЕЛЕГИРОВАНИЯ

Haiku: Исследование

Task(
  model="haiku",
  subagent_type="Explore",
  prompt="Найди все файлы, где используется класс OzonClient.
          Верни список файлов и строки использования."
)

Sonnet: Реализация

Task(
  model="sonnet",
  subagent_type="general-purpose",
  prompt="""
  Исправь баг в файле library/connectors/api/ozon/client.py

  Проблема: {описание}

  Требования:
  - Не менять публичный API
  - Добавить обработку ошибок
  - Написать тест

  После исправления запусти тесты.
  """
)

Haiku: Проверка

Task(
  model="haiku",
  subagent_type="general-purpose",
  prompt="Запусти pytest для library/connectors/api/ozon/tests/
          Верни результат: passed/failed и список ошибок если есть."
)

МАТРИЦА СТОИМОСТИ

Модель Стоимость Качество Скорость Использовать для
Haiku $ Базовое Быстро Рутина, поиск, проверки
Sonnet $$ Хорошее Средне Код, тесты, баги
Opus $$$ Лучшее Медленно Планирование, архитектура

Цель: 80% задач на Haiku/Sonnet, 20% на Opus.


АНТИПАТТЕРНЫ

НЕ делать

✗ Opus для поиска файлов (дорого, Haiku справится)
✗ Haiku для сложного рефакторинга (качество пострадает)
✗ Sonnet для планирования архитектуры (нужны trade-offs)
✗ Делегировать без чёткого промпта
✗ Делегировать когда нужно уточнить у пользователя

СВЯЗИ


Версия: 1.0.0