В этой статье я приведу некоторые доводы в пользу того, что при разработке LLM удобно прибегать к помощи интеллектуальных агентов (ИИ-агентов). Так удаётся переходить к решению всё более сложных задач. Под катом много интересного!
Год 2024 оказался очень плодотворным в области создания ИИ-агентов. Например, мы наблюдали всплеск популярности многих опенсорсных проектов, сконцентрированных на разработке ИИ-агентов. Для примера: LangChain выпустили LangGraph и LangGraph Cloud. При этом CrewAI также на всех парах рвётся вперёд, развивая свой продукт CrewAI Plus.
Многие стартапы (например, Wordware, Lyndi и др.), нативно использующие ИИ-агенты в рамках своих продуктов, смогли неоднократно привлечь серьёзное финансирование, позволяющее продолжать разработку потрясающих приложений, которые могут положить начало целым отраслям.
Считаю, что на фоне всего этого воодушевления важно отвлечься от окружающего шума, сделать пару шагов назад и попытаться ответить на важные вопросы, касающиеся ИИ-агентов. Именно для этого я написал эту статью.
Сначала я объясню, что представляют собой ИИ-агенты. Затем мы обсудим, в чём ключевая роль ИИ-агентов и каким образом они позволяют гораздо полнее использовать LLM. Наконец, мы кратко затронем, как именно реализуются ИИ-агенты.
Что такое ИИ-агент?
Чтобы дать дефиницию ИИ-агенту, нужно сначала определиться с тем, что представляет собой «агентная система». Начнём со второго и таким образом выйдем на определение первого.
Агентные системы — это программные архитектуры, в которых для решения сложных задач используются множества ИИ-агентов. Исходно эти задачи обычно разбивают на подзадачи, для этого этапа в агентных системах предусмотрен модуль планирования (Planning). Затем ИИ-агенты работают сообща, и каждый выполняет те задачи, которые ему выделены. Сама система отслеживает прогресс по всем этим задачам, определяет, должны ли быть решены дополнительные задачи, решает, на каком этапе можно считать, что исходная задача решена.
ИИ-агенты — это ключевые составляющие агентной системы. Существует множество определений, характеризующих ИИ-агент, но я всё-таки попробую добавить к ним моё собственное.
Я считаю, что ИИ-агент — это большая языковая модель, которой было поручено некое действие. Это значит, что данная большая языковая модель наделена ролью, ей предоставлены чёткие инструкции, дана история проблемы и сформулированы цели. В данном случае цели — это те задачи, которые должен решить агент. Если данные задачи будут решены в контексте агентной системы, то это поспособствует достижению глобальной цели.
Зачем нужны ИИ-агенты?
Чтобы ответить на этот справедливый вопрос, я пойду от противного и задамся следующим вопросом: почему бы всегда не пользоваться одной-единственной LLM, например, ChatGPT?” При решении определённых задач оказывается, что отдельно взятого инстанса LLM недостаточно, когда приходится решать некоторые специфические задачи.
Слабые стороны одиночных неагентных LLM-систем
Первая проблема связана с ограниченной шириной контекстного окна, которое может предоставить вам одиночная LLM. Согласен, уже есть такие LLM как Gemini, ширина контекстного окна в которых превышает миллион токенов, но у большинства других провайдеров ширина контекстного окна составляет всего 100-200 тысяч токенов. Из-за такого ограничения нам может просто не хватить токенов при решении некоторых особенно сложных задач, предполагающих интенсивную и обширную переписку с LLM а чате.
Кроме того, при активном использовании входных токенов производительность LLM в рамках конкретного раунда обмена информацией. Из-за снижения производительности может увеличиваться время отклика от конкретного API LLM, либо большая языковая модель может возвращать некорректную информацию, так как возрастает вероятность, что модель начнёт галлюцинировать. Притом, что подобное может происходить как в многоагентных конфигурациях, так и при общении с одиночной LLM, вы, вероятно, используете при общении с единственной LLM больше токенов, чем при работе с многоагентной системой, поскольку в последнем случае задачи решаются по распределённому принципу.
Другой вопиющий недостаток работы с LLM в единственном экземпляре — это недостаток специализации ИИ при решении задачи. Специализация важна, поскольку позволяет задействовать для решения конкретной задачи ту LLM или тот агент, которые для этого лучше всего подходят. На мой взгляд, чтобы добиться специализации, можно либо использовать в качестве базы иную модель — от того же провайдера или от другого — такую, которая оптимизирована именно для решения поставленной перед вами задачи. Есть и более простой способ добиться специализации, для этого требуется более тонкая настройка промптов (поступающих как от пользователя, так и от системы) на этапе конфигурирования агента.
Наконец, можно попробовать воспользоваться специализированными инструментами (такая практика также называется «вызов функции»). Эта ключевая возможность отсутствует в онлайновых интерфейсах для чата с LLM, таких как Claude или ChatGPT. При помощи специализированных инструментов агенты могут перейти от чистой генерации текста к выполнению конкретных действий. Точнее, инструменты расширяют возможности отдельно взятой LLM, и она начинает выполнять вызовы к API, читать и записывать файлы, искать информацию в Интернете и делать многое другое. Некоторые задачи просто невозможно решить, если LLM не располагает доступом к таким инструментам.
Если не считать чистого интеллекта модели, то именно от инструментов зависит, насколько мощным и умелым реально окажется ИИ-агент. Даже самая «умная» модель будет обладать весьма ограниченными возможностями, если у неё не будет доступа к инструментам, нужным для работы.
Аналогии из реального мира
Для ответа на вопрос «Зачем нужны ИИ-агенты» попробуйте спросить себя, почему в компаниях работа специализируется по ролям. Например, в IT-компании есть разработчики, дизайнеры, продакт-менеджеры, маркетологи, продажники? Почему бы одному человеку не выполнять все эти функции? Что ж, возможно, такие уникумы и существуют… но это большая редкость.
Пример из ChatDev – многоагентной ИИ-системы, которая сама программирует приложения
В большинстве случаев ни один индивид не мог бы справиться с такой нагрузкой и сочетать при работе так много разных функций. Здесь можно провести интересную параллель с работой отдельно взятой LLM, контекстное окно которой насыщается за счёт одновременного решения множества задач, для каждой из которых требуются разные функции.
Более того, ни один отдельный человек не может обладать такими глубокими знаниями и таким совокупным опытом из множества дисциплин (например, инженерия, дизайн, продажи, маркетинг, т.д.). Иными словами, каждый человек более уверенно чувствует себя в одной предметной области и менее уверенно — во всех остальных. Это результат специализации. Это нормально. Компания должна подобрать лучших для выполнения каждой из этих функций, чтобы максимизировать шансы на успех. Так и при решении сложных задач комбинирование агентов повышает наши шансы успешно справиться со всеми задачами.
Ограничения ИИ-агентов
Несмотря на все эти достоинства, ИИ-агенты — далеко не панацея. Некоторые аспекты этих проблем рассмотрены в статьях More Speed is what AI Agents Need и AI Agents Software 2.0. Кроме того, ИИ-агенты пока не слишком закрепились в больших корпорациях из-за целого ряда проблем.
Во-первых, пока ИИ-агенты недостаточно надёжны, чтобы можно было поручать им критически важные задачи. Например, в больших компаниях требуется обеспечивать надёжность программных продуктов на уровне ~99,9%. Агенты не всегда хорошо справляются со своими задачами. Иногда они катастрофически или незаметно отказывают.
Такая недостаточная надёжность связана с тем, что агент отличается непредсказуемым поведением. Агент, в отличие от традиционной программы, действует недетерминировано. Таким образом, обычно не так легко определить, по какому пути пойдёт выполнение программы, и, соответственно, подобрать наборы тестов для её адекватной проверки. Например, при мельчайших изменениях во входных данных или в гиперпараметрах (скажем, в настройках температуры) вывод может значительно измениться. Фреймворки для оценки результатов агентных систем пока только начинают развиваться. Кроме того, сейчас совсем мало специалистов, обладающих солидным опытом в формулировке надёжных оценок работы LLM. Большинство занятых в этой сфере — начинающие.
Высокая задержка — ещё одна большая проблема, актуальная в настоящее время для ИИ-агентов. При работе с традиционными программами пользователь воспринимает любую задержку сверх 100 миллисекунд как притормаживание программы. А на вызов LLM при работе с агентами может уходить 30 секунд и более. Из-за такого замедления ожидания пользователей серьёзно не соответствуют фактической производительности.
Соответственно, работать с моделью становится неудобнее, если в ней применяются агентные потоки задач, и всё дело в значительной задержке. Конечный пользователь хочет быструю программу; в этой области сложились очень высокие стандарты. Но большинство современных приложений, зависящих от вклада ИИ-агентов, работают слишком медленно. Популярность таких приложений можно было бы повысить, реализовав в них асинхронные потоки задач — например, уведомлять пользователя по электронной почте, когда ИИ-агенты справятся с тем, что им было поручено.
Есть и много других проблем, возникающих при использовании ИИ-агентов (и LLM вообще). Они связаны, например, с конфиденциальностью данных и безопасностью приложений. Промпт-инжиниринг — ещё одна мутная дисциплина. Многие до сих пор считают её тёмным искусством, просто потому, что это в большей степени искусство, чем точная наука. В промпт-инжиниринге не хватает точности, к которой так привыкли инженеры.
При промпт-инжиниринге много приходится работать методом проб и ошибок. Это итеративный процесс, и на каждой его стадии требуется вносить улучшения. Кроме того, иногда модели отказываются работать по предоставленным схемам (например, не понимают неаккуратный JSON), изобретают структуры данных и используют неровное форматирование. В общем, промт-инжиниринг — незрелая дисциплина, чреватая ошибками.
Учитывая даже часть этих ограничений, понятно, почему многие компании — в первую очередь, крупные — не склонны полноценно переходить к работе с ИИ-агентами, особенно доверять им критически важные бизнес-операции.
Заключение
ИИ-агенты — захватывающая новая парадигма, в которой уже существующие большие языковые модели используются для высокопроизводительного решения сложных задач. В отличие от таких систем, где применяется всего одна LLM, в многоагентных системах удаётся избегать проблем, связанных с ограниченной длиной контекстного окна и со снижением производительности, наблюдаемом при сильном заполнении контекстного окна токенами.
Кроме того, в агентных системах можно задействовать более специализированные модели, поэтому они лучше подходят для решения разнообразных задач, с какими не справилась бы одиночная LLM (например, ChatGPT). Наконец, настоящая вишенка на торте — это инструменты для многоагентных систем, благодаря которых их возможности расширяются. Многоагентные системы могут вызывать API и выполнять массу других действий, а не только формулировать ответы в виде текста.
Но и при работе с ИИ-агентами возникает свой набор проблем. Притом, что базовые модели постоянно улучшаются, и арсенал инструментов в этой области продолжает расширяться, во многих практических приложениях ИИ-агенты по-прежнему остаются ненадёжными. Ещё одна проблема многоагентных систем — задержка при работе. На обработку одного вызова агент может тратить много секунд и даже несколько минут, из-за чего работать с ним бывает неудобно.
Тестировать агентные системы также очень сложно, поскольку они работают недетерминировано. Пока все увлечены генеративным искусственным интеллектом и ИИ-агентами, но большие компании по-прежнему настороженно относятся к этой новой технологии, так как стремятся к высокой надёжности, уменьшению задержек и защите конфиденциальности данных, о чём мы кратко поговорили в этом посте.
Пока мы ещё в самом начале этой технологической волны, и я уверен, что перечисленные препятствия постепенно будут устранены, а ИИ-агенты повсеместно распространятся в мире бизнеса.
P.S. Обращаем ваше внимание на то, что у нас на сайте проходит распродажа.
Автор: ph_piter