Я попробовал построить AI-агента — вот что оказалось сложнее всего
Агент работает, отчитывается об успехе — и при этом делает не то. Честный разбор трёх главных ловушек при построении AI-агентов: память, tool use и самооценка результата.
В статье
Я думал, что самое сложное — это запустить агента. Настроить, подключить, проверить. Оказалось, что самое неприятное начинается позже: когда агент работает уверенно, отчитывается об успехе — и при этом делает то, чего ты его не просил.
Когда агент врёт без злого умысла
Галлюцинации — это слово обычно связывают с текстом. Агент придумал факт, процитировал несуществующую статью. Но когда строишь агента с инструментами, галлюцинации принимают другую форму.
Агент может «вызвать» инструмент, которого нет в списке. Может отчитаться о выполненной задаче, которую никто не запускал. Может интерпретировать ошибку от API как успех — и двигаться дальше, как ни в чём не бывало. Ты смотришь на лог и видишь: всё зелёное. А задача не выполнена.
Это не баг конкретной модели. Это структурная проблема: агент, который выполняет задачу, он же и оценивает результат. Никакого второго мнения. Никакой проверочной петли. Он сам себе судья — и в этом вся беда.
Память работает не так, как ты думаешь
Когда я впервые запустил агента и попросил вспомнить наш разговор недельной давности — он просто не знал о чём я. Полная амнезия.
По умолчанию у агента нет памяти между сессиями. Каждый запуск — это чистый лист. Если ты не настроил хранилище явно, не выбрал где и как сохранять историю — агент не знает ничего о том, что было вчера.
Но даже когда память настроена, есть другая ловушка. Контекстное окно — это не безграничный блокнот. Чем больше информации ты туда заливаешь, тем хуже модель удерживает середину. Начало помнит, конец помнит, а всё что посередине — размывается. Я один раз скормил агенту весь HTML со страницы через парсер. Агент после этого начал галлюцинировать — и я долго не мог понять почему, пока не посмотрел что именно занимает контекст.
Tool use — это отдельная история
Подключить API — это двадцать минут. Сделать так, чтобы агент правильно этим API пользовался — это совсем другая задача.
Агент должен понять когда вызвать инструмент. С какими параметрами. Что делать если инструмент вернул ошибку, или вернул пустой ответ, или завис. Вот здесь большинство пайплайнов ломается — тихо, без предупреждений, без красного экрана.
Я видел это в реальных сборках: агент получал ошибку от внешнего сервиса, не знал что с ней делать, решал двигаться дальше и просто придумывал результат. Уверенно, красиво, с подробностями. И если ты не поставил отдельный слой валидации — ты об этом не узнаешь.
Что с этим делать на практике
Я не пришёл к выводу что агенты не работают. Они работают. Но с оговорками, которые никто не пишет в туториалах.
Главное что я вынес: агент не должен сам оценивать свои действия. Если задача критичная — нужна отдельная проверка. Второй агент, условие в логике, что угодно. Просто не оставляй его судьёй собственного результата.
Память нужно проектировать заранее — не добавлять потом когда уже всё сломалось. Решить что агент помнит между сессиями, а что нет. Для поддержки это нужно. Для одноразовых задач — нет.
И контекст — это ресурс, не мусорка. Сырой HTML, длинные логи, необработанные дампы туда не идут. Агент начнёт галлюцинировать не из-за плохой модели, а потому что ты перегрузил окно.
За кулисами всегда сложнее
Я пишу это не чтобы напугать. Я пишу это потому что честный разбор полезнее красивого промо.
Агенты — это не магия и не просто «подключи и работает». Это архитектура, которую нужно продумывать. Где хранится память. Как обрабатываются ошибки. Как агент узнаёт что задача выполнена, а не просто решил что выполнена.
Когда всё это продумано — агент реально освобождает время. У меня есть сборки которые работают месяцами, я про них не вспоминаю. Но путь к этому шёл через несколько неприятных сюрпризов которые никто не описывает в туториалах.
Если думаешь строить агента под свои задачи и хочешь пройти этот путь без лишних граблей — давай разберёмся вместе.
Связанная услуга
AI-маркетинг для малого бизнеса
Помогаю собрать рабочую маркетинговую систему, где ИИ связан не с модными инструментами, а с аудиторией, оффером, контентом, сайтом, заявками и процессами.