Моделі та платформи ШІ

OpenAgents: Відкрита платформа для мовних агентів у дикій природі

mm
Додайте Unite.AI до бажаних джерел у Google

Нещодавні розробки продемонстрували, що мовні агенти, особливо ті, які побудовані на великих мовних моделях (LLM), мають потенціал виконувати широкий спектр складних завдань у різних середовищах за допомогою природної мови. Однак основна увага більшості мовних агентських фреймворків зараз зосереджена на забезпеченні конструкції прототипів мовних агентів. Ця увага часто супроводжується недостатньою увагою до проектних рішень на рівні застосунків і часто ігнорує доступність цих агентів для некваліфікованих користувачів.

Щоб подолати ці обмеження, розробники створили OpenAgents фреймворк, відкриту платформу для розміщення та розгортання мовних агентів у дикій природі та в різних повсякденних завданнях. OpenAgents фреймворк побудований навколо трьох агентів

  • Агент даних: Допомагає з аналізом даних за допомогою інструментів даних та запитів мов, таких як SQL, або мов програмування, таких як Python.
  • Агент плагінів: Допомагає, надавши доступ до понад 200+ інструментів API, корисних для повсякденних завдань.
  • Веб-агент: Допомагає у перегляді веб-сторінок, зберігаючи анонімність.

OpenAgents фреймворк використовує веб-інтерфейс користувача, оптимізований для загальних збоїв та швидких відповідей, щоб дозволити загальним користувачам взаємодіяти з функціональністю агентів, а також пропонує дослідникам та розробникам безперебійний досвід розгортання на їхніх локальних налаштуваннях. Безперечно, OpenAgents фреймворк є спробою надати солідну основу для забезпечення реальних оцінок та створення інноваційних, ефективних та просунутих мовних агентів.

У цій статті ми глибше розглянемо OpenAgents фреймворк та поговоримо про фреймворк у більшій деталі. Ми поговоримо про роботу та архітектуру фреймворку, а також про загальні виклики, з якими стикаються розробники, та результати. Тому почнімо.

OpenAgents і мовні агенти: Введення

Мовні агенти, по суті, походять від інтелектуальних агентів. Ці інтелектуальні агенти концептуалізовані як агенти з автономними можливостями розв’язання проблем, а також можливістю відчувати своє середовище, приймати рішення та діяти відповідно. З появою великих мовних моделей глобальна спільнота розробників використала концепцію інтелектуальних агентів та LLM для створення мовних агентів. Ці агенти використовують природну мовну програмування (NLP) для виконання широкого спектру складних завдань у різних середовищах та нещодавно продемонстрували видатний потенціал.

Поточні мовні агентські фреймворки, такі як Gravitas і Chase, в основному забезпечують консольний інтерфейс, орієнтований на розробників, разом з реалізацією прототипів. Однак вони часто обмежують доступ до ширшої аудиторії, особливо тих, хто не володіє програмуванням. Крім того, поточні бенчмарки агентів створені розробниками з конкретними вимогами для детермінованої оцінки, особливо у сценаріях, які вимагають перегляду веб-сторінок, програмування, використання інструментів або їхньої комбінації.

У спробі створити LLM-підтримувані інтелектуальні та мовні агенти для ширшої аудиторії відомі компанії, такі як OpenAI та Microsoft (MSFT ), розгорнули ряд добре спроектованих продуктів, включаючи розширений аналіз даних, також відомий як інтерпретатор коду, та плагіни браузера. Хоча ці агенти ефективні у своїй функції, вони пропонують обмежену допомогу спільноті розробників. Це обмеження виникає через те, що бізнес-логіка коду та реалізації моделей не відкриті, що перешкоджає можливості розробникам та дослідникам进一步 досліджувати їх, а також обмежує безкоштовний доступ для користувачів.

Щоб подолати цю проблему, розробники створили OpenAgents, відкриту платформу для розміщення та використання агентів, і зараз вона побудована на основі трьох внутрішніх агентів

  • Агент даних: Допомагає з аналізом даних за допомогою інструментів даних та запитів мов, таких як SQL, або мов програмування, таких як Python.
  • Агент плагінів: Допомагає, надавши доступ до понад 200+ інструментів API, корисних для повсякденних завдань.
  • Веб-агент: Допомагає у перегляді веб-сторінок, зберігаючи анонімність.

