Статьи/Агентные воркфлоу
ПлейбукАгентные воркфлоу

Восстановление после ошибок агента: самовосстанавливающиеся пайплайны

Практические паттерны для агентов, которые обнаруживают, классифицируют и исправляют ошибки без участия человека.

24 февраля 20268 мин

Каждый агент будет ошибаться. Вопрос не в том, произойдёт ли это — а в том, насколько грациозно.

Большинство агентных фреймворков относятся к ошибкам как к исключениям. Что-то ломается, пайплайн останавливается, человека вызывают. Для классического софта это работает. Для агентов — это дизайн-провал.

Почему агенты ломаются иначе

Классический софт ломается на известных границах: таймауты сети, null-ссылки, несовпадения типов. Ошибки агентов — семантические: результат выглядит корректно, но означает не то.

Три категории ошибок агентов:

  • Жёсткие ошибки: агент бросает исключение или не возвращает ничего. Легко ловятся, легко обрабатываются.
  • Мягкие ошибки: агент возвращает результат, который структурно корректен, но семантически ошибочен. Отрефакторенная функция компилируется, но меняет поведение.
  • Каскадные ошибки: мягкая ошибка на шаге 3 портит контекст для шагов 4-7, производя цепочку всё более неправильных результатов.

Мягкие и каскадные ошибки составляют 78% агентных инцидентов в наших продакшн-системах.

Паттерн самовосстановления

interface RecoveryStrategy {
  detect: (output: AgentOutput) => ValidationResult;
  classify: (error: ValidationError) => ErrorCategory;
  recover: (category: ErrorCategory, context: PipelineContext) => RecoveryAction;
  escalate: (failure: UnrecoverableError) => EscalationPath;
}

Ключевой инсайт: обнаружение должно быть отделено от исполнения. Агент, который произвёл результат, не может надёжно его валидировать. Нужен второй взгляд — другой агент, правило-валидатор или детерминированная проверка.

Слои обнаружения

Мы используем три слоя обнаружения, каждый ловит то, что пропустил предыдущий:

Слой 1: Валидация схемы

Соответствует ли выход ожидаемой структуре? Ловит жёсткие ошибки и очевидные деформации. Быстро, дёшево, ~40% проблем.

Слой 2: Семантические проверки

Имеет ли выход смысл в контексте? Если агент рефакторил функцию, проходит ли она те же тесты? Ловит мягкие ошибки. Медленнее, дороже, ~35% проблем.

Слой 3: Кросс-агентный ревью

Отдельный агент ревьюит результат с доступом к исходному намерению. Ловит тонкий семантический дрифт. Самый дорогой, оставшиеся ~25%.

Действия по восстановлению

Не все ошибки заслуживают одинакового ответа:

Категория ошибкиДействиеСтоимость
Нарушение схемыПовтор с жёсткими ограничениямиНизкая
Семантический дрифтПовтор с обогащённым контекстомСредняя
Испорченный контекстОткат к чекпоинту, повторное выполнениеВысокая
Фундаментальное непониманиеЭскалация на человекаМаксимальная

Результаты

После внедрения самовосстанавливающихся пайплайнов по всей агентной инфраструктуре:

  • Невосстановимые ошибки упали с 23% до 3%
  • Среднее время восстановления: 45 секунд (было: ручное, 15+ минут)
  • Эскалация на человека: 1 из 50 задач (было: 1 из 3)

«Цель — не ноль ошибок. Цель — ноль необработанных ошибок.»

Система не мешает агентам делать ошибки. Она делает ошибки дешёвыми, а восстановление — автоматическим. В этом разница между хрупким пайплайном и устойчивой системой.

CatoCut
CatoCut
Agent-First инженерия