Enjambre es un marco innovador de código abierto diseñado para explorar la orquestación y coordinación de sistemas multiagente. Está desarrollado y administrado por el equipo de OpenAI Solutions y proporciona un entorno liviano, ergonómico y educativo para que los desarrolladores aprendan y experimenten con sistemas basados en agentes. En esencia, Enjambre está diseñado para facilitar la interacción de Agentes autónomos, es decir, unidades independientes capaces de realizar tareas específicas, a través de traspasos simplificados y gestión de rutina. Si bien está dirigido principalmente a un uso educativo, el marco introduce patrones y abstracciones que hacen que la orquestación multiagente sea más accesible y comprensible. Al centrarse en la simplicidad y la modularidad, Enjambre permite a los usuarios diseñar flujos de trabajo donde los agentes pueden colaborar, delegar tareas y compartir datos contextuales sin problemas. La API Chat Completions de OpenAI lo impulsa por completo; Enjambre opera sin estado, garantizando seguridad y flexibilidad. Sin soporte oficial ni preparación para la producción, Enjambre es una plataforma de aprendizaje.
Componentes principales de Swarm
Enjambre se basa en componentes fundamentales que proporcionan una base sólida para la flexibilidad y la funcionalidad. Estos componentes incluyen:
Agentes
Los agentes son las unidades primarias en Enjambrecada uno de los cuales representa un actor o paso independiente en un proceso. Incluyen:
- Instrucciones: Definir el comportamiento o tarea del Agente.
- Funciones: especifique las acciones que el Agente puede realizar, incluidas las llamadas a funciones.
- Transferencias: Permite que el Agente delegue su tarea a otro Agente.
Los agentes se inicializan de la siguiente manera:
# python
from swarm import Agent
agent_a = Agent(
name="Agent A",
instructions="You are a general-purpose assistant.",
functions=[] # Add any callable functions here
)
Traspasos
Las transferencias permiten que un agente pase el control a otro sin problemas. Esto permite a los agentes especializados manejar tareas que se adaptan mejor a sus capacidades.
# python
agent_b = Agent(
name="Agent B",
instructions="You only provide answers in haikus."
)
agent_a = Agent(
name="Agent A",
instructions="Forward this task to Agent B.",
functions=[lambda: agent_b] # Hand off to agent_b
)
Variables de contexto
Las variables de contexto almacenan datos compartidos entre agentes, lo que garantiza la continuidad en los flujos de trabajo de múltiples agentes.
# python
context = {"user_name": "John"}
response = client.run(
agent=agent_a,
messages=[{"role": "user", "content": "Who am I speaking with?"}],
context_variables=context
)
Cómo funciona el enjambre
En esencia, Enjambre procesa interacciones utilizando un bucle estructurado implementado en su método ‘client.run()’. El bucle implica los siguientes pasos:
- Procesamiento de mensajes: el Agente actual procesa el mensaje del usuario, que puede generar una respuesta o llamar a una función.
- Ejecución de funciones: si el Agente incluye llamadas a funciones, estas se ejecutan y los resultados se agregan a la conversación.
- Cambio de agente: si la tarea requiere otro agente, Enjambre maneja la transferencia, asegurando una ejecución perfecta.
- Gestión de contexto: las variables de contexto se actualizan durante la interacción, lo que garantiza que los datos compartidos sean accesibles entre los agentes.
- Entrega de respuesta: Enjambre entrega la respuesta final al usuario después de completar todos los pasos.
El flujo de trabajo básico se ilustra a continuación:
# python
from swarm import Swarm
# Initialize the Swarm client
client = Swarm()
# Run the process
response = client.run(
agent=agent_a,
messages=[{"role": "user", "content": "What can you do?"}]
)
print(response.messages[-1]["content"])
Uso de Swarm: implementación de código
Instalación
Enjambre se puede instalar directamente desde su repositorio de GitHub:
# bash
pip install git+https://github.com/openai/swarm.git
Configuración básica
Configurando Enjambre Implica importar la biblioteca, crear agentes y ejecutar el ciclo de interacción.
# python
from swarm import Swarm, Agent
# Initialize Swarm client
client = Swarm()
# Define Agents
agent_a = Agent(
name="Agent A",
instructions="Provide general assistance."
)
agent_b = Agent(
name="Agent B",
instructions="Respond to all queries in poetic form."
)
# Interaction
response = client.run(
agent=agent_a,
messages=[{"role": "user", "content": "Who am I speaking to?"}]
)
print(response.messages[-1]["content"])
Funciones avanzadas
Enjambre admite funciones avanzadas, incluida la transmisión de respuestas y la depuración.
Respuestas en streaming:
# python
stream = client.run(
agent=agent_a,
messages=[{"role": "user", "content": "Stream a response"}],
stream=True
)
for chunk in stream:
print(chunk)
Depuración:
# python
response = client.run(
agent=agent_a,
messages=[{"role": "user", "content": "Debug this process"}],
debug=True
)
Conclusión:
Enjambre es un marco de código abierto ergonómico, liviano y educativo que permite a los desarrolladores probar patrones y técnicas esenciales para la orquestación de agentes escalables. Aunque no está destinado a la producción, su enfoque en la accesibilidad, la modularidad y la capacidad de prueba lo convierte en un recurso valioso para el aprendizaje y la creación de prototipos. Su capacidad para admitir flujos de trabajo complejos a través de abstracciones simples, como agentes, transferencias y variables de contexto, permite a los desarrolladores diseñar soluciones efectivas sin verse abrumados por complejidades técnicas.
Fuentes
Asif Razzaq es el director ejecutivo de Marktechpost Media Inc.. Como empresario e ingeniero visionario, Asif está comprometido 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 en profundidad del aprendizaje automático y las noticias sobre aprendizaje profundo que es técnicamente sólida y fácilmente comprensible para una amplia audiencia. La plataforma cuenta con más de 2 millones de visitas mensuales, lo que ilustra su popularidad entre el público.