Разработка мультиагентных систем на платформе AutoGen 0:00
Создание сложных систем на базе искусственного интеллекта требует перехода от простых чат-ботов к взаимодействию специализированных агентов. В рамках обучающего курса DeepLearning.AI эксперты подробно разбирают работу с ConversableAgent — базовым классом фреймворка AutoGen, который позволяет выстраивать многошаговые диалоги между несколькими ИИ-сущностями.
Концепция ConversableAgent 0:25
В архитектуре AutoGen агент представляет собой программную сущность, действующую от лица пользователя: он отправляет и получает сообщения, совершает действия, генерирует ответы и взаимодействует с другими участниками системы.
Ключевые возможности ConversableAgent включают:
- Унификация различных типов агентов в рамках единой абстракции программирования.
- Встроенная поддержка исполнения кода и вызова внешних инструментов.
- Компоненты для контроля участия человека («human-in-the-loop») и настройки условий завершения диалога.
Разработчик может гибко включать или отключать эти компоненты, адаптируя агента под нужды конкретного приложения. В качестве базовой модели в курсе используется GPT-3.5 Turbo.
Запуск первого агента 1:58
Создание агента начинается с определения конфигурации модели и задания параметров взаимодействия. Важной настройкой является human_input_mode:
- При значении
neverагент полностью автономен и не запрашивает подтверждения человека. - При значении
alwaysагент обязан получать одобрение пользователя перед отправкой любого сообщения.
Важно понимать, что метод generate_reply работает как «чистая функция» с точки зрения состояния: каждый вызов этого метода генерирует ответ с нуля, не «помня» контекст предыдущих сообщений. Для реализации полноценных диалогов, требующих сохранения контекста, необходимо использовать другой подход.
Организация диалога между агентами 4:35
Для создания интерактивного приложения, где агенты взаимодействуют друг с другом, необходимо присвоить им системные роли через параметр system_message. В примере с двумя стендап-комиками, Кэсси и Джо, каждому задается конкретная инструкция поведения:
- Кэсси: получает установку на роль комика.
- Джо: получает дополнительную инструкцию начинать шутку с панчлайна предыдущей реплики, что обеспечивает связность диалога.
Запуск взаимодействия осуществляется через функцию initiate_chat, где указывается получатель и параметры ограничения диалога (например, max_turns=2). По завершении работы система позволяет проанализировать историю чата и затраченные токены. Стоимость использования модели, количество токенов запроса и ответа детализируются в объекте chat_result.
Управление завершением и контекстом 9:28
Помимо ограничения количества ходов, AutoGen поддерживает динамическое завершение диалога через функцию is_termination_message. Она анализирует содержание каждого сообщения и останавливает систему, если обнаружена специфическая фраза (например, «I got go»).
[]
Это обеспечивает гибкость: агенты могут продолжать диалог столько, сколько требуется, опираясь на прошлый контекст. В ходе тестов было продемонстрировано, что при последующих запросах агенты способны корректно «вспоминать» информацию из предыдущих этапов разговора, что подтверждает эффективность сохранения состояния внутри мультиагентной системы.