Construyendo Agentes de IA Multi-Agente con OpenAI SDK

Updated on Mar 26,2025

En el vertiginoso mundo del desarrollo de la inteligencia artificial, la capacidad de crear agentes que puedan interactuar y colaborar es crucial. OpenAI ha lanzado nuevas herramientas innovadoras que facilitan la construcción de sistemas de IA multi-agente. Este artículo te guiará a través del proceso de construcción de un sistema multi-agente desde cero, utilizando el SDK de OpenAI, explorando desde la configuración inicial hasta ejemplos prácticos de agentes especializados en diferentes tareas. El objetivo es proporcionar una guía completa y detallada para que puedas aprovechar al máximo estas nuevas herramientas.

Puntos Clave

OpenAI lanza SDK para construir agentes de IA multi-agente.

El sistema multi-agente permite la colaboración entre diferentes agentes especializados.

Se utilizan agentes de 'guardrail' para verificar la validez de las entradas.

Ejemplos de agentes incluyen tutores de matemáticas e historia.

El sistema puede registrar los traces de la conversación en el playground de OpenAI.

El SDK permite la creación de agentes con descripciones e instrucciones específicas.

El sistema selecciona el agente más adecuado según la pregunta del usuario.

Los traces permiten el seguimiento y depuración del comportamiento del agente.

Introducción a los Agentes de IA Multi-Agente con OpenAI

¿Qué son los Agentes de IA Multi-Agente?

Los sistemas multi-agente representan un paradigma avanzado en la inteligencia artificial, donde múltiples agentes autónomos interactúan y colaboran para resolver problemas complejos. A diferencia de los sistemas de IA monolíticos, los sistemas multi-agente permiten una mayor flexibilidad y adaptabilidad, ya que cada agente puede especializarse en una tarea específica y coordinarse con otros agentes para lograr un objetivo común. Este enfoque descentralizado puede llevar a soluciones más robustas y eficientes, especialmente en entornos dinámicos e inciertos.

En un sistema multi-agente, cada agente opera con su propio conjunto de reglas, conocimientos y objetivos. La clave del éxito reside en la capacidad de estos agentes para comunicarse, negociar y coordinarse entre sí. Esto puede implicar el intercambio de información, la resolución de conflictos y la adaptación a las acciones de otros agentes. La complejidad de estos sistemas puede variar significativamente, desde escenarios simples con pocos agentes y reglas claras hasta entornos complejos con cientos o miles de agentes interactuando en tiempo real.

El desarrollo de sistemas multi-agente se ha visto impulsado por la creciente disponibilidad de herramientas y plataformas de IA, como el SDK de OpenAI. Estas herramientas facilitan la creación, configuración y despliegue de agentes, así como la gestión de sus interacciones. A medida que la tecnología avanza, se espera que los sistemas multi-agente desempeñen un papel cada vez más importante en una amplia gama de aplicaciones, desde la robótica y la automatización hasta la gestión de recursos y la Toma de decisiones estratégicas.

El Nuevo SDK de OpenAI para la Construcción de Agentes

OpenAI ha lanzado un SDK (Software Development Kit) revolucionario que simplifica enormemente la creación de agentes de IA multi-agente. Este SDK proporciona una serie de herramientas y bibliotecas que permiten a los desarrolladores construir, probar y desplegar agentes de manera eficiente. Una de las características clave del SDK es su capacidad para facilitar la comunicación y la coordinación entre los agentes, lo que es esencial para el funcionamiento de los sistemas multi-agente.

El SDK de OpenAI incluye una serie de componentes clave, como:

  • Agentes: Permite la creación de agentes con descripciones e instrucciones específicas.
  • Guardrails: Facilita la implementación de mecanismos de seguridad para verificar la validez de las entradas y evitar comportamientos no deseados.
  • Runner: Proporciona un entorno de ejecución para los agentes, gestionando sus interacciones y coordinando sus acciones.
  • Traces: Permite el seguimiento y depuración del comportamiento del agente, registrando todos los pasos de la conversación y las decisiones tomadas.

