Когда вы уже усвоили концепцию «координации нескольких ИИ» из статьи Что такое мультиагентная система?, следующий вопрос — как её реально построить. В этой статье мы пройдём практический процесс из 5 шагов для начинающих, используя де-факто стандарт 2026 года: паттерн supervisor.

Прежде чем говорить о фреймворках, вот самый важный принцип: «сначала стройте на одном агенте и добавляйте новых — по минимуму — только когда упрётесь в предел». Идти в мультиархитектуру с самого старта — это, как правило, избыточное проектирование. Код показан в виде псевдокода, не зависящего от фреймворка, поэтому он применим и с MCP, и с любым SDK.

КАК ПОСТРОИТЬ МУЛЬТИАГЕНТНУЮ СИСТЕМУ · 5 ШАГОВ

Стройте мало, измеряйте, потом добавляйте

— Паттерн supervisor, начиная с минимальной конфигурации

1Разложите задачу
2Определите worker (до 3-5)
3Спроектируйте supervisor
4Определите handoff и обмен контекстом
5Измеряйте и работайте с лимитами

* Шаги и цифры в этой статье приведены по открытым материалам, практическим руководствам и исследовательским отчётам (по состоянию на июнь 2026 года). Код — концептуальный псевдокод; реальный API проверяйте в официальной документации каждого фреймворка.

1. Перед началом: действительно ли вам нужна мультиархитектура?

Первый барьер — не технический, а вопрос оценки. Мультиагентность мощна, но около 80% сценариев прекрасно обходятся одним агентом. Если ничего из перечисленного ниже не подходит, сначала стройте на одном агенте.

3 признака того, что пора переходить на мульти

  • Разделение специализаций: знания не помещаются в один промпт (области охватывают исследования, юриспруденцию, код и т. д.)
  • Параллелизм: выполнять несколько задач одновременно явно быстрее
  • Разделение решений: качество растёт, когда вы разделяете «исполнителя» и «проверяющего»

И наоборот, использование мульти для простого линейного процесса — как мы разбирали в прошлый разраздувает стоимость в 3-10x и фактически снижает точность на последовательных задачах (исследование Google сообщает о -39-70% по сравнению с одним агентом). Исходите из того, что «больше агентов не значит умнее».

2. Базовая форма: supervisor (стандарт 2026 года)

Если вы не уверены, какой паттерн строить, берите паттерн supervisor, и точка. Subagents в Claude Code, LangGraph Supervisor, handoffs в OpenAI Agents SDK — основные реализации все сошлись на этой форме. Причины очевидны.

Самая широкая поддержка фреймворков

Нативная поддержка в основных фреймворках. Множество референсных реализаций.

Известный режим отказа

Главный сбой — «избыточное делегирование», ограничиваемое лимитом итераций.

Легко аудировать

«Кто что сделал» — ясно, что упрощает отладку.

Механика проста. Supervisor получает общую задачу, разбивает её на подзадачи, делегирует их специализированным worker и агрегирует результаты. Supervisor не обязан знать, как worker выполняет свою работу — только какого worker вызвать и в каком формате вывода. Экспертиза живёт в worker.

3. Построение за 5 шагов

Соберите минимальную конфигурацию supervisor за пять шагов. Правило большого пальца: начинайте с 2-3 worker, а затем добавляйте новых только тогда, когда это оправдано измерениями.

ШАГ 1. Разложите задачу

Выпишите «конечную цель» и нужные «специализированные роли». Пример: для отчёта по исследованию рынка — «1) собрать данные → 2) проанализировать → 3) написать → 4) проверить факты». Разложите всё чётко с самого начала — расплывчатость здесь обрушит всю конструкцию.

ШАГ 2. Определите worker (до 3-5)

Дайте каждому worker одну роль, нужные ему инструменты и формат вывода. Не жадничайте поначалу — максимум 3-5. Каждый worker независим и держит только собственные инструменты (поиск, выполнение кода и т. д.).

ШАГ 3. Спроектируйте supervisor

В промпте supervisor явно перечислите имена worker, которых он может вызывать (жёсткий лимит). Хитрость: тратьте больше времени на supervisor, чем на любой отдельный worker. Именно это определяет общее качество.

ШАГ 4. Определите handoff и обмен контекстом

Определите, что и в каком формате передаётся между worker. Передача полного контекста всем раздувает токены, поэтому передавайте только нужную информацию. Стандартный протокол для координации между агентами — A2A.

ШАГ 5. Измеряйте и работайте с лимитами

Инструментируйте каждый handoff, прежде чем добавлять агентов (наблюдаемость не опциональна). Установите лимиты на итерации, токены и стоимость. Одновременно настройте evals и ограждения (guardrails).

