Проблема, о которой молчат
Один LLM-судья — это как попросить случайного прохожего оценить твой рисунок. Даже GPT-5 (май 2026) выдаёт что-то вроде «хорошая композиция, но есть проблемы с анатомией». Ни конкретики, ни применимых советов. А если попросить быть строже — начинает придираться к мелочам, теряя картину целиком.
Вот тут и встаёт вопрос: а зачем вообще мультиагент? Почему бы не прогнать один и тот же промпт через одну модель три раза? Потому что три независимых мнения от одного и того же мозга — это три вариации одной ошибки. А разные персоны с разными инструкциями видят разные слои рисунка. И это принципиально меняет качество фидбека.
Мы (я, пара инженеров и один дизайнер, который нас ненавидел) построили систему multi-agent feedback для платформы художников. Ниже — архитектура, компромиссы и цифры, за которые пришлось заплатить.
TL;DR: Три агента (стилист, анатомист, композитор) + судья-агрегатор. Система стоит ~$0.12 за один фидбек против $0.03 у одного LLM. Но охват ошибок вырос с 30% до 71% на тестовом датасете.
Архитектура: почему три, а не пять и не семь
Изначально хотели сделать 7 агентов: свет, цвет, анатомия, композиция, стиль, сюжет, настроение. Быстро поняли, что это не масштабируется — каждый агент генерирует по 400 токенов, судья потом мучительно голосует. Задержка вырастала до 30 секунд. Прод отрубил нас на этапе демо.
Остановились на трёх — это минимум, дающий покрытие ключевых слоёв:
- Стилист — оценивает общее впечатление, цветовую гамму, текстуры. Его системный промпт начинается с «Ты — ворчливый арт-директор с 20-летним стажем».
- Анатомист — про пропорции, перспективу, построение. «Ты — преподаватель академического рисунка, у тебя лазерная указка и плохое настроение».
- Композитор — центры внимания, ритм, баланс. «Ты — режиссёр-постановщик: кадр должен работать, или переснимаем».
Каждый агент получает одно и то же изображение (закодированное base64) и выдаёт 2-3 предложения критики. Никаких оценок по шкале. Только текст. Потому что числа усредняются в бессмыслицу, а текст можно скомбинировать.
Судья-агрегатор — четвёртый LLM-вызов — получает три ответа и собирает из них единое заключение, убирая противоречия и выделяя главное. Это самый дорогой этап: он генерирует 600-800 токенов. Но без него фидбек выглядит как каша из трёх голосов.
Ошибка, которую мы сделали на старте: судья пытался ставить общую оценку от 1 до 10. Агенты расходились на 3-4 балла, судья выдавал среднее — и художники плевались. Убрали числа — стало лучше.
Оркестрация: LangChain против самописного
Пробовали LangChain — на тот момент версия 0.5 с AgentExecutor. Раздражало всё: накладные расходы на парсинг, странные retry-стратегии, баги с параллельными вызовами. В итоге оркестратор написали на чистом asyncio с aiohttp.
Топология — гибрид: параллельный запуск трёх агентов, затем последовательный запуск судьи. Это классика для мультиагентных систем (о сравнении архитектур я писал здесь).
async def get_feedback(image_b64: str):
tasks = [
run_agent("stylist", image_b64, STYLIST_PROMPT),
run_agent("anatomist", image_b64, ANATOMIST_PROMPT),
run_agent("composer", image_b64, COMPOSER_PROMPT),
]
results = await asyncio.gather(*tasks)
final = await run_judge(results, JUDGE_PROMPT)
return final
Выглядит просто, но внутри каждого run_agent — свой rate limiter, таймаут 15 секунд, ретрай на ошибки контекста (проклятые обрывы ответов у дешёвых провайдеров).
Компромиссы: качество, скорость, деньги
Вот таблица, которую я показываю всем, кто спрашивает «почему multi-agent не везде»:
| Метрика | Один LLM-судья | Multi-agent (3+1) |
|---|---|---|
| Средняя задержка | 2.4 сек | 7.1 сек |
| Стоимость одного фидбека | $0.028 | $0.118 |
| Доля релевантных замечаний* | 30% | 71% |
| Количество галлюцинаций на 100 ответов | 12 | 4 |
*Релевантность оценивали 5 художников: замечание считается релевантным, если оно конкретно, применимо и точечно указывает на недостаток.
Стоимость посчитана на модели Claude Sonnet 4.5 (Anthropic) — для апреля 2026 это best price/quality для vision-задач. Если взять GPT-4o (OpenAI), будет +20% к цене и +40% к токенам из-за длинных ответов. Тестировали на 500 рисунках из базы r/ArtCrit, разметка — ручная.
Главный компромисс: multi-agent даёт в 2.4 раза больше релевантных замечаний, но стоит в 4.2 раза дороже и ждать приходится в 3 раза дольше. Для пользовательского опроса, где художник ждёт 5-7 секунд, 7 секунд — приемлемо. А вот для массового скоринга портфолио (1000+ работ) — уже нет, выгоднее гонять одного судью и мириться с шумом.
Когда multi-agent окупается (и когда нет)
Мы перепробовали несколько конфигураций. Заметили: если рисунок технически плохой — анатомия сломана, перспектива никакая — один судья отлично справляется, потому что ошибки очевидны. Multi-agent тут лишний.
А вот средние и хорошие работы — где нужно копать глубже, разбирать цветовое решение, композиционные приёмы — тут multi-agent раскрывается. Для сильного художника фидбек от одного LLM звучит как «всё отлично». А три эксперта вытаскивают конкретные улучшения.
Есть ещё один момент: multi-agent меньше галлюцинирует. В 12% случаев один судья выдумывает несуществующие проблемы (типа «неправильная тень от носа» при нормальном освещении). Агрегация трёх мнений такие выбросы срезает — если один агент ошибся, двое других его перевесят.
Стоимость: детальный разбор
Для тех, кто считает бюджет. Провайдер — Anthropic (Claude Sonnet 4.5). Цены на май 2026:
- Input: $3.00 / 1M токенов
- Output: $15.00 / 1M токенов
Один запрос к каждому агенту: в среднем 1200 токенов input (промпт + base64 изображение 300x300, сжатое до 100KB) + 150 токенов output. Судья: 900 input (промпт + три ответа) + 700 output.
Считаем:
(3 * (1200 + 900) * $3/1M + 3*150*$15/1M + 700*$15/1M) = ~$0.118
Если увеличить картинку до 1024x1024 (что требуется для качественного анализа), input растёт до 5000 токенов. Цена умножается на 2.5. Получаем $0.295 за один фидбек. Для платформы с 1000 активных художников, которые просят фидбек 3 раза в неделю — это почти $900 в месяц только на LLM.
Подводные камни: три совета от обожжённых
- Не давайте агентам доступ к истории чата. Как только они начинают видеть предыдущие фидбеки — копируют стиль друг друга, теряется разнообразие. Мы держим каждый вызов stateless.
- Судья обязан быть сильнее агентов. Если судья — та же модель, что и агенты, он плохо разрешает противоречия. Мы используем Claude Opus 4.0 для судьи (дорого, но качество агрегации растёт на 20%).
- Тестируйте на реальных художниках, а не на датасетах. У нас было 82% accuracy на тестовой выборке — а пользователи ругались, что фидбек не учитывает стиль аниме. Оказалось, что наши агенты переобучены на академизм. Пришлось добавить в промпты «если стиль карикатурный — не критикуй за нарушение пропорций».
И последнее. Multi-agent feedback не заменит код-ревью человека (о том, как строили AI-агента для код-ревью, я писал тут — там те же грабли, только с кодом). Художники чувствуют, когда машина не понимает замысел. Наша система — это черновик ревью, который художник потом может доработать. Абсолютная замена — утопия и, честно говоря, не нужна.
Вместо заключения: если решите попробовать — начните с одного дополнительного агента (стилист). Замерьте, как изменится конверсия в доработки. Часто один extra взгляд уже даёт 60% эффекта от полного multi-agent. А там и до судьи-агрегатора рукой подать.