Наступна фігура демонструє платформу OpenAgents для загальних користувачів, розробників та дослідників.

  1. Замість використання орієнтованого на програміста пакета або консолі, загальні користувачі можуть взаємодіяти з трьома агентами у фреймворку OpenAgents за допомогою онлайн-веб-інтерфейсу.
  2. Розробники можуть використовувати бізнес-логіку та дослідницькі коди, надані фреймворком OpenAgents, щоб безперебійно розгорнути бекенд та фронтенд для подальших розробок.
  3. Дослідники мають гнучкість у виборі між побудовою нових мовних агентів з нуля або імплементацією агент-пов’язаних методів за допомогою спільних компонентів та прикладів, а також оцінкою їхньої продуктивності за допомогою веб-інтерфейсу.

Підсумувавши, фреймворк OpenAgents спочатку призначений бути цілісною та реалістичною платформою для оцінки мовних агентів з людиною в циклі, яка дозволяє користувачам взаємодіяти з цими агентами для виконання широкого спектру завдань, а ці взаємодії людини та агента разом з відгуками користувачів зберігаються та аналізуються для подальшого розвитку та оцінки.

Для тих, хто не знає, LLM-пrompting – це процес, який дозволяє розробникам створювати інструкції, які захищають проти шкідливих або неправильних входів, підвищують естетику виходу та відповідають бекенд-логіці. Під час фази розробки розробники, які працюють над фреймворком OpenAgents, використовують метод LLM-пrompting, щоб підкреслити значення ефективного визначення вимог застосунку. Однак розробники скоро помітили, що накопичення цих інструкцій або LLM-промптів може бути суттєвим у деяких випадках, що може вплинути на можливості обробки контексту фреймворків LLM разом з обмеженнями токенів. Розробники також помітили, що для ефективного розгортання цих агентів у реальному світі моделі агентів повинні не тільки демонструвати виняткову продуктивність, але також бути здатними справлятися з широким спектром інтерактивних сценаріїв у реальному часі. Хоча поточні агентські фреймворки мають покриття продуктивності, вони часто ігнорують реальні розгляди, особливо у реальному часі, що часто обфускує справжній потенціал фреймворків LLM, торгує відзивчастістю або точністю.

У наступній фігурі ми порівнюємо фреймворк OpenAgents безпосередньо з існуючими роботами на бенчмарках агентських концепцій та побудові прототипів.

OpenAgents: Проектування платформи та імплементація

Систематичне проектування або архітектура платформи OpenAgents можна розділити на два основні компоненти: Інтерфейс користувача, включаючи бекенд та фронтенд, та Мовний агент, який складається з інструментів, мовних моделей та середовищ. Фреймворк OpenAgents забезпечує інтерфейс для спілкування між користувачами та агентами. Потік взаємодії у фреймворку наступний.

Агенти використовують інструменти, доступні їм, для планування та виконання необхідних дій у середовищах після того, як вони отримали вхідні дані від користувачів. Архітектура або систематичне проектування фреймворку демонструється на наступній фігурі.

Інтерфейс користувача

Розробники фреймворку OpenAgents доклали багато зусиль для створення не тільки високофункціонального, але також користувачо-дружнього інтерфейсу після того, як вони впоралися з великою кількістю агентів та повторно використовуваною бізнес-логікою. В результаті фреймворк OpenAgents забезпечує підтримку широкого спектру технічних завдань, включаючи обробку помилок, операції бекенд-сервера, потокові дані та багато іншого, з основною метою зробити фреймворк OpenAgents користувачо-дружнім, але високоефективним та корисним.

Мовний агент

