Внутри AGENTS Новая открытая платформа для создания полуавтономных агентов LLM

AGENTS - новая платформа для создания полуавтономных агентов LLM

Фреймворк основан на серьезных исследованиях из Университета Чжэцзян и ETH Цюрих.

Недавно я начал AI-ориентированный образовательный рассылку, которая уже имеет более 160 000 подписчиков. TheSequence – это рассылка, ориентированная на машинное обучение, без воды (без пиара, без новостей и т.д.), на чтение которой требуется 5 минут. Цель состоит в том, чтобы быть в курсе проектов машинного обучения, научных статей и концепций. Попробуйте, подписавшись ниже:

TheSequence | Jesus Rodriguez | Substack

Лучший источник для быть в курсе разработок в области машинного обучения, искусственного интеллекта и данных…

thesequence.substack.com

Автономные агенты – одна из самых популярных тем в экосистеме моделей основы. В ранних итерациях проектов, таких как AutoGPT или BabyAGI, разработчики начали представлять возможности автономного решения задач с использованием моделей большого языка. Многие исследователи считают автономных агентов одной из следующих фронтальных линий в основных моделях. Однако, определение того, что является агентом, сегодня очень условно. Недавно исследователи из AIWaves Чжэцзянского университета и ETH Цюрих опубликовали статью, в которой описывается фреймворк AGENTS для создания агентов на основе LLM.

Основная идея, лежащая в основе AGENTS, заключается в расширении этой концепции за пределы научных кругов и на более широкую аудиторию. AGENTS старается объединить важные строительные блоки, такие как планирование, память, использование инструментов, коммуникация между агентами и символьное управление под единой программной моделью. В статье сопровождается подробная информация об открытом исходном коде, который довольно прост в использовании.

Давайте приступим:

Принципы AGENTS

Фреймворк AGENTS выделяется как платформа с открытым исходным кодом, разработанная специально для языковых агентов, работающих на основе LLM. Его главной задачей является упрощение процесса настройки, развертывания и настройки языковых агентов.

Изображение: Статья AGENTS

Разработанный с учетом удобства использования для начинающих, AGENTS основан на ряде основных принципов:

1. Долговременная и кратковременная память: AGENTS признает важность памяти в автономных агентах. В то время как обычные модели машинного обучения реагируют на отдельные входы, автономные агенты непрерывно взаимодействуют с окружением или другими агентами. Чтобы решить эту проблему, AGENTS включает компоненты памяти, о которых уже упоминалось. Он обладает возможностями, такими как сохранение долговременной памяти с использованием VectorDB, возможность проведения семантических поисков и обновление краткосрочной памяти с помощью отдельной заметочной книжки.

2. Использование инструментов и навигация по вебу: Языковые агенты часто должны выходить за рамки простого лингвистического взаимодействия. Они должны иметь возможность использовать внешние инструменты и исследовать Интернет. AGENTS предоставляет интеграцию с популярными внешними API и адаптируемый класс для добавления дополнительных инструментов. Он также предоставляет возможность агентам искать и просматривать веб-сайты через специализированные интерфейсы API.

3. Коммуникация между агентами: AGENTS не ограничивается возможностями отдельных агентов. Он затрагивает область многокомпонентных систем, полезных для различных областей, таких как игры, социальные эксперименты и разработка программного обеспечения. Инновационной особенностью в этой области является подход “динамического планирования”. Вместо использования статических правил для действий агентов, AGENTS позволяет контролирующему агенту – “модератору” – решать последующие действия агентов, учитывая их роли и предыдущие действия.

4. Взаимодействие человек-агент: Одним из недостатков многих фреймворков агентов является их ограниченный объем взаимодействия с людьми, особенно в многокомпонентных средах. AGENTS легко преодолевает эту проблему. Он активно поддерживает взаимодействие между людьми и агентами, независимо от того, является ли это единичной или многокомпонентной средой.

5. Управляемость: Обычные фреймворки часто ограничивают поведение агентов системными подсказками. AGENTS вводит концепцию стандартных операционных процедур (SOP). Эти SOP, подобные реальным приложениям, представляют собой подробные пошаговые инструкции, определяющие задачи и действия агента. Такие подробные планы могут быть созданы LLM и впоследствии изменены пользователями.

Это довольно много концепций! Однако первоначальная реализация AGENTS делает построение интеллектуальных агентов, использующих эти возможности, довольно простым.

Программирование с помощью AGENTS

Фреймворк AGENTS изящно структурируется вокруг трех основных классов: Agent, SOP (Standard Operating Procedure) и Environment. Эти классы удобно инициализируются через файл конфигурации, созданный в простом текстовом формате. Давайте подробнее рассмотрим архитектуру AGENTS и его основу для программирования.

  1. Класс Agent: Служащий сущностью фреймворка AGENTS, класс Agent инкапсулирует функции и поведение языкового агента. Как изображено на диаграмме UML на рисунке 1, агент управляет своей сложной долговременной и краткосрочной памятью. В этом классе методы позволяют агенту:
  • Взаимодействовать с окружающей средой (agent._observe(environment))
  • Принимать действия на основе текущего состояния (agent._act())
  • Обновлять данные в памяти (agent._update_memory()).

Для упрощения опыта вышеперечисленные функции интегрированы в метод agent.step().

  1. Класс SOP (Standard Operating Procedure): Этот класс рисует более широкую картину, описывая прогресс состояния агента. Каждое состояние в классе SOP соответствует определенной под-цели или под-задаче, которую агенты должны достичь. Каждое состояние, созданное в виде объекта класса ‘State’, содержит специализированные подсказки, помогающие агенту использовать возможности LLM. Кроме того, он предоставляет набор инструментов API, которые можно использовать внутри этого состояния.
  2. Класс Environment: Действуя как фон для агентов, этот класс представляет внешние условия, в которых агенты действуют. Класс в основном разделяется на два функциональных аспекта:
  • Функция environment._observed() иллюстрирует влияние окружения на действия агента, описывая передаваемую информацию при наблюдении.
  • Функция environment.update() определяет последствия действий агента на окружение.
def main ()# agents is a dict of one or multiple agents .agents = Agent . from_config ("./ config . json ")sop = SOP. from_config ("./ config . json ")environment = Environment . from_config ("./ config . json ")run (agents ,sop , environment )

Фреймворк AGENTS не только воплощает рассмотренные основные принципы, такие как интеграция инструментов и коммуникация между несколькими агентами, но также придает значение интерфейсу человек-агент. Заметим, что просто изменив атрибут “is_human” в файле конфигурации на “True”, AGENTS предлагает гибкость пользователю вступить в роль агента. Такая организация позволяет динамическое взаимодействие между пользователем и другими языковыми агентами в данной среде, все это через специальный интерфейс консоли.

Источник изображения: AGENTS Paper

Что касается развертывания, AGENTS поддерживает FastAPI в качестве предпочтительного пути. Кроме того, фреймворк достаточно гибок для работы как с индивидуальной, так и с множественной конфигурацией агентов.