Старый практикум про "команду из трёх AI-специалистов под Supervisor" уже выглядит слишком театрально. В 2026 мультиагентные системы полезнее собирать через более точные primitives:
manager with specialists;handoffs;orchestrator-worker;То есть не "один главный агент, который играет в менеджера", а управляемая orchestration-модель, где мы чётко понимаем, кто владеет разговором, кто делает bounded subtask и когда происходит передача управления.
Multi-agent полезен, когда есть хотя бы одно из трёх условий:
Плохие причины запускать multi-agent:
Во многих случаях routing или evaluator-optimizer дадут тот же эффект дешевле.
Главный агент остаётся владельцем run и вызывает specialist agents как bounded workers.
Подходит, когда:
Handoff нужен, когда один агент буквально передаёт управление другому. Это полезно, если:
Этот паттерн полезен, когда число подзадач заранее неизвестно. Например:
Тогда orchestrator планирует decomposition, создаёт workers и собирает результаты.
В этом практикуме строим именно manager with specialists, а не full handoff. Это хороший baseline, потому что:
Роли:
manager - принимает тему, решает порядок шагов и делает финальную проверку;research_agent - собирает факты и примеры;analysis_agent - находит паттерны и trade-offs;writer_agent - собирает memo или report.Ниже skeleton, который показывает current framing:
Runner.from agents import Agent, Runner
research_agent = Agent(
name="Research specialist",
model="gpt-5-mini",
instructions=(
"Собирай только проверяемые факты и источники. "
"Не делай выводов, не пиши финальный текст."
),
)
analysis_agent = Agent(
name="Analysis specialist",
model="gpt-5.4",
instructions=(
"Работай только с фактами от research specialist. "
"Выделяй trade-offs, contradictions и practical implications."
),
)
writer_agent = Agent(
name="Writer specialist",
model="gpt-5.4",
instructions=(
"Пиши короткий, структурированный markdown memo. "
"Не добавляй новые факты вне входных данных."
),
)
manager = Agent(
name="Manager",
model="gpt-5.4",
instructions=(
"Ты управляешь specialist agents. "
"Сначала реши, нужен ли research pass. "
"Затем передай очищенные notes analysis specialist. "
"После этого передай analysis writer specialist. "
"Если memo неполное, сделай ещё один bounded pass, но не зацикливайся."
),
handoffs=[research_agent, analysis_agent, writer_agent],
)
result = Runner.run_sync(
manager,
"Подготовь memo: как reasoning-модели влияют на support и internal research workflows."
)
print(result.final_output)
Это уже практичнее старой supervisor-схемы, потому что:
Самая частая ошибка multi-agent систем - слишком широкие роли. Specialist agent должен быть не "умным вторым главным агентом", а bounded lane.
Хорошие ограничения:
Чем жёстче роль, тем легче её eval'ить.
| Ситуация | Что брать |
|---|---|
| Один агент должен владеть задачей от начала до конца | manager with specialists |
| Новый агент должен стать owner'ом разговора | handoff |
| Число подзадач заранее неизвестно | orchestrator-worker |
| Этапы заранее понятны и стабильны | обычный workflow, без multi-agent |
Практическое правило:
handoff;manager with specialists;orchestrator-worker.Multi-agent без tracing быстро становится непрозрачным. Минимум, что стоит видеть:
Если этих сигналов нет, вы не понимаете, помогает ли multi-agent вообще.
Даже после сборки multi-agent workflow почти всегда полезно добавить evaluator step:
Это особенно важно, потому что multi-agent система умеет выглядеть убедительно даже тогда, когда внутри пошла ошибка передачи контекста.
В 2026 multi-agent стоит строить не вокруг абстрактного "Supervisor", а вокруг более точного выбора:
manager with specialists;handoff;Для большинства команд лучший старт - один manager, 2-3 bounded specialists, traces и quality gate. Если это уже не даёт выигрыша, добавление ещё агентов обычно не спасает.
1. Когда `manager with specialists` обычно лучше handoff?
2. Почему старая supervisor-модель часто избыточна?
3. Что сильнее всего помогает отлаживать multi-agent систему?