Агенты

Агенты

Лечим эйай

Если бы меня попросили выделить одно ключевое отличие агентов от всего того, что было ранее - я бы назвал слово декомпозиция. Молодец, Илья, чего? Сейчас объясню.

Давайте поймем, почему появление чего-то подобного было необходимым.

Рассмотрим различные запросы в 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 с кучей инфы про агентов.

А еще ИИ-агенты сейчас сильно меняют крипторынок, погуглите, это большой тренд.

Report Page