OpenAgents Открытая платформа для языковых агентов в дикой природе
OpenAgents Открытая платформа для языковых агентов в дикой природе
Недавние разработки показывают, что языковые агенты, особенно те, которые созданы на основе больших языковых моделей (LLM), имеют потенциал для выполнения широкого спектра сложных задач в разных средах с использованием естественного языка. Однако основное внимание большинства существующих языковых агентов в настоящее время уделяется облегчению создания агентов для демонстрации концепции. Это внимание часто не сопровождается разработкой применений и игнорированием доступности этих агентов для неопытных пользователей.
Для преодоления текущих ограничений, с которыми сталкиваются языковые агенты, разработчики создали фреймворк OpenAgents – открытую платформу для хостинга и развёртывания языковых агентов в различных задачах повседневности. Фреймворк OpenAgents построен вокруг трех агентов:
- Агент данных: Помогает с анализом данных с использованием инструментов для работы с данными, таких как SQL или языки программирования, такие как Python.
- Агенты плагинов: Предоставляет доступ к более чем 200 API-инструментам, полезным для ежедневных задач.
- Агенты веба: Помогает в просмотре веба, сохраняя вашу анонимность.
Фреймворк OpenAgents использует оптимизированный для общих сбоев и быстрых ответов веб-интерфейс, предназначенный для взаимодействия обычных пользователей с функциональностью агента, предлагая при этом исследователям и разработчикам безпроблемный опыт развертывания на их локальных настройках. Можно сказать, что фреймворк OpenAgents является попыткой предоставить прочную основу для проведения оценок в реальных условиях и создания инновационных, эффективных и продвинутых языковых агентов.
В сегодняшней статье мы рассмотрим фреймворк OpenAgents более подробно. Мы расскажем о его работе и архитектуре, а также обсудим распространенные проблемы и результаты. Итак, приступим к изучению.
- Познакомьтесь с Mustango системой конвертации текста в музыку, основанной на диффузии и вдохновленной музыкальным доменным знанием, которая расширяет модель танго перевода текста в аудио.
- Знакомьтесь с ECOGEN новейшим подходом глубокого обучения, разработанным для генерации реалистичных песен птиц для биологов и экологов.
- The new Layout feature of Amazon Textract introduces efficiencies in general purpose and generative AI document processing tasks
OpenAgents и языковые агенты: введение
Языковые агенты по своей сути являются продолжением интеллектуальных агентов. Их концепция основана на наличии автономных возможностей решения проблем, а также на способности ощущать окружающую среду, принимать решения и действовать в соответствии с ними. Благодаря развитию больших языковых моделей, глобальное развитие сообщества смогло использовать концепцию интеллектуальных агентов и LLM для создания языковых агентов. Эти агенты используют естественный язык программирования (NLP) для выполнения широкого спектра сложных задач в разных средах и недавно проявили замечательный потенциал.
Текущие фреймворки языковых агентов, такие как Gravitas и Chase, в основном предоставляют консольный интерфейс, нацеленный на разработчиков, а также реализации концепции. Однако они ограничивают доступ к широкой аудитории, особенно тем, кто не владеет программированием. Кроме того, существующие бенчмарки агентов создаются разработчиками с определенными требованиями для детерминированной оценки, особенно в ситуациях, требующих просмотра веб-страниц, программирования, использования инструментов или их комбинации.
В попытке разработать интеллектуальных и языковых агентов, основанных на LLM, для более широкой пользовательской базы, крупные игроки, такие как OpenAI и Microsoft, разработали ряд хорошо продуманных продуктов, включая Advanced Data Analysis, также известный как Code Interpreter, и плагины для браузера. Хотя эти агенты эффективны в своих функциях, они оказывают ограниченную помощь разработчикам. Это ограничение связано с тем, что код бизнес-логики и реализации модели не являются открытыми исходными кодами, что затрудняет возможности для их дальнейшего изучения разработчиками и исследователями, а также ограничивает бесплатный доступ для пользователей.
В попытке решить эту проблему разработчики предложили фреймворк OpenAgents, открытую платформу для хостинга и использования агентов, который в настоящее время строится на основе трех внутренних агентов:
- Агент данных: Помогает с анализом данных с использованием инструментов для работы с данными, таких как SQL или языки программирования, такие как Python.
- Агенты плагинов: Предоставляет доступ к более чем 200 API-инструментам, полезным для ежедневных задач.
- Агенты веба: Помогает в просмотре веба, сохраняя вашу анонимность.
На следующей фигуре показана платформа OpenAgents для общих пользователей, разработчиков и исследователей.
- Вместо использования пакета или консоли, ориентированной на программистов, обычные пользователи могут взаимодействовать с тремя агентами в фреймворке OpenAgents с помощью онлайн-веб-интерфейса.
- Разработчики могут использовать бизнес-логику и исследовательские коды, предоставленные фреймворком OpenAgents, для безпроблемного развертывания бэкенда и фронтенда для дальнейшей разработки.
- Исследователям предоставляется гибкость создания новых языковых агентов с нуля или реализации методов, связанных с агентами, с использованием общих компонентов и примеров, и оценки их производительности с использованием веб-интерфейса.
Вкратце, фреймворк OpenAgents изначально предназначен быть голистичной и реалистичной платформой для оценки агентов обработки языка с участием человека, которая позволяет пользователям взаимодействовать с этими агентами для выполнения широкого спектра задач, и эти взаимодействия с человеком-агентом вместе с отзывами пользователя сохраняются и анализируются для дальнейшего развития и оценки.
Для тех, кто не знает, процесс LLM prompting позволяет разработчикам создавать инструкции, которые защищают от антагонистических или неправильных входных данных, улучшают внешний вид вывода и соответствуют внутренней логике. Во время разработки разработчики, работающие над фреймворком OpenAgents, используют метод LLM prompting для подчеркивания важности эффективной спецификации требований к приложению. Однако разработчики вскоре обнаружили, что скопление этих инструкций или промптов LLM может быть значительным, что может повлиять на способности последующей обработки контекста фреймворками LLM и ограничения по токенам. Разработчики также обнаружили, что для эффективного развертывания этих агентов в реальном мире модели агентов должны не только проявлять исключительную производительность, но и способны решать широкий спектр интерактивных сценариев в реальном времени. Хотя текущие агентские фреймворки имеют высокую производительность, они часто игнорируют реальные соображения, особенно в режиме реального времени, что часто затмевает истинный потенциал фреймворков LLM за счет реактивности или точности.
На следующей фигуре мы сравниваем фреймворк OpenAgents непосредственно с существующими работами на фигурных на бенчмарках о концепции агента и создании прототипов.
OpenAgents: Дизайн и реализация платформы
Систематический дизайн или архитектура платформы OpenAgents можно разделить на две основные компоненты: пользовательский интерфейс, включающий как бэкенд, так и фронтенд, и языковой агент, включающий инструменты, языковые модели и окружения. Фреймворк OpenAgents предоставляет интерфейс для коммуникации между пользователями и агентами. Поток взаимодействия в фреймворке выглядит следующим образом.
Агенты используют имеющиеся у них инструменты для планирования и выполнения необходимых действий в окружениях после получения входных данных от пользователей. Архитектура или систематический дизайн фреймворка демонстрируется на следующем изображении.
Пользовательский интерфейс
Разработчики фреймворка OpenAgents вложили много мыслей и усилий в разработку не только высокофункционального, но и удобного пользовательского интерфейса после работы с множеством агентов и повторно используемой бизнес-логикой. В результате фреймворк OpenAgents может похвастаться поддержкой широкого спектра технических задач, включая обработку ошибок, работу сервера, поток данных и многое другое, применяя принцип, чтобы сделать фреймворк OpenAgents дружелюбным для пользователя, но в то же время высокоэффективным и применимым.
Языковой агент
В рамках фреймворка OpenAgents языковой агент имеет три основных компонента: интерфейс инструментов, языковую модель и само окружение. Метод промптинга, реализованный в фреймворке OpenAgents, создает последовательный процесс, который следует агентам, начиная с наблюдения -> обдумывания -> действия. Фреймворк также подсказывает LLM генерировать разборчивый текст с улучшенной эффективностью, и интерфейс инструментов состоит из парсеров, которые могут преобразовывать эти разборчивые тексты, созданные LLM, в исполняемые действия, например, совершение вызовов API или генерация кода. Эти действия затем выполняются фреймворком в рамках соответствующего окружения.
Агенты OpenAgents
В основе OpenAgents находятся три отдельных агента: Data Agent, который помогает с анализом данных с использованием инструментов для работы с данными и языками запросов, таких как SQL или языки программирования, такие как Python, Plugin Agents, которые помогают, предоставляя доступ к более чем 200+ инструментам API, полезным для повседневных задач, и Web Agents, которые помогают в просмотре веб-страниц, сохраняя при этом вашу анонимность. Эти агенты обладают отдельной областью экспертизы, аналогичной плагинам ChatGPT, однако, в отличие от ChatGPT, реализация в OpenAgents основана исключительно на открытом языковом интерфейсе приложений или API.
Агент данных
Агент данных в рамках фреймворка OpenAgents разработан и развернут таким образом, чтобы справляться с широким спектром задач, связанных с данными, с которыми пользователи сталкиваются на регулярной основе. Агенты данных поддерживают генерацию и выполнение кода на двух языках программирования, а именно SQL и Python, и у агента также есть несколько инструментов для работы с данными в его распоряжении, включая Профилирование данных для предоставления основной информации о данных, поиск данных в Kaggle и инструмент ECharts для построения интерактивных графиков ECharts. Кроме того, фреймворк OpenAgents стимулирует агента данных использовать эти инструменты проактивно для эффективного отклика на запросы пользователей. Кроме того, имея исчерпывающие требования к кодированию, фреймворк OpenAgents использует встроенные языковые модели для агента данных, и вместо того, чтобы агент генерировал код, это инструменты, такие как Python, ECharts и SQL, генерируют код. С таким подходом фреймворк полностью использует возможности программирования языковых моделей и тем самым снижает нагрузку на агента данных.
С помощью этих инструментов данных агент данных способен эффективно управлять многочисленными запросами, связанными с данными, и производить визуализацию данных, их обработку и запросы, превосходя при этом границы генерации кода и текста. Ниже представлена схема действий агента данных и инструментов, доступных обычным пользователям.
Агент плагинов
Агент плагинов в рамках фреймворка OpenAgents разработан разработчиками тщательно, чтобы удовлетворить многосторонние требования пользователей в повседневных задачах, включая поиск в интернете, онлайн-шопинг, чтение новостей или создание веб-сайтов и приложений, предоставляя доступ к более чем 200 плагинам, особое внимание уделяется интерфейсу вызова функций, API-запросам и длине ответов API. Некоторые из примечательных плагинов включают:
- Поиск в Google
- Wolfram Alpha
- Zapier
- Klarna
- Coursera
- Show Me
- Speak
- AskYourPDF
- BizTok
- Klook
На основе своих потребностей пользователи могут выбирать количество плагинов, которые они хотят использовать для агентов плагинов, и работа демонстрируется на рисунке ниже.
Кроме того, чтобы помочь пользователям в ситуациях, когда они не уверены, какой плагин лучше всего подойдет для их требований, фреймворк OpenAgents предлагает пользователям функцию, которая автоматически выбирает наиболее подходящие плагины для их инструкций.
Веб-агенты
Фреймворк OpenAgents представляет веб-агента как специализированный инструмент, нацеленный на повышение эффективности и возможностей чат-агента. Хотя чат-агент всё ещё является основным интерфейсом взаимодействия, он безупречно интегрирует веб-агента, когда это необходимо. Окончательный ответ затем передается конечному пользователю веб-агентом, и процесс иллюстрируется на рисунке ниже.
Стратегия дизайна, реализованная в этих веб-агентах, является большой пользой, поскольку чат-агент обрабатывает важные параметры или инициирует URL-адреса систематически перед их передачей веб-агенту, что обеспечивает лучшее соответствие между требованиями пользователя и создаваемым выводом, что в итоге приводит к ясной коммуникации. Более того, такая стратегия позволяет веб-агентам адаптироваться к сложным запросам пользователей, используя динамическую многоходовую навигацию и диалоги в чате. Таким образом, отделяя роли и ответственности чат- и многообзорных агентов четко, фреймворк OpenAgents открывает путь к совершенствованию и эволюции каждого отдельного модуля.
OpenAgents: Практические применения и внедрение в реальный мир
В этом разделе мы будем говорить о траектории фреймворка OpenAgents от теоретической разработки до внедрения в реальный мир, а также о проблемах, с которыми столкнулись разработчики, и о сложностях оценки, с которыми они столкнулись.
Использование подсказок для преобразования больших языковых моделей в реальные приложения
При использовании инструкций LLM для создания приложений для конечных пользователей OpenAgents framework использует инструкции для указания определенных требований. Цель некоторых инструкций – обеспечить соответствие вывода определенному формату, позволяя тем самым обратной логике обрабатывать его, в то время как цель других инструкций – улучшить эстетическое воздействие вывода, а остальные защищают фреймворк от потенциальных вредоносных атак.
Неуправляемые факторы реального мира
Когда разработчики развертывали фреймворк OpenAgents в реальном мире, они столкнулись с множеством неуправляемых факторов реального мира, вызванных интернет-инфраструктурой, пользователями, бизнес-логикой и т. д. Эти неуправляемые факторы заставили разработчиков переоценить и изменить некоторые предположения на основе предыдущих исследований, и они могут привести к ситуациям, когда конечные пользователи могут быть не удовлетворены ответом, который генерирует фреймворк.
Сложность оценки
Хотя конструируемые агенты, направленные непосредственно на приложения, могут иметь более широкое применение и облегчить оценку, это добавляет сложности в создании приложений, работающих на основе LLM, что делает анализ производительности приложений сложным. Более того, такой подход также добавляет нестабильность и увеличивает цепь системы LLM, что затрудняет адаптацию фреймворка к разным компонентам. Поэтому имеет смысл уточнить системный дизайн и логику работы этих агентов, упростить процедуры и обеспечить эффективный вывод.
Финальные мысли
В этой статье мы рассказали о фреймворке OpenAgents, открытой платформе для хостинга и развертывания языковых агентов на различных повседневных задачах. Фреймворк OpenAgents построен вокруг трех агентов: Data Agent, помогающего с анализом данных с использованием инструментов для работы с данными, таких как SQL или языки программирования, такие как Python, Plugin Agents, обеспечивающего доступ к более чем 200 инструментам API, полезным для ежедневных задач, и Web Agents, помогающего в просмотре веб-страниц, сохраняя анонимность. Фреймворк OpenAgents использует веб-интерфейс, оптимизированный для обработки ошибок и быстрых ответов, чтобы позволить обычным пользователям взаимодействовать с функциями агента, а также предлагает исследователям и разработчикам плавный опыт развертывания на их локальных настройках. Предоставляя прозрачную, всестороннюю и развертываемую платформу, OpenAgents стремится сделать потенциал LLM доступным для широкого круга пользователей, не ограничиваясь исследователями и разработчиками, но также охватывая конечных пользователей с ограниченными техническими навыками.