Поделиться через


Агенты ИИ в Azure Cosmos DB

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

В этой статье приведены общие сведения и подробные примеры реализации для агентов ИИ.

Что такое агенты ИИ?

В отличие от автономных крупных языковых моделей (LLMs) или систем программного обеспечения и оборудования на основе правил агенты ИИ имеют следующие общие функции:

  • Планирование: агенты ИИ могут планировать и последовательности действий для достижения конкретных целей. Интеграция LLMs революционизировала их возможности планирования.
  • Использование инструментов. Расширенные агенты ИИ могут использовать различные средства, такие как выполнение кода, поиск и вычислительные возможности, для эффективного выполнения задач. Агенты ИИ часто используют инструменты через вызов функций.
  • Восприятие: агенты ИИ могут воспринимать и обрабатывать информацию из своей среды, чтобы сделать их более интерактивным и контекстным. Эта информация включает визуальные, зрительные и другие сенсорные данные.
  • Память: агенты ИИ имеют возможность запоминать прошлые взаимодействия (использование инструментов и восприятие) и поведение (использование и планирование инструментов). Они хранят этот опыт и даже выполняют саморефлексию для определения будущих действий. Этот компонент памяти позволяет обеспечить непрерывность и улучшение производительности агента с течением времени.

Примечание.

Использование термина «память» в контексте агентов ИИ отличается от концепции памяти компьютера (например, энергозависимой, энергонезависимой и постоянной памяти).

Копилоты

Копилоты — это тип агента ИИ. Они работают вместе с пользователями, а не работают независимо. В отличие от полностью автоматизированных агентов, копилоты предоставляют предложения и рекомендации для оказания помощи пользователям в выполнении задач.

Например, когда пользователь пишет сообщение электронной почты, копилот может предлагать фразы, предложения или абзацы. Пользователь может также попросить помощника найти соответствующую информацию в других электронных письмах или файлах для поддержки предложения (см. "дополненную генерацию с извлечением"). Пользователь может принять, отклонить или изменить предложенные фрагменты.

Автономные агенты

Автономные агенты могут работать более независимо. При настройке автономных агентов для поддержки композиции электронной почты их можно включить для выполнения следующих задач:

  • Обратитесь к существующим сообщениям электронной почты, чатам, файлам и другим внутренним и общедоступным сведениям, связанным с предметом.
  • Выполните качественный или количественный анализ собранных сведений и вывести выводы, относящиеся к электронной почте.
  • Напишите полное сообщение электронной почты на основе выводов и включите вспомогательные доказательства.
  • Вложите соответствующие файлы в сообщение электронной почты.
  • Просмотрите сообщение электронной почты, чтобы убедиться, что все включенные сведения являются фактически точными и что утверждения действительны.
  • Выберите подходящих получателей для полей "Кому", "Копия" и " Копия " и найдите их адреса электронной почты.
  • Запланируйте подходящее время для отправки сообщения электронной почты.
  • Выполняйте последующие действия, если ожидаете ответа, но его не получили.

Агенты можно настроить для выполнения каждой из предыдущих задач с или без утверждения человека.

Системы с несколькими агентами

Популярная стратегия достижения выполняемых автономных агентов — использование мультиагентных систем. В мультиагентных системах несколько автономных агентов, будь то в цифровой или роботизированной форме, взаимодействуют или работают вместе для достижения отдельных или коллективных целей. Агенты в системе могут работать независимо и обладать собственными знаниями или информацией. Каждый агент может также иметь возможность воспринимать свою среду, принимать решения и выполнять действия на основе своих целей.

Системы с несколькими агентами имеют следующие ключевые характеристики:

  • Автономный: каждый агент работает независимо. Он принимает собственные решения без прямого вмешательства человека или контроля другими агентами.
  • Интерактивность: агенты общаются и сотрудничают друг с другом для обмена информацией, ведут переговоры и координируют свои действия. Это взаимодействие может происходить через различные протоколы и каналы связи.
  • Целеустремлённые агенты в многоагентной системе предназначены для достижения конкретных целей, которые могут быть согласованы с отдельными целями или общей целью для агентов.
  • Распределенные: многоагентные системы работают распределенно, без единой точки управления. Это распределение повышает надежность системы, масштабируемость и эффективность ресурсов.

Система с несколькими агентами предоставляет следующие преимущества по сравнению с copilot или одним экземпляром вывода LLM:

  • Динамическое рассуждение: по сравнению с цепочкой мыслей или деревом мыслей, мультиагентные системы позволяют динамической навигации по различным ходам рассуждений.
  • Сложные возможности: многоагентные системы могут справиться с сложными или крупномасштабными проблемами, проводя тщательные процессы принятия решений и распределяя задачи между несколькими агентами.
  • Расширенная память: многоагентные системы с памятью могут преодолеть контекстные окна LLM, чтобы обеспечить лучшее понимание и хранение информации.

