Home
Login

Framework ligero para la construcción de flujos de trabajo multiagente, que admite la colaboración entre agentes, la invocación de herramientas y la orquestación de procesos.

MITPython 11.6kopenai Last Updated: 2025-06-19

Introducción Detallada al Proyecto OpenAI Agents Python

Resumen del Proyecto

El SDK de OpenAI Agents es un framework ligero y potente en Python para la construcción de flujos de trabajo multi-agente. Es la herramienta de desarrollo de agentes de nivel de producción lanzada oficialmente por OpenAI, una actualización del proyecto experimental anterior Swarm. Este framework está diseñado para ser simple pero completo, especializado en la construcción de aplicaciones de IA multi-agente complejas.

Características Principales

1. Compatibilidad Multiplataforma

  • Independencia del Modelo: Soporta las APIs Responses y Chat Completions de OpenAI.
  • Amplia Compatibilidad: Soporta más de 100 modelos de lenguaje grandes diferentes.
  • Flexibilidad de la API: Permite cambiar fácilmente entre diferentes proveedores de servicios de IA.

2. Componentes Centrales

Agentes (Agents)

  • Instancias LLM configuradas con instrucciones, herramientas, protecciones de seguridad y mecanismos de traspaso.
  • Cada agente tiene responsabilidades y límites de capacidad definidos.
  • Soporta instrucciones y patrones de comportamiento personalizados.

Mecanismos de Traspaso (Handoffs)

  • Mecanismo especializado de llamada a herramientas para transferir el control entre agentes.
  • Permite una colaboración fluida entre agentes.
  • Soporta la orquestación de flujos de trabajo complejos.

Protecciones de Seguridad (Guardrails)

  • Verificaciones de seguridad configurables de entrada y salida.
  • Garantiza la seguridad y fiabilidad de las aplicaciones de IA.
  • Previene entradas maliciosas y salidas inapropiadas.

Seguimiento de Procesos (Tracing)

  • Función integrada de seguimiento de la ejecución del agente.
  • Permite ver, depurar y optimizar el flujo de trabajo.
  • Sistema de seguimiento extensible que soporta múltiples integraciones externas.

Arquitectura Técnica

Instalación y Configuración

# Crear un entorno virtual de Python
python -m venv env
source env/bin/activate

# Instalar la versión básica
pip install openai-agents

# Instalar la versión con soporte de voz
pip install 'openai-agents[voice]'

Ejemplos de Uso Básico

Agente Simple

from agents import Agent, Runner

agent = Agent(name="Assistant", instructions="You are a helpful assistant")
result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
print(result.final_output)

Agente de Colaboración Multilingüe

from agents import Agent, Runner
import asyncio

spanish_agent = Agent(
    name="Spanish agent",
    instructions="You only speak Spanish.",
)

english_agent = Agent(
    name="English agent", 
    instructions="You only speak English",
)

triage_agent = Agent(
    name="Triage agent",
    instructions="Handoff to the appropriate agent based on the language of the request.",
    handoffs=[spanish_agent, english_agent],
)

async def main():
    result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?")
    print(result.final_output)

if __name__ == "__main__":
    asyncio.run(main())

Ejemplo de Llamada a Herramientas

import asyncio
from agents import Agent, Runner, function_tool

@function_tool
def get_weather(city: str) -> str:
    return f"The weather in {city} is sunny."

agent = Agent(
    name="Weather Assistant",
    instructions="You are a helpful weather agent.",
    tools=[get_weather],
)

async def main():
    result = await Runner.run(agent, input="What's the weather in Tokyo?")
    print(result.final_output)

if __name__ == "__main__":
    asyncio.run(main())

Mecanismo de Ejecución del Flujo de Trabajo

Lógica del Bucle de Ejecución

  1. Llamada LLM: Utiliza el modelo y la configuración del agente, combinados con el historial de mensajes para realizar la llamada.
  2. Procesamiento de la Respuesta: LLM devuelve una respuesta, que puede contener llamadas a herramientas.
  3. Verificación de la Salida: Si hay una salida final, la devuelve y finaliza el bucle.
  4. Procesamiento del Traspaso: Si hay una solicitud de traspaso, cambia al nuevo agente y reinicia.
  5. Ejecución de la Herramienta: Procesa la llamada a la herramienta y añade la respuesta al mensaje, luego reinicia el bucle.