У фреймворку OpenAgents мовний агент має три основні компоненти: інтерфейс інструменту, мовну модель та середовище. Метод промптингу, реалізований у фреймворку OpenAgents, створює послідовний процес для агентів, який починається з Спостереження -> Розмірковування -> Дія. Фреймворк також промптує LLM для генерації тексту з підвищеною ефективністю, а інтерфейс інструменту складається з парсерів, які можуть перекласти текст, згенерований LLM, у виконувані дії, такі як здійснення API-запитів або генерація коду. Ці дії потім виконуються фреймворком у межах відповідного середовища.

Агенти OpenAgents

У центрі OpenAgents знаходяться три окремі агенти: Агент даних, який допомагає з аналізом даних за допомогою інструментів даних та запитів мов, таких як SQL, або мов програмування, таких як Python, Агент плагінів, який допомагає, надавши доступ до понад 200+ інструментів API, корисних для повсякденних завдань, та Веб-агент, який допомагає у перегляді веб-сторінок, зберігаючи анонімність. Ці агенти мають індивідуальну галузеву експертизу, подібну до плагінів ChatGPT, однак, на відміну від ChatGPT, реалізація на OpenAgents заснована виключно на відкритих мовних API.

Агент даних

Агент даних у фреймворку OpenAgents спроектований та розгорнутий таким чином, щоб справлятися з широким спектром завдань, пов’язаних з даними, які користувачі зустрічають регулярно. Агент даних підтримує генерацію та виконання коду у двох мовах програмування: SQL та Python, а також має кілька інструментів даних у своєму розпорядженні, включаючи Профайлінг даних для надання базової інформації про дані, Пошук даних Kaggle для пошуку наборів даних, та Інструмент ECharts для побудови інтерактивних діаграм ECharts. Крім того, фреймворк OpenAgents промптує агент даних використовувати ці інструменти проактивно для ефективної відповіді на запити користувачів. Крім того, враховуючи високу вимогливість кодування, фреймворк OpenAgents вибрав для агента даних вбудовані мовні моделі, а замість генерації коду агентом інструменти, такі як Python, ECharts та SQL, генерують код. За допомогою цього підходу фреймворк може повністю використати програмні можливості мовних моделей та тим самим зменшити навантаження на агент даних.

З допомогою цих інструментів даних агент даних здатний керувати численними запитами, пов’язаними з даними, та виконує візуалізацію, маніпуляцію та запити даних професійно, тим самим перевершуючи межі генерації коду та тексту. Наступна фігура демонструє агент даних у дії та інструменти, доступні загальним користувачам.

Агент плагінів

Агент плагінів у фреймворку OpenAgents спроектований розробниками ретельно, щоб задовольнити багатогранні вимоги користувачів для повсякденних завдань, включаючи пошук у інтернеті, онлайн-шопінг, читання новин або створення веб-сайтів та застосунків, надавши доступ до понад 200 плагінів, з особливим акцентом на інтерфейсі функцій, API-запитах та довжині відповідей API. Деякі з відомих плагінів включають

  1. Google Search
  2. Wolfram Alpha
  3. Zapier
  4. Klarna
  5. Coursera
  6. Show Me
  7. Speak
  8. AskYourPDF
  9. BizTok
  10. Klook

Користувачі можуть вибрати кількість плагінів, які вони хочуть використовувати для агентів плагінів, залежно від своїх потреб та вимог. Робота агентів плагінів демонструється на наступній фігурі.

Крім того, щоб допомогти користувачам у ситуаціях, коли вони не впевнені, який плагін найкраще відповідає їхнім вимогам, фреймворк OpenAgents пропонує користувачам функцію, яка автоматично вибирає плагіни, найбільш відповідні їхнім інструкціям.

Веб-агент

Фреймворк OpenAgents представляє веб-агента як спеціалізований інструмент, призначений для підвищення ефективності та можливостей чат-агента. Хоча чат-агент все ще містить основний інтерфейс взаємодії, він безшовно інтегрує веб-агента, коли це необхідно. Остання відповідь потім надсилається кінцевому користувачу веб-агентом, і процес ілюструється на наступній фігурі.

