Агенты
Лечим эйай
Если бы меня попросили выделить одно ключевое отличие агентов от всего того, что было ранее - я бы назвал слово декомпозиция. Молодец, Илья, чего? Сейчас объясню.
Давайте поймем, почему появление чего-то подобного было необходимым.
Рассмотрим различные запросы в LLM.
"Напиши мне доклад на тему ИИ в медицине".
Не дискутируя сейчас о качестве, мы знаем, что на выходе мы получим доклад на тему ИИ в медицине. Это функционал базового чат-бота.
"Какая погода сейчас в Москве?"
Даже если засунуть в гипотетическую модель все исторические знания о мире - она не сможет дать ответ без подключения сторонних источников информации - например выхода в интернет. Значит, для решения подобной задачи мы (уже как разработчик) должны нарисовать более сложный граф выполнения задачи, с использованием дополнительных инструментов: получи вопрос - сходи в интернет - сформируй ответ. Тут место для рекламы моего поста про RAG. Здесь мы сталкиваемся с двумя сущностями Workflow и Tool. Workflow - путь, который разработчик продумывает заранее, прохождение которого приведет к решению поставленной задачи. Если вы запускаете 100 LLM подряд - это все еще не обязательно агент. Tool - инструменты, которые можно использовать при выполнении задачи:
- выход в интернет
- калькулятор
- запуск кода
и прочее.
А теперь представьте, что задачи многосоставные и сложные, что они из раза в раз меняются и количество if-else комбинаций начинает стремиться к бесконечности и сложность проектирования сценариев становится непосильной задачей. И вот тут мы возвращаемся к слову "декомпозиция". Workflow это декомпозированная задача, спроектированный путь, пройдя который, можно прийти к ее решению. И всегда создание этого пути было задачей разработчика любой системы.
Основная фишка ИИ-агентов, что они формируют этот workflow самостоятельно, используя доступные им инструменты. А теперь подробнее о том, как это работает.

Агенты на основе LLM состоят из четырех основных компонентов.
1. Планирование:
Это стадия выстраивания того самого workflow. Изначально выбранный путь может динамически изменяться в зависимости от поступившей на очередном этапе информации.
2. Восприятие:
Способность воспринимать информацию из доступных инструментов. Это могут быть датчики, картинки, текст и тд.
3. Память:
Последовательность взаимодействий агента со средой оставляет артефакты - накопленный объем знаний. Если вы сделали 50% задачи, вы не должны ее делать с нуля, вы должны понимать какой путь уже был пройден, а какой еще предстоит. Поэтому у агентов реализован механизм памяти.
Как и везде, память делится на долговременную и оперативную. Под долговременной подразумевается та база знаний, к которой имеется доступ, а оперативная - те знания, которые были приобретены в ходе решения текущей задачи (контекст).
4. Действие:
Способность взаимодействовать со средой с помощью инструментов. Каждый шаг в рамках установленного плана - это некое действие. Список возможностей заранее известен.
Как работает агент на базе LLM:
получить задачу - придумать план реализации - обратиться к инструментам - обработать результат
и так по кругу. Задача изначально - это запрос пользователя, далее это подзадачи, придуманные агентом в рамках следования плана. Процесс заканчивается, когда обработка результата, по мнению системы, отвечает на запрос пользователя, или система принимает решение, что не выйдет решить задачу.
Дополнительные факты:
- Инструментом может быть взаимодействие с человеком, можно задать ему уточняющие вопросы.
- Мультиагентная система, это система с более чем одним агентом, каждый из которых, решая свои специализированные задачи, решают финальную задачу.
- Мультиагентная система может быть как коллаборативная, так и состязательная.
- Чтобы заставить LLM работать как агента можно начать просто с правильного промпта, описав ему список ее возможностей. То есть это не какие-то отдельные специальные модели.
О чем придется думать:
- Реализуемость задачи: хватает ли предоставляемых инструментов для решения возможных запросов.
- Безопасность: при предоставлении агенту доступа к конфиденциальным данным появляется риск поделиться ими не с тем, с кем можно.
- Детерминированность: никто не обещает исходно, что агент не зациклится и не будет бродить по одним и тем же дорожкам, не решая задачу.
- Время выполнения: безусловно, подобные системы могут обрабатывать запрос неограниченное количество времени, выбирая не оптимальный путь, например. Это в целом связано с предыдущим пунктом.
- Сложность отладки: reasoning, безусловно, помогает понять, почему был выбран тот или иной шаг, но все еще можно отловить непредсказуемое поведение.
- Ресурсы: большое количество запросов к инструментам и LLM, это надо принять.
Важно помнить, что агенты во многих задачах могут являться излишне сложной системой, большинство процессов могут быть автоматизированы и решены вполне конкретным, заранее продуманным, workflow, по-старинке. Но появление агентов - это первые реальные шаги в сторону автономных систем, не привлекающие человека к ответу на то, как решать поставленную задачу.
Интересные ссылки:
https://github.com/bowang-lab/MedRAX - агент для медицины. Авторы собрали популярные opensource решения для РГ и собрали комплексное решение.
https://github.com/google/adk-python - Google прямо только что релизнули крутую библиотеку для создания агентов.
https://www.youtube.com/watch?v=JOYSDqJdiro - YC хайпят с Manus - general агент из поднебесной.
https://github.com/xinzhel/LLM-Agent-Survey - git с кучей инфы про агентов.
А еще ИИ-агенты сейчас сильно меняют крипторынок, погуглите, это большой тренд.