Con el SDK de OpenAI, los desarrolladores pueden centrarse en la lógica y la funcionalidad de sus agentes, en lugar de tener que preocuparse por los detalles técnicos de la comunicación y la coordinación. Esto acelera significativamente el proceso de desarrollo y permite la creación de sistemas multi-agente más complejos y sofisticados.

El SDK de OpenAI está diseñado para ser flexible y extensible, lo que permite a los desarrolladores adaptarlo a sus necesidades específicas. Además, se integra con otras herramientas y plataformas de IA, lo que facilita la creación de soluciones integrales.

Creación de un Sistema Multi-Agente para Tareas Educativas

Configuración Inicial del Entorno

Antes de comenzar a construir el sistema multi-agente, es necesario configurar el entorno de desarrollo. Esto implica la instalación del SDK de OpenAI y la configuración de las claves de API necesarias para acceder a los servicios de OpenAI. A continuación, se detallan los pasos a seguir:

  1. Instalación del SDK de OpenAI:

    pip install -q openai-agents

    Este comando instala el paquete openai-agents desde el repositorio de PyPI. El flag -q indica que la instalación se realizará en modo silencioso.

  2. Configuración de las Claves de API:

    Para acceder a los servicios de OpenAI, es necesario configurar las claves de API. Esto se puede hacer de varias maneras, como:

    • Estableciendo las variables de entorno OPENAI_API_KEY y SET_TRACING_EXPORT_API_KEY.
    • Utilizando un archivo de configuración.
    • Introduciendo las claves directamente en el código (no recomendado por razones de seguridad).

    A continuación, se muestra un ejemplo de cómo configurar las claves de API utilizando variables de entorno:

    import os
    os.environ['OPENAI_API_KEY'] = 'YOUR_OPENAI_API_KEY'
    os.environ['SET_TRACING_EXPORT_API_KEY'] = 'YOUR_SET_TRACING_EXPORT_API_KEY'

    Es importante mantener las claves de API seguras y no compartirlas con terceros. Además, es recomendable utilizar un archivo de configuración o variables de entorno para evitar la inclusión de las claves directamente en el código.

  3. Importación de las Bibliotecas Necesarias:

    Una vez configurado el entorno, es necesario importar las bibliotecas necesarias para construir el sistema multi-agente. Esto incluye las bibliotecas de OpenAI, así como otras bibliotecas útiles para el procesamiento de datos y la visualización.

    
    import nest_asyncio
    nest_asyncio.apply()
    import logging

from openai import OpenAI from agents import Agent, InputGuardrail, GuardrailFunctionOutput, Runner, trace, set_tracing_export_api_key from pydantic import BaseModel from IPython.display import display, HTML



    Estas bibliotecas proporcionan una serie de funciones y clases que facilitan la creación y gestión de los agentes, así como la implementación de los mecanismos de seguridad y el seguimiento del comportamiento del sistema.

Definición de Agentes Especializados

