Сбой как информация
Когда AI-агент вызывает инструмент MCP-сервера и тот падает, сообщение об ошибке попадает в контекст агента. В отличие от скриптовой программы, идущей предопределённым путём ошибок, агент может рассуждать об ошибке и выбирать ответ исходя из того, что она ему говорит.
Ошибка «table not found» подсказывает агенту проверить имя таблицы. Ошибка «permission denied» сообщает, что этот подход не сработает независимо от количества повторов. Ошибка «timeout» говорит, что операция, возможно, выполнится при повторе или с более простыми параметрами. Хорошие сообщения об ошибках делают такие рассуждения возможными. Плохие оставляют агента гадать.
Стратегии повторов
Не все сбои заслуживают одинакового ответа. Агент должен различать переходные ошибки (которые могут разрешиться при повторе) и постоянные (которые не разрешатся). Тайм-аут сети — переходная. Отсутствующая таблица — постоянная. Ошибка rate limit — переходная, но требует задержки перед повтором.
Хорошо спроектированные агенты реализуют ступенчатые повторы: ещё одна немедленная попытка для неожиданных ошибок, ожидание и повтор для лимитов запросов, и переход к альтернативному подходу при постоянных сбоях. Это сложнее, чем простой паттерн «повторить три раза», и даёт лучшие результаты.
Альтернативные подходы
Самая ценная реакция на сбой — найти иной путь к той же цели. Если запрос к конкретной таблице падает, может ли агент найти данные в другой таблице? Если один эндпоинт API недоступен, есть ли альтернативный? Если файл нельзя прочесть напрямую, может ли агент сначала найти его, чтобы получить корректный путь?
Эта способность находить альтернативные подходы — одно из ключевых преимуществ агентов перед жёсткими скриптами. Скрипт идёт одним путём и падает, если этот путь заблокирован. Агент способен рассуждать об альтернативах и пробовать их, часто добиваясь успеха там, где скрипт сдался бы.
Предотвращение повторяющихся сбоев
Хорошие агенты помнят, что упало в рамках сессии. Если запрос к таблице с определённым именем не выполнился, агент не должен повторять ровно тот же запрос через три шага. Это кажется очевидным, но без явных инструкций об отслеживании сбоев агенты иногда повторяются, особенно в длинных задачах, где исходный сбой уже выбыл из активного внимания.
Включение в промпт агента инструкций вроде «Если вызов инструмента не удался, отметь сбой и не повторяй тот же вызов с теми же параметрами» помогает предотвратить расточительные повторы.
Связанные материалы
- Как отлаживать AI-агента, который продолжает совершать ошибки
- Цикл агента: как автономные AI-системы принимают решения
- Как сообщения об ошибках от MCP-серверов влияют на поведение агента
Откройте AI-агентов на Skillful.sh. Поиск по 137 000+ AI-инструментам.