Una guía de codificación integral para elaborar flujos de trabajo de agentes múltiples avanzados con Microsoft Autogen

En este tutorial, demostramos cómo Autógeno de Microsoft Framework faculta a los desarrolladores para orquestar flujos de trabajo complejos de múltiples agentes con un código mínimo. Al aprovechar las abstracciones RoundRoBingroupChat y Teamtool de Autogen, puede reunir a la perfección asistentes especializados, como investigadores, cheques de hechos, críticos, resúmenes y editores, en una herramienta cohesiva “profunda”. El autógeno maneja las complejidades de la toma de turnos, las condiciones de terminación y la producción de transmisión, lo que le permite concentrarse en definir las experiencias y las indicaciones del sistema de cada agente en lugar de fontanear las devoluciones de llamada o las cadenas de inmediato. Ya sea que realice investigaciones en profundidad, validando hechos, refinando la prosa o integrando herramientas de terceros, Autogen proporciona una API unificada que escala desde tuberías simples de dos agentes hasta colaboraciones de cinco agentes elaboradas.

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

Instalamos el paquete Autogen Agentchat con Gemini Support, la extensión OpenAI para la compatibilidad de API y la biblioteca Nest_asyncio para parchear el bucle de eventos del cuaderno, asegurando que tenga todos los componentes necesarios para ejecutar flujos de trabajo asíncronos y múltiples en colab.

import os, nest_asyncio
from getpass import getpass


nest_asyncio.apply()
os.environ["GEMINI_API_KEY"] = getpass("Enter your Gemini API key: ")

Importamos y aplicamos Nest_asyncio para habilitar bucles de eventos anidados en entornos de cuaderno, luego solicitamos de forma segura su clave de API Gemini usando GetPass y almacenarlo en OS.environ para el acceso de cliente modelo autenticado.

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",
)

Inicializamos un cliente de chat compatible con OpenAI señaló a Gemini de Google especificando el modelo Gemini-1.5-Flash-8B, inyectando su tecla API Gemini almacenada y configurando API_TYPE = “Google”, lo que le brinda un model_client listo para usar para los agentes de autógenos posteriores.

from autogen_agentchat.agents import AssistantAgent


researcher   = AssistantAgent(name="Researcher", system_message="Gather and summarize factual info.", model_client=model_client)
factchecker  = AssistantAgent(name="FactChecker", system_message="Verify facts and cite sources.",       model_client=model_client)
critic       = AssistantAgent(name="Critic",    system_message="Critique clarity and logic.",         model_client=model_client)
summarizer   = AssistantAgent(name="Summarizer",system_message="Condense into a brief executive summary.", model_client=model_client)
editor       = AssistantAgent(name="Editor",    system_message="Polish language and signal APPROVED when done.", model_client=model_client)

Definimos cinco agentes asistentes especializados, investigadores, chillones de datos, críticos, resumidos y editor, cada uno inicializado con un mensaje del sistema específico de roles y el cliente de modelo compartido con Gemini, lo que les permite recopilar información, respectivamente, verificar la precisión, el contenido de criticación, los resúmenes de condensación y el lenguaje polaco dentro del flujo de trabajo de autógenos.

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
)

Importamos la clase RoundRobingRoupChat junto con dos condiciones de terminación, luego componemos una regla de parada que dispara después de 20 mensajes totales o cuando el agente del editor menciona “aprobado”. Finalmente, instancias de un equipo de remolinos redondo de los cinco agentes especializados con esa lógica de terminación combinada, lo que les permite andar en bicicleta a través de la investigación, la verificación de hechos, la crítica, el resumen y la edición hasta que se cumpla una de las condiciones de parada.

from autogen_agentchat.tools import TeamTool


deepdive_tool = TeamTool(team=team, name="DeepDive", description="Collaborative multi-agent deep dive")

Envolvemos nuestro equipo RoundRobingroupchat en un equipo de equipo llamado “DeepDive” con una descripción legible por humanos, empaquetando efectivamente todo el flujo de trabajo de múltiples agentes en una sola herramienta llamable que otros agentes pueden invocar a la perfección.

host = AssistantAgent(
    name="Host",
    model_client=model_client,
    tools=[deepdive_tool],
    system_message="You have access to a DeepDive tool for in-depth research."
)

Creamos un agente asistente de “host” configurado con el model_client con motor Géminis compartido, le otorgamos la herramienta del equipo DeepDive para orquestar la investigación en profundidad y la preparamos con un mensaje del sistema que le informa sobre su capacidad para invocar el flujo de trabajo DeepDive de múltiples agentes.

import asyncio


async def run_deepdive(topic: str):
    result = await host.run(task=f"Deep dive on: {topic}")
    print("🔍 DeepDive result:\n", result)
    await model_client.close()


topic = "Impacts of Model Context Protocl on Agentic AI"
loop = asyncio.get_event_loop()
loop.run_until_complete(run_deepdive(topic))

Finalmente, definimos una función asíncrona run_deepdive que le dice al agente host que ejecute la herramienta del equipo profundo en un tema determinado, imprima el resultado integral y luego cierra el cliente modelo; Luego toma el bucle Asyncio existente de Colab y ejecuta la coroutina hasta la finalización para una ejecución sincrónica y sincrónica.

En conclusión, la integración de Google Gemini a través del cliente de OpenAI -compatible de Autogen y envolviendo nuestro equipo de múltiples agentes como un equipo de equipo llamable nos da una plantilla poderosa para construir flujos de trabajo altamente modulares y reutilizables. Autogen resume Away Event Loop Management (con Nest_asyncio), respuestas de transmisión y lógica de terminación, lo que nos permite iterar rápidamente en los roles de los agentes y la orquestación general. Este patrón avanzado optimiza el desarrollo de sistemas de IA colaborativos y establece las bases para extenderse a tuberías de recuperación, selectores dinámicos o estrategias de ejecución condicional.


Mira el Cuaderno aquí. Todo el crédito por esta investigación va a los investigadores de este proyecto. Además, siéntete libre de seguirnos Gorjeo Y no olvides unirte a nuestro 95k+ ml de subreddit y suscribirse a Nuestro boletín.


Asif Razzaq es el CEO de MarktechPost Media Inc .. Como empresario e ingeniero visionario, ASIF se compromete a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, MarktechPost, que se destaca por su cobertura profunda de noticias de aprendizaje automático y de aprendizaje profundo que es técnicamente sólido y fácilmente comprensible por una audiencia amplia. La plataforma cuenta con más de 2 millones de vistas mensuales, ilustrando su popularidad entre el público.