<НА ГЛАВНУЮ

Мастерство создания продвинутых мультиагентных раунд-робин воркфлоу с Microsoft AutoGen и Google Gemini

Узнайте, как создавать сложные мультиагентные AI-воркфлоу с Microsoft AutoGen и Google Gemini, обеспечивающие эффективное взаимодействие специализированных ассистентов.

Использование Microsoft AutoGen для мультиагентных воркфлоу

Microsoft AutoGen предоставляет разработчикам эффективный фреймворк для организации сложных мультиагентных процессов с минимальными усилиями по коду. С помощью абстракций RoundRobinGroupChat и TeamTool можно объединить специализированных ассистентов — Исследователя, Фактчекинга, Критика, Суммаризатора и Редактора — в единый инструмент "DeepDive".

Упрощение координации и взаимодействия

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

Настройка окружения

Для начала установите необходимые пакеты, включая autogen-agentchat с поддержкой Gemini, расширения OpenAI и nest_asyncio для управления циклом событий:

!pip install -q autogen-agentchat[gemini] autogen-ext[openai] nest_asyncio

Импорт и настройка окружения:

import os, nest_asyncio
from getpass import getpass
 
nest_asyncio.apply()
os.environ["GEMINI_API_KEY"] = getpass("Введите ваш Gemini API ключ: ")

Инициализация клиентской модели

Создаем OpenAI-совместимый чат-клиент для взаимодействия с моделью Google Gemini:

from autogen_ext.models.openai import OpenAIChatCompletionClient
 
model_client = OpenAIChatCompletionClient(
    model="gemini-1.5-flash-8b",
    api_key=os.environ["GEMINI_API_KEY"],
    api_type="google",
)

Определение специализированных агентов

Пять агентов с уникальными ролями:

from autogen_agentchat.agents import AssistantAgent
 
researcher   = AssistantAgent(name="Researcher", system_message="Собирайте и подводите итоги фактической информации.", model_client=model_client)
factchecker  = AssistantAgent(name="FactChecker", system_message="Проверяйте факты и указывайте источники.", model_client=model_client)
critic       = AssistantAgent(name="Critic", system_message="Критикуйте ясность и логику.", model_client=model_client)
summarizer   = AssistantAgent(name="Summarizer", system_message="Сокращайте в краткое резюме.", model_client=model_client)
editor       = AssistantAgent(name="Editor", system_message="Отшлифовывайте текст и сигнализируйте 'APPROVED' после завершения.", model_client=model_client)

Создание команды Round-Robin

Агенты по очереди выполняют задачи до выполнения условия остановки:

from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_agentchat.conditions import MaxMessageTermination, TextMentionTermination
 
max_msgs = MaxMessageTermination(max_messages=20)
text_term = TextMentionTermination(text="APPROVED", sources=["Editor"])
termination = max_msgs | text_term
team = RoundRobinGroupChat(
    participants=[researcher, factchecker, critic, summarizer, editor],
    termination_condition=termination
)

Упаковка в TeamTool

Оборачиваем команду для удобного вызова:

from autogen_agentchat.tools import TeamTool
 
deepdive_tool = TeamTool(team=team, name="DeepDive", description="Совместное мультиагентное глубокое исследование")

Агент-хост

Создаем агента "Host", который использует DeepDive:

host = AssistantAgent(
    name="Host",
    model_client=model_client,
    tools=[deepdive_tool],
    system_message="У вас есть доступ к инструменту DeepDive для глубоких исследований."
)

Асинхронный запуск

Функция запускает DeepDive по заданной теме:

import asyncio
 
async def run_deepdive(topic: str):
    result = await host.run(task=f"Глубокое исследование по теме: {topic}")
    print("Результат DeepDive:\n", result)
    await model_client.close()
 
topic = "Влияние протокола контекста модели на агентный ИИ"
loop = asyncio.get_event_loop()
loop.run_until_complete(run_deepdive(topic))

Преимущества и перспективы

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

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

🇬🇧

Switch Language

Read this article in English

Switch to English