Mecanismo de Salida Final

  • Salida Estructurada: Si se establece output_type, finaliza cuando LLM devuelve contenido que coincide con el tipo.
  • Salida de Texto: Si no hay output_type, finaliza cuando el agente produce un mensaje sin llamadas a herramientas ni traspasos.

Sistema de Herramientas

Soporte para Tres Tipos de Herramientas

1. Herramientas Alojadas (Hosted Tools)

  • Se ejecutan en el servidor LLM.
  • OpenAI proporciona herramientas alojadas como recuperación, búsqueda web y uso de la computadora.

2. Llamada a Funciones (Function Calling)

  • Soporta el uso de cualquier función de Python como herramienta.
  • Desarrollo flexible de herramientas personalizadas.

3. Agentes como Herramientas

  • Permite que un agente llame a otros agentes.
  • Soporta estructuras de colaboración jerárquicas complejas.

Herramientas Integradas

  • WebSearchTool: Función de búsqueda web.
  • Computer Use: Capacidad de operación de la computadora.
  • Retrieval: Función de recuperación de información.

Seguimiento y Monitorización

Función de Seguimiento Automático

  • Realiza un seguimiento automático del proceso de ejecución del agente.
  • Facilita la depuración y optimización del flujo de trabajo.
  • Diseño extensible que soporta spans personalizados.

Soporte para Integración Externa

  • Logfire: Gestión de registros.
  • AgentOps: Monitorización de operaciones del agente.
  • Braintrust: Plataforma de desarrollo de aplicaciones de IA.
  • Scorecard: Evaluación del rendimiento.
  • Keywords AI: Integración de Keywords AI.

Escenarios de Aplicación

Escenarios Aplicables

  • Automatización de Procesos de Negocio Complejos: Procesos de negocio de varios pasos.
  • Sistema de Atención al Cliente Multilingüe: Soporta atención al cliente inteligente en diferentes idiomas.
  • Asistentes de Dominio Profesional: Asistentes de IA en áreas profesionales como derecho, medicina y educación.
  • Tuberías de Procesamiento de Datos: Análisis y procesamiento de datos en múltiples etapas.
  • Sistema de Colaboración Creativa: Múltiples roles de IA colaboran para completar tareas creativas.

Patrones de Flujo de Trabajo

  • Proceso Determinista: Pasos de flujo de trabajo predefinidos.
  • Bucle Iterativo: Tareas que requieren múltiples iteraciones de optimización.
  • Bifurcación Condicional: Selección de diferentes rutas de procesamiento según las condiciones.
  • Procesamiento Paralelo: Múltiples agentes procesan diferentes tareas simultáneamente.

Entorno de Desarrollo

Requisitos de Desarrollo

  • Python 3.8+
  • Requiere establecer la variable de entorno OPENAI_API_KEY.
  • Soporta métodos de llamada asíncronos y síncronos.

Cadena de Herramientas de Desarrollo

# Instalar el gestor de paquetes uv
uv --version

# Instalar dependencias
make sync

# Ejecutar pruebas
make tests

# Comprobación de tipos
make mypy

# Comprobación de normas de código
make lint

Ventajas del Proyecto

1. Diseño Sencillo

  • Mínimos niveles de abstracción.
  • Conceptos centrales claros y definidos.
  • Fácil de entender y usar.

2. Listo para Producción

  • Construido sobre la base de la experiencia real de OpenAI.
  • Diseño de API estable y fiable.
  • Mecanismo completo de manejo de errores.

3. Altamente Flexible

  • Soporta el modelado de relaciones complejas entre agentes.
  • Puede expresar varios patrones de flujo de trabajo.
  • Potente capacidad de personalización.

Resumen

OpenAI Agents Python es un framework de desarrollo multi-agente de nivel profesional que simplifica la colaboración compleja de la IA. A través de sus mecanismos centrales de agentes, traspasos, protecciones y seguimiento, los desarrolladores pueden construir rápidamente sistemas de aplicaciones de IA potentes. Ya sean tareas simples de un solo agente o escenarios complejos de colaboración multi-agente, este framework proporciona una solución elegante.