El siguiente paso consiste en definir los agentes que formarán parte del sistema multi-agente. En este ejemplo, se crearán tres agentes especializados en diferentes tareas educativas: un agente de 'guardrail' para verificar la validez de las entradas, un tutor de matemáticas y un tutor de historia.

  1. Agente de 'Guardrail':

    Este agente se encarga de verificar si la entrada del usuario está relacionada con tareas educativas. Si la entrada no es válida, el agente termina la sesión. A continuación, se muestra la definición del agente de 'guardrail':

    guardrail_agent = Agent(
    name="Guardrail Check",
    instructions="""Analyze if the user input is a homework-related question.""",
    output_type=HomeworkOutput
    )

    El agente de 'guardrail' utiliza la descripción en el campo instructions para determinar si la entrada del usuario es válida. El campo output_type especifica el tipo de salida del agente.

  2. Tutor de Matemáticas:

    Este agente se encarga de responder preguntas relacionadas con matemáticas. A continuación, se muestra la definición del tutor de matemáticas:

    math_tutor_agent = Agent(
    name="Math Tutor",
    handoff_description="Specializes in mathematical problem-solving",
    instructions="""Provide step-by-step solutions for math problems. Include examples and clear explanations."""
    )

    El tutor de matemáticas utiliza la descripción en el campo handoff_description para indicar su especialización. El campo instructions especifica las instrucciones para el tutor.

  3. Tutor de Historia:

    Este agente se encarga de responder preguntas relacionadas con historia. A continuación, se muestra la definición del tutor de historia:

    
    history_tutor_agent = Agent(
    name="History Tutor",
    handoff_description="Specializes in historical questions",
    instructions="""Offer detailed explanations of historical events with context and examples. For example, if asked about the fall of Constantinople:

Context

Constantinople's Significance: Strategic Location: The city was at the crossroads of Europe and Asia, controlling key trade routes. Cultural and Religious Center: As the capital of the Eastern Roman (Byzantine) Empire, it was a hub for Christianity and classical culture.

The Conquest Conqueror: Sultan Mehmed II of the Ottoman Empire.

Preparation: Military Innovation: Mehmed utilized massive cannons to breach the city walls, revolutionizing siege warfare. Fleet and Army: He gathered a sizable navy and army, including elite Janissary troops.

Siege Highlights: Commenced on April 6, 1453: The attack targeted the formidable Theodosian Walls protecting the city. Use of Artillery: Cannons made significant holes in the defenses, a major advancement at the time. Unique Naval Strategy: Mehmed moved ships overland to bypass the chain barrier across the Golden Horn harbor.

Fall of the City: Final Assault on May 29, 1453: Constantinople fell after an intense assault by the Ottoman forces. End of Byzantine Empire: This marked the end of Byzantine rule and the beginning of a new era for the city as the Ottoman capital.

Impact

Cultural and Political Shift:

Strengthened Ottoman Power: The city became a symbol of Ottoman strength and a base for further expansion. Transformation into Istanbul: Constantinople was rejuvenated as Istanbul, becoming a center of Islamic culture and learning.

Examples of Legacy

Hagia Sophia: Transformed from a church to a mosque, symbolizing cultural and religious changes. Trade Growth: The conquest opened strategic East-West trading lanes under Ottoman control. """ )



    Al igual que el tutor de matemáticas, el tutor de historia utiliza la descripción en el campo `handoff_description` para indicar su especialización. El campo `instructions` especifica las instrucciones para el tutor, incluyendo ejemplos de preguntas y respuestas.

Creación del Flujo de Trabajo Multi-Agente

Una vez definidos los agentes, es necesario crear el flujo de trabajo que gestionará sus interacciones. Esto implica la creación de una función que reciba la entrada del usuario, la pase al agente de 'guardrail' para su verificación y, a continuación, la dirija al tutor de matemáticas o al tutor de historia, según el tema de la pregunta.

```python

def homework_guardrail(ctx, agent, input_data): with trace("Guardrail Analysis", metadata={"input": input_data}, ctx=ctx) as t: result = await Runner.run(guardrail_agent, input_data, context=ctx) final_output = result.final_output t.record_final_output(final_output) is_homework = result.final_output.is_homework return is_homework

async def create_analysis(input_request):

if homework_guardrail(ctx, guardrail_agent, input_request) == True:
    if "math" in input_request or "mathematics" in input_request or "calculus" in input_request:
        result = await Runner.run(math_tutor_agent, input_request, context=ctx)
        return result.final_output
    else:
        result = await Runner.run(history_tutor_agent, input_request, context=ctx)
        return result.final_output
else:
    return "This helper can only help with Homework"
```

La función `create_analysis` recibe la entrada del usuario y la pasa al agente de 'guardrail' para su verificación. Si la entrada es válida, la función determina si la pregunta está relacionada con matemáticas o historia y la dirige al tutor correspondiente. Si la entrada no es válida, la función devuelve un mensaje indicando que solo puede ayudar con tareas educativas.