4. Минимальный пример кода (псевдокод)

Суть паттерна supervisor на удивление коротка. Вот псевдокод, не зависящий от фреймворка, показывающий цикл, в котором supervisor выбирает worker и запускает его (реальный API проверяйте в официальной документации каждого SDK).

# Определяем worker: одна роль + выделенные инструменты
workers = {
  "researcher": Agent(tools=[web_search]),
  "writer":     Agent(tools=[]),
  "factcheck":  Agent(tools=[web_search]),
}

# Supervisor: жёстко ограничиваем имена worker, которые он может вызывать
supervisor = Agent(
  instructions="Decompose the goal and pick one worker to call next. "
               "Return 'DONE' when finished.",
  allowed_workers=["researcher", "writer", "factcheck"],
)

# Цикл выполнения (лимит итераций предотвращает избыточное делегирование)
state = {"goal": "Write an AI market report", "history": []}
for step in range(MAX_STEPS):          # <- лимит обязателен
  next_worker = supervisor.decide(state)
  if next_worker == "DONE":
    break
  result = workers[next_worker].run(state)
  state["history"].append({next_worker: result})   # делимся только нужным контекстом
  log_handoff(next_worker, result)     # <- инструментируем каждый handoff

Три вывода: 1) каждый worker — это одна роль + выделенные инструменты, 2) набор вызываемых supervisor ограничен, 3) у цикла всегда есть лимит итераций. Добавьте к этому каркасу измерения, ограждения и evals — и вы приблизитесь к продакшен-качеству. Claude Agent SDK и subagents в Claude Code следуют той же идее.

5. Типичные ловушки и способы их избежать

Места, где спотыкаются при разработке мультиагентных систем, вполне предсказуемы. Опередите их.

Ловушка Решение
Избыточное делегирование (supervisor крутится бесконечно) Лимит итераций + ограничение вызываемых worker
Раздувание токенов (стоимость 3-10x) Прекратите делиться полным контекстом; передавайте только нужное + кэширование
Нестабильное, недетерминированное поведение Держите worker немного (3-5) + фиксируйте форматы вывода
Падение точности на последовательных задачах (-39-70%) Вернитесь к одному агенту для линейной работы
Непонятно, где произошёл сбой Инструментируйте каждый handoff до масштабирования (наблюдаемость)

Общий урок: «промпты, проектирование инструментов и набор evals решают успех в большей степени, чем фреймворк». Важнее эффектной архитектуры — дисциплина строить мало, измерять и добавлять только тогда, когда это окупается; в итоге именно она оказывается самой быстрой.

Итоги

Построение мультиагентной системы не страшно, если начать с паттерна supervisor в минимальной конфигурации. Давайте подведём итог.

Ключевые выводы

  • 🚦 Сначала один. Добавляйте агентов только после появления признаков специализации / параллелизма / разделения решений.
  • 🧠 Базовая форма — supervisor (стандарт 2026 года). Больше всего времени тратьте на проектирование supervisor.
  • 🔢 5 шагов: разложить → определить worker (3-5) → спроектировать supervisor → handoff → измерять.
  • ⚠️ Ловушки: избыточное делегирование, раздувание токенов, нестабильность. Лечатся лимитами, передачей только нужного и измерениями.
  • 📏 Дисциплина: промпты, инструменты и evals решают успех в большей степени, чем фреймворк.

«Стройте мало, измеряйте, потом добавляйте». Держите эту дисциплину — и мультиагентная система станет мощным партнёром для сложной работы. Про концепцию см. Что такое мультиагентная система?; про построение одиночного агента — Как построить ИИ-агента.

FAQ

В. Какой паттерн строить первым?

О. Паттерн supervisor, без вопросов. Его поддерживают основные фреймворки, его режим отказа известен, а референсных реализаций больше всего. Другие паттерны изучайте, когда освоитесь.

В. Со скольких worker начинать?

О. Начинайте с 2-3 и держите максимум 3-5. Чем больше вы добавляете, тем нестабильнее всё становится и тем сильнее раздуваются токены. Норма — добавлять новых только после того, как измерения докажут необходимость.

В. Нужен ли фреймворк?

О. Не обязателен. Как показывает псевдокод, минимальную конфигурацию можно построить из цикла и промптов. Но если в продакшене нужны сохранение состояния, наблюдаемость и восстановление, поддерживающий фреймворк — это короткий путь.

В. Как предотвратить взрывной рост стоимости?

О. Помогают три вещи: 1) ограничьте число итераций, 2) делитесь только нужным контекстом вместо полного, 3) используйте кэширование промптов. Переход на мульти может стоить в 3-10x дороже одного агента, поэтому лимиты обязательны с первого дня.