Внедрение агентов ИИ

Обоснование и планирование

Сложное рассуждение и планирование являются отличительными чертами продвинутых автономных агентов. Популярные платформы для автономных агентов включают один или несколько из следующих методологий (со ссылками на страницы архива arXiv) по соображениям и планированию:

  • Самозапросить

    Улучшайте цепочку мысли, явно задав модель (и ответить) на последующие вопросы, прежде чем отвечать на первоначальный вопрос.

  • Причина и действие (ReAct)

    Используйте LLM для генерации как следов рассуждений, так и действий, специфичных для задач, в органичном режиме. Трассировки причин помогают модели инициировать, отслеживать и обновлять действия, а также обрабатывать исключения. Действия позволяют модели подключаться к внешним источникам, таким как база знаний или среды, для сбора дополнительной информации.

  • Планирование и решение

    Создайте план, чтобы разделить всю задачу на меньшие подзадачи, а затем выполнить подзадачи в соответствии с планом. Этот подход устраняет ошибки вычисления, ошибки пропущенных шагов и семантические недоразумения, которые часто встречаются при цепочечной логике в постановке задач без предварительного обучения.

  • Отражение/самокритика

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

Платформы

Различные платформы и средства могут упростить разработку и развертывание агентов ИИ.

Для использования и восприятия инструментов, которые не требуют сложного планирования и памяти, некоторые популярные фреймворки оркестрации LLM - это LangChain, LlamaIndex, Prompt Flow и Semantic Kernel.

Для расширенных и автономных рабочих процессов планирования и выполнения AutoGen запустила многоагентную волну, которая началась в конце 2022 года. API ответов OpenAI позволяет пользователям создавать агенты изначально в экосистеме GPT. Агенты LangChain и LlamaIndex агенты также появились примерно в то же время.

Система памяти агента ИИ

Распространенная практика экспериментирования с приложениями СИ с 2022 по 2025 год использует автономные системы управления базами данных для различных рабочих процессов или типов данных. Например, можно использовать базу данных в памяти для кэширования, реляционную базу данных для операционных данных (включая журналы трассировки и действия и журнал бесед LLM), а также чистую векторную базу данных для внедрения управления.

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

Кроме того, многие часто используемые службы баз данных не являются оптимальными для скорости и масштабируемости, необходимых системам агента ИИ. Отдельные недостатки этих баз данных усугубляются в системах с несколькими агентами.

Базы данных в памяти

Базы данных в памяти отлично подходят для скорости, но могут бороться с сохранением крупномасштабных данных, необходимых агентам ИИ.

Реляционные базы данных

Реляционные базы данных не идеально подходят для различных модальности и гибких схем данных, которые обрабатывают агенты. Реляционные базы данных требуют ручной работы и даже простоя для управления подготовкой, секционированием и сегментированием.

Чистые векторные базы данных

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

  • Нет гарантии на операции чтения и записи.
  • Ограниченный входящий поток данных.
  • Низкая доступность (ниже 99,9%, или годовой сбой в 9 часов или более).
  • Один уровень согласованности (в конечном итоге).
  • Ресурсоемкий векторный индекс в памяти.
  • Ограниченные возможности мультитенантности.
  • Ограниченная безопасность.

Характеристики надежной системы памяти агента ИИ

Так же, как эффективные системы управления базами данных критически важны для производительности программных приложений, важно предоставить агенты, управляемые LLM, соответствующими и полезными сведениями для их вывода. Надежные системы памяти позволяют упорядочивать и хранить различные типы сведений, которые агенты могут получать во время вывода.

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

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

Объединение между собой интернета автономных баз данных в памяти, реляционных и векторных баз данных (как описано выше) не является оптимальным решением для различных типов данных. Этот подход может работать для систем прототипов агентов. Однако она добавляет сложность и узкие места производительности, которые могут затруднять работу продвинутых автономных агентов.

Надежная система памяти должна иметь следующие характеристики.

Мультимодальный

Системы памяти агента ИИ должны предоставлять коллекции, которые хранят метаданные, связи, сущности, сводки или другие типы информации, которые могут быть полезны для различных задач и доменов. Эти коллекции можно использовать на основе структуры и формата данных, таких как документы, таблицы или код. Или они могут быть основаны на содержимом и значении данных, таких как понятия, ассоциации или процедурные шаги.

Системы памяти не просто важны для агентов ИИ. Они также важны для людей, которые разрабатывают, поддерживают и используют эти агенты.

