Прочитать на английском

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


Как агенты и копилоты работают с LLM

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

  • Агент — это искусственный интеллект, который может отвечать на вопросы и автоматизировать процессы для пользователей. Агенты могут определить, какие функции будут соответствовать цели пользователя, а затем вызывать эти функции от имени пользователя.
  • Copilot — это тип агента, который работает параллельно с пользователем. В отличие от агента, copilot не полностью автоматизирован — он зависит от взаимодействия с пользователем. Copilot может помочь пользователю выполнить задачу, предоставив предложения и рекомендации.

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

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

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

Компоненты агента

Каждый агент имеет три основных стандартных блока: persona, подключаемые модули и планировщики.

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

Персоны

Личность агента — это его удостоверение: все подключаемые модули и планировщики, которые использует агент, являются инструментами, но человек определяет, как он использует эти средства. Инструкции можно использовать в запросе на установку личности агента.

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

prompt = $"""
    <message role="system">
    You are a friendly assistant helping people with emails.
    When you decide to perform an action, explain your decision and then perform the action.
    </message>
"""

Подключаемые модули

Подключаемые модули используются для выполнения задач, которые LLM не может сделать только, например извлечение данных из внешних источников данных или выполнение задач в реальном мире.

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

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

Планировщики

Планировщик может анализировать доступные функции и создавать альтернативные способы достижения цели.

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

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

Копилоты добавляют взаимодействие с пользователем

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

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

  1. Получение адреса электронной почты и имени пользователя
  2. Получение адреса электронной почты получателя
  3. Получение раздела электронной почты
  4. Создание темы и текста сообщения электронной почты
  5. Отправка сообщения электронной почты

Очень удобно, но что, если пользователь не любит текст электронной почты? Copilot добавляет шаг взаимодействия пользователя к плану:

  1. Получение адреса электронной почты и имени пользователя
  2. Получение адреса электронной почты получателя
  3. Получение раздела электронной почты
  4. Создание темы и текста сообщения электронной почты
  5. Просмотрите сообщение электронной почты с пользователем и внесите изменения
  6. Отправка сообщения электронной почты

Приложение Copilot семантического чата ядра

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