Звучит красиво. На практике как раз в процессе работы над бекендом я переусердствовал и мои агенты начали зависать, чего не было в простой системе агентов. Что пришлось сделать:
Проблема 1: Request timed out → pipeline мёртв. LLM-вызовы работали без таймаутов. Если модель тормозила или сеть падала, то весь конвейер блокировался навечно. Без ошибки, без логов, без надежды.
Пришлось писать индивидуальные таймауты для 9 типов агентов: ресёрчерам — 3 минуты (WebSearch любит зависать), авторам — 5 минут, оркестраторам — 10. Плюс retry с экспоненциальным бэкоффом при 503, 529, connection reset.
Проблема 2: потеря данных при обрыве. Ресёрчер 3 минуты собирает данные из 15 источников. Создаёт конспект. Передаёт автору. Автор зависает на генерации → таймаут → сессия сброшена. Конспект потерян. Три минуты работы — в мусорку.
Теперь исследования сохраняются и коммитятся автоматически сразу после получения от ресёрчера, до передачи следующему агенту.
Проблема 3: файлы в никуда Агент пытается сохранить статью в
content-hub/seo-articles/drafts/. Папки не существует. Write tool молча зависает. Или ещё веселее: агент генерит текст и сразу пишет в файл одним действием — таймаут.Правило «сначала покажи, потом сохраняй» и создание всех директорий при старте — звучит очевидно. Но пока не словишь этот косяк, не сделаешь.
Проблема 4: зависание после фактчека. Фактчекер выдаёт отчёт с замечаниями. Дальше нужно спросить пользователя: «применить корректировки?». Но в промте не было механизма взаимодействия. Агент показывал сводку и... зависал. Просто стоял и ждал непонятно чего.
Добавил опцию «Свои правки» в меню, для которой не было обработчика. Пользователь выбирает → агент не знает, что делать → зависание.
Проблема 5: тишина. Агент-автор генерит материал на 35 000 символов. Всё это время — пустой экран. Ни прогресса, ни статуса. Ты сидишь и гадаешь: он работает или завис?
Решение — heartbeat каждые 3 минуты: «⏳ seo-writer работает 5м 23с... (heartbeat #2)». Теперь хотя бы понятно, что процесс жив.
Проблема 6: вечное чтение вместо работы. Запускаешь автора — а он первые 30% времени читает README, изучает структуру репозитория, перечитывает правила. Которые уже загружены автоматически. «Подготовительный паралич» — агент старательно готовится к работе вместо того, чтобы работать.
Лечится только жёстким запретом в промте: «ЗАПРЕТ подготовительных действий. Начинай писать СРАЗУ. Если тратишь > 30% времени на чтение файлов — это ошибка».
Главный уроки из этого безобразия: мультиагентная система ломается не в агентах. Она ломается в промежутках между ними — в передачах, ожиданиях, молчаливых предположениях о том, что «следующий разберётся». Это только часть доработок, в следующих постах соберу продолжение.
#ai_agents