Пока LLM-фича — это «спросили модель, получили ответ», всё предсказуемо. Но некоторые задачи так не решить: чтобы ответить, нужно сходить в базу, потом по результату — в другой сервис, потом решить, что делать дальше. Здесь появляется агент — модель, которая работает в цикле, сама решая, какие инструменты вызвать, чтобы довести задачу до конца. Это самая мощная и самая коварная форма LLM-приложения.
Чем агент отличается от одного вызова
Обычная LLM-фича — это прямая линия: вход → модель → выход. Агент — это цикл с ветвлениями, где модель на каждом шаге сама выбирает следующее действие.
Классическая схема цикла — «рассуждение → действие → наблюдение» (её часто называют ReAct):
- рассуждение — модель по задаче и тому, что уже известно, решает, что сделать дальше;
- действие — вызывает инструмент (запрос в базу, поиск, вызов API);
- наблюдение — получает результат инструмента и добавляет его к тому, что знает;
- повтор — пока задача не решена или не сработает условие остановки.
Разница принципиальная: в обычной фиче поток задаёте вы, в агенте — модель решает на ходу, сколько шагов сделать и в каком порядке. Это даёт гибкость (агент справляется с задачами, которые не распишешь заранее), но забирает предсказуемость.
Инструменты — руки агента
Агент бесполезен без инструментов: без них он умеет только рассуждать в тексте. Инструменты — это функции, которые вы ему даёте: «найти заказ», «отправить письмо», «выполнить запрос». Механику того, как модель вызывает функции по описанию, разбирает вызов инструментов; агент — это надстройка, которая гоняет такие вызовы в цикле и решает, какой и когда сделать. От того, какие инструменты вы дали и как чётко их описали, напрямую зависит, справится ли агент.
Почему за агентом нужен присмотр
Автономный цикл — источник новых проблем, которых нет у одиночного вызова:
- зацикливание. Агент может застрять, повторяя одно и то же действие. Нужен жёсткий лимит шагов — потолок, после которого цикл принудительно останавливается.
- стоимость. Каждый шаг — это вызов модели, а их могут быть десятки. Расходы растут незаметно и быстро; их надо ограничивать бюджетом.
- непредсказуемость и риск. Раз модель сама выбирает действия, она может выбрать не то — и если инструмент что-то меняет (удаляет, платит, пишет клиенту), ошибка дорого стоит. Опасные действия закрывают подтверждением человека или дают агенту только безопасные инструменты.
- накопление ошибок. На длинной цепочке шагов маленькая ошибка в начале тянет за собой неверные следующие шаги. Чем длиннее автономный цикл, тем выше риск уйти не туда.
Отсюда практика: агенту ставят ограничители (guardrails) — лимит шагов и бюджета, белый список безопасных инструментов, подтверждение на необратимые действия, проверку результата на выходе. Автономность без ограничителей — это не гибкость, а мина.
Когда агент оправдан
Соблазн сделать «агента на всё» велик, но чаще он избыточен. Ориентир:
- не нужен агент, если поток известен заранее — тогда надёжнее и дешевле явная цепочка фиксированных шагов;
- нужен агент, если задача требует переменного числа шагов и решений на ходу, которые нельзя расписать заранее: разобраться в незнакомой ситуации, собрать ответ из нескольких источников по обстоятельствам.
Правило: начинайте с самого простого, что решает задачу — один вызов, потом фиксированная цепочка, и только если и этого мало — агент. Агент — не признак продвинутости, а инструмент под конкретный класс задач, за который платят предсказуемостью.
Где это применяется
Агентные приложения уместны там, где путь к ответу заранее не известен: ассистент, который сам решает, в какие данные заглянуть; разбор сложного обращения через несколько систем; автоматизация, где шаги зависят от промежуточных результатов. Тот же принцип «модель в цикле с инструментами» лежит и в основе AI-агентов для разработки, которыми вы пишете код, — только там инструменты про файлы и терминал.
Коротко
- Агент — модель в цикле «рассуждение → действие → наблюдение», которая сама выбирает, какие инструменты вызвать; в отличие от одного вызова, поток задаёт модель, а не вы.
- Без инструментов агент бесполезен; их набор и качество описаний определяют, справится ли он.
- Автономность требует ограничителей: лимит шагов и бюджета, безопасные инструменты, подтверждение необратимых действий, проверка результата — иначе зацикливание, расходы и риск.
- Не делайте агента по умолчанию: один вызов → фиксированная цепочка → и только при переменном числе шагов — агент.
Это последняя статья куста про создание LLM-приложений. Вместе с основами LLM-фичи, LangChain, RAG и векторными базами у вас есть карта того, как встроить AI в собственный продукт — а не только использовать его для разработки.