Агент читает ошибку
Когда вызов инструмента MCP-сервера терпит неудачу, сообщение об ошибке становится частью контекста агента. Агент читает ошибку и решает, что делать дальше. Повторить? Попробовать другой подход? Попросить помощи у пользователя? Решение целиком зависит от того, что ему говорит сообщение об ошибке.
Сообщение «Error: ECONNREFUSED» сообщает агенту, что соединение было отвергнуто, но не почему и что с этим делать. Сообщение «Error: Cannot connect to PostgreSQL at localhost:5432. Возможно, сервер базы данных не запущен или порт указан неверно. Проверьте, что PostgreSQL запущен, а настройки соединения соответствуют конфигурации Вашей базы.» даёт агенту достаточно информации, чтобы объяснить проблему пользователю и предложить конкретные исправления.
Хорошие ошибки делают восстановление возможным
Лучшие сообщения об ошибках для инструментов, потребляемых AI, следуют паттерну: что произошло, почему это могло произойти и что могло бы это исправить. «Запрос вернул 0 строк. Таблица ‘users’ существует, но может быть пустой, либо условие WHERE ‘created_at > 2026-12-01’ не соответствует ни одной записи. Попробуйте расширить диапазон дат или проверить содержимое таблицы.» Это даёт агенту достаточно контекста, чтобы попробовать модифицированный запрос, не спрашивая пользователя.
Категоризация ошибок тоже помогает. Если ошибка указывает на проблему с правами, агент знает, что повтор не поможет. Если она указывает на временную сетевую проблему, повтор может удаться. Если она указывает на неверные параметры, агент может попробовать другие. Чёткая категоризация позволяет применять более умные стратегии восстановления.
Плохие ошибки приводят к циклам
Расплывчатые сообщения вроде «Internal server error» или «Something went wrong» не дают агенту никакой информации для работы. Он может повторить тот же падающий вызов (тратя токены), попробовать чуть отличающийся подход, который провалится по той же причине, или вовсе сдаться там, где простая корректировка параметра решила бы проблему.
Худший паттерн — когда ошибки целиком проглатываются и нет никакого указания, что что-то пошло не так. Агент получает пустой или частичный результат и продолжает, как будто всё корректно. Это приводит к каскадирующим ошибкам ниже по цепочке.
Создателям MCP-серверов
Если Вы создаёте MCP-сервер, вкладывайтесь в сообщения об ошибках. Каждый путь ошибки должен возвращать сообщение, которое поможет языковой модели понять проблему и предложить решение. Думайте о своих ошибках как об инструкциях для джуниора, у которого нет доступа ни к Вашим логам, ни к Вашей базе. Что ему нужно знать, чтобы диагностировать и устранить проблему?
Включайте релевантный контекст в ошибку: какая операция выполнялась, какие параметры использовались, каким было ожидаемое поведение и что произошло на самом деле. Этот контекст стоит нескольких лишних строк кода, но кардинально улучшает то, как агенты взаимодействуют с Вашим сервером.
Связанные материалы
- Как отлаживать AI-агента, который продолжает совершать ошибки
- Почему качество MCP-серверов так сильно различается (и как его оценивать)
- Как AI-агенты решают, когда просить помощи у человека
Просмотр MCP-серверов на Skillful.sh. Поиск по 137 000+ AI-инструментам.