Например, людям может потребоваться контролировать рабочие процессы планирования и выполнения агентов практически в реальном времени. Во время надзора люди могут вносить рекомендации или делать правки в диалогах или монологах агентов. Людям также может потребоваться проверить причину и действия агентов, чтобы проверить допустимость окончательных выходных данных.

Взаимодействие с человеком и агентом, скорее всего, на естественных языках или языках программирования, в то время как агенты "думают", "учатся" и "запоминаются" с помощью внедрения. Это различие представляет еще одно требование к согласованности систем памяти в различных модальности данных.

Операционный

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

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

Общий доступ, но и разделимый

На уровне макросов системы памяти должны позволить нескольким агентам ИИ сотрудничать с проблемой или обрабатывать различные аспекты проблемы, предоставляя общую память, доступную всем агентам. Общая память может упростить обмен информацией и координацию действий между агентами.

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

Создание надежной системы памяти агента ИИ

Предыдущие характеристики требуют, чтобы системы памяти агента ИИ были высокомасштабируемыми и быстрыми. Тщательно ткать вместе разрозненные в памяти, реляционные и векторные базы данных (как описано ранее) могут работать для приложений с поддержкой искусственного интеллекта на ранних этапах. Однако этот подход повышает сложность и узкие места производительности, которые могут препятствовать производительности расширенных автономных агентов.

Вместо всех автономных баз данных Azure Cosmos DB может служить единым решением для систем памяти агента ИИ. Надёжность системы успешно позволила службе ChatGPT OpenAI масштабироваться динамически с высокой надёжностью и низкими затратами на обслуживание. Обеспечиваемый движком на основе atom-record-sequence, это первая в мире глобально распределенная служба, объединяющая NoSQL, реляционную и векторную базу данных, которая предлагает серверлесс-режим. Агенты ИИ, созданные на основе Azure Cosmos DB, предлагают скорость, масштабирование и простоту.

Скорость

Azure Cosmos DB обеспечивает однозначную задержку в миллисекундах. Эта возможность подходит для процессов, требующих быстрого доступа к данным и управления. Эти процессы включают кэширование (традиционное и семантическое кэширование), транзакции и операционные рабочие нагрузки.

Низкая задержка важна для агентов ИИ, которые должны выполнять сложные причины, принимать решения в режиме реального времени и предоставлять немедленные ответы. Кроме того, использование алгоритма DiskANN службы обеспечивает точный и быстрый векторный поиск с минимальным потреблением памяти.

Шкала

Azure Cosmos DB разработана для глобального распределения и горизонтальной масштабируемости с поддержкой многорегионального ввода-вывода и мультитенантности.

Служба помогает гарантировать, что системы памяти могут легко расширяться и поддерживать быстро растущие агенты и связанные данные. Гарантия доступности в соглашении об уровне обслуживания (SLA) преобразуется менее чем на 5 минут простоя в год. Исключительно векторные базы данных, в отличие от этого, имеют 9 часов простоя или более. Эта доступность обеспечивает надежную основу для критически важных рабочих нагрузок. В то же время различные модели служб в Azure Cosmos DB, такие как зарезервированная емкость или бессерверные, могут помочь сократить финансовые затраты.

Простота

Azure Cosmos DB может упростить управление данными и архитектуру путем интеграции нескольких функциональных возможностей базы данных в единую, сплоченную платформу.

Ее интегрированные возможности векторной базы данных могут хранить, индексировать и внедрять запросы вместе с соответствующими данными на естественных или языках программирования. Эта возможность обеспечивает большую согласованность данных, масштабирование и производительность.

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

Azure Cosmos DB полностью управляется, что устраняет затраты на задачи администрирования базы данных, такие как масштабирование, исправление и резервное копирование. Без этой нагрузки разработчики могут сосредоточиться на создании и оптимизации агентов ИИ, не беспокоясь о базовой инфраструктуре данных.

Расширенные функции

Azure Cosmos DB включает дополнительные функции, такие как канал изменений, который позволяет отслеживать и реагировать на изменения в данных в режиме реального времени. Эта возможность полезна для агентов ИИ, которые должны оперативно реагировать на новые сведения.

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

Пять доступных уровней согласованности (от сильной до конечной) также могут обслуживать различные распределенные рабочие нагрузки в зависимости от требований сценария.

Совет

Используйте Azure Cosmos DB для NoSQL для создания системы памяти агента ИИ. API для NoSQL предлагает гарантию доступности 99.999% и предоставляет три алгоритма поиска векторов:

  • IVF
  • HNSW
  • DiskANN

Сведения о гарантиях доступности для этого API см. в соглашениях об уровне обслуживания службы.