Мастерство создания продвинутых мультиагентных раунд-робин воркфлоу с 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