Este flujo de trabajo permite la creación de un sistema multi-agente flexible y adaptable, donde los agentes pueden colaborar para responder preguntas complejas y proporcionar una experiencia de aprendizaje personalizada.

Ejecución y Prueba del Sistema Multi-Agente

Una vez creado el flujo de trabajo, es necesario ejecutar y probar el sistema multi-agente para verificar su funcionamiento. Esto implica la introducción de preguntas relacionadas con matemáticas e historia y la verificación de que el sistema selecciona el agente adecuado y proporciona una respuesta correcta. A continuación, se muestran algunos ejemplos de preguntas y respuestas:

  • Pregunta: ¿Quién conquistó Estambul?

    Respuesta: Sultan Mehmed II del Imperio Otomano.

  • Pregunta: ¿Cuál es la raíz cuadrada de 144?

    Respuesta: 12

    Estos ejemplos demuestran que el sistema multi-agente es capaz de seleccionar el agente adecuado según el tema de la pregunta y proporcionar una respuesta correcta. Además, el sistema registra los traces de la conversación en el playground de OpenAI, lo que permite el seguimiento y depuración del comportamiento del agente.

    La ejecución y prueba del sistema multi-agente son esenciales para garantizar su funcionamiento Correcto y su capacidad para proporcionar una experiencia de aprendizaje personalizada. Además, el seguimiento de los traces de la conversación permite la identificación y corrección de posibles errores o deficiencias en el sistema.

¿Cómo Utilizar el SDK de OpenAI para Construir Agentes?

Paso 1: Definir las Capacidades del Agente

El primer paso para construir un agente de IA es definir sus capacidades. ¿Qué tipo de tareas podrá realizar? ¿Qué conocimientos necesitará? ¿Qué tipo de interacciones podrá tener con otros agentes y con los usuarios?

En este ejemplo, se han definido tres agentes con diferentes capacidades: un agente de 'guardrail' para verificar la validez de las entradas, un tutor de matemáticas y un tutor de historia. Cada agente tiene una descripción e instrucciones específicas que definen sus capacidades y su comportamiento.

Paso 2: Implementar la Lógica del Agente

Una vez definidas las capacidades del agente, es necesario implementar su lógica. Esto implica la creación de funciones y clases que le permitan realizar las tareas para las que ha sido diseñado.

En este ejemplo, se han creado funciones para gestionar las interacciones entre los agentes y para seleccionar el agente adecuado según la pregunta del usuario. Además, se han implementado mecanismos de seguridad para verificar la validez de las entradas y evitar comportamientos no deseados.

Paso 3: Integrar el Agente en el Sistema Multi-Agente

Una vez implementada la lógica del agente, es necesario integrarlo en el sistema multi-agente. Esto implica la configuración de la comunicación y la coordinación entre los agentes, así como la gestión de sus interacciones.

En este ejemplo, se ha creado un flujo de trabajo que gestiona las interacciones entre los agentes y selecciona el agente adecuado según la pregunta del usuario. Además, se han implementado mecanismos de seguimiento y depuración para facilitar la identificación y corrección de posibles errores o deficiencias en el sistema.

Preguntas Frecuentes

¿Qué es un sistema multi-agente?
Un sistema multi-agente es un sistema de IA donde múltiples agentes autónomos interactúan y colaboran para resolver problemas complejos.
¿Qué es el SDK de OpenAI?
El SDK de OpenAI es un conjunto de herramientas y bibliotecas que simplifican la creación de agentes de IA multi-agente.
¿Qué tipo de tareas pueden realizar los agentes de IA?
Los agentes de IA pueden realizar una amplia gama de tareas, desde responder preguntas y proporcionar información hasta controlar robots y automatizar procesos.
¿Cómo puedo crear un agente de IA?
Puedes crear un agente de IA utilizando el SDK de OpenAI o

Most people like