Стратегія проектування, реалізована у цих веб-агентах, виявляється дуже корисною, оскільки чат-агент обробляє важливі параметри або ініціює URL-систематично, перш ніж вони передаються веб-агенту, тим самим забезпечуючи кращу відповідність між вимогами користувача та згенерованим виходом, що призводить до чіткої комунікації. Крім того, стратегія також дозволяє веб-агентам адаптуватися до шаруватих та адаптивних запитів користувачів, використовуючи динамічну багаторівневу навігацію веб-сторінок, поєднану з діалогами чату. Тому, виокремлюючи ролі та обов’язки чат- та багатобровзорних агентів чітко, фреймворк OpenAgents робить шлях для вдосконалення та еволюції кожного окремого модуля.

OpenAgents: Практичні застосування та розгортання у реальному світі

У цьому розділі ми поговоримо про траєкторію фреймворку OpenAgents від теоретизації до розгортання у реальному світі, а також про виклики, з якими стикаються розробники, та оцінку складності, яку вони подолали.

Використання промптів для перетворення великих мовних моделей у реальні застосунки

Коли використовуються промпти LLM для побудови реальних застосунків для кінцевих користувачів, фреймворк OpenAgents використовує промпт-інструкції для визначення певних вимог. Метою деяких інструкцій є забезпечення того, щоб вихід був у відповідності з певним форматом, тим самим дозволяючи бекенд-логіці обробляти вихід, тоді як мета інших інструкцій полягає у підвищенні естетики виходу, а інші інструкції захищають фреймворк від потенційних шкідливих атак.

Неконтрольовані чинники реального світу

Коли розробники розгорнули фреймворк OpenAgents у реальному світі, вони зустріли ряд неконтрольованих чинників реального світу, спричинених інфраструктурою інтернету, користувачами, бізнес-логікою та іншим. Ці неконтрольовані чинники змусили розробників переоцінити та переоценити деякі припущення на основі попередніх досліджень, і вони могли в кінцевому підсумку привести до ситуацій, у яких кінцеві користувачі можуть не бути задоволені відповіддю, згенерованою фреймворком.

Складність оцінки

Хоча побудовані агенти, орієнтовані безпосередньо на застосунки, можуть мати ширше застосування та забезпечувати кращу оцінку, вони також додають складності до побудови застосунків на основі LLM, що робить їх важчими для аналізу продуктивності застосунків. Крім того, цей підхід також додає нестабільності та розширює ланцюжок систем LLM, що робить його важчим для фреймворку адаптуватися до різних компонентів. Тому має сенс вдосконалити проектування системи та логіку роботи цих агентів, щоб спростити процедури та забезпечити ефективний вихід.

Останні думки

У цій статті ми поговорили про фреймворк OpenAgents, відкриту платформу для розміщення та розгортання мовних агентів у дикій природі та в різних повсякденних завданнях. Фреймворк OpenAgents побудований навколо трьох агентів: агента даних, який допомагає з аналізом даних за допомогою інструментів даних та запитів мов, таких як SQL, або мов програмування, таких як Python, агента плагінів, який допомагає, надавши доступ до понад 200+ інструментів API, корисних для повсякденних завдань, та веб-агента, який допомагає у перегляді веб-сторінок, зберігаючи анонімність. Фреймворк OpenAgents використовує веб-інтерфейс користувача, оптимізований для загальних збоїв та швидких відповідей, щоб дозволити загальним користувачам взаємодіяти з функціональністю агентів, а також пропонує дослідникам та розробникам безперебійний досвід розгортання на їхніх локальних налаштуваннях. За допомогою надання прозорої, цілісної та розгорнутої платформи OpenAgents спрямований на те, щоб зробити потенціал LLM доступним для ширшої аудиторії користувачів, не обмежених лише дослідниками та розробниками, але також кінцевими користувачами з обмеженими технічними знаннями.

Kunal Kejriwal — бекенд‑інженер, який спеціалізується на Python, PostgreSQL, Redis та хмарній інфраструктурі в GCP і AWS. Має три роки досвіду у створенні та масштабуванні виробничих систем, пише про інфраструктуру ШІ, розподілені системи та архітектуру розгортання навантажень машинного навчання.