Cómo construir un sistema de respuesta a incidentes de múltiples agentes listo para producción utilizando OpenAI Swarm y agentes mejorados con herramientas

En este tutorial, creamos un sistema multiagente avanzado pero práctico utilizando OpenAI Swarm que se ejecuta en Colab. Demostramos cómo podemos orquestar agentes especializados, como un agente de clasificación, un agente SRE, un agente de comunicaciones y un crítico, para manejar de forma colaborativa un escenario de incidente de producción del mundo real. Al estructurar las transferencias de agentes, integrar herramientas livianas para la recuperación de conocimientos y la clasificación de decisiones, y mantener la implementación limpia y modular, mostramos cómo Swarm nos permite diseñar flujos de trabajo agentes controlables sin marcos pesados ​​ni infraestructura compleja. Consulta los CÓDIGOS COMPLETOS AQUÍ.

!pip -q install -U openai !pip -q install -U “git+https://github.com/openai/swarm.git” import os def load_openai_key(): prueba: desde google.colab import userdata key = userdata.get(“OPENAI_API_KEY”) excepto excepción: key = Ninguno si no es key: import getpass key = getpass.getpass(“Ingrese OPENAI_API_KEY (oculto): “).strip() si no es clave: generar RuntimeError(“OPENAI_API_KEY no proporcionada”) devolver clave os.environ[“OPENAI_API_KEY”] = cargar_openai_key()

Configuramos el entorno y cargamos de forma segura la clave API de OpenAI para que el portátil pueda ejecutarse de forma segura en Google Colab. Nos aseguramos de que la clave se obtenga de los secretos de Colab cuando esté disponible y, de lo contrario, recurriremos a un mensaje oculto. Esto mantiene la autenticación simple y reutilizable entre sesiones. Consulta los CÓDIGOS COMPLETOS AQUÍ.

importar json importar re desde escribir lista de importación, dictar desde enjambre importar enjambre, cliente de agente = enjambre ()

Importamos las utilidades principales de Python e inicializamos el cliente Swarm que organiza todas las interacciones de los agentes. Este fragmento establece la columna vertebral del tiempo de ejecución que permite a los agentes comunicarse, transferir tareas y ejecutar llamadas a herramientas. Sirve como punto de entrada para el flujo de trabajo de múltiples agentes. Consulta los CÓDIGOS COMPLETOS AQUÍ.

KB_DOCS = [
{
“id”: “kb-incident-001”,
“title”: “API Latency Incident Playbook”,
“text”: “If p95 latency spikes, validate deploys, dependencies, and error rates. Rollback, cache, rate-limit, scale. Compare p50 vs p99 and inspect upstream timeouts.”
},
{
“id”: “kb-risk-001”,
“title”: “Risk Communication Guidelines”,
“text”: “Updates must include impact, scope, mitigation, owner, and next update. Avoid blame and separate internal vs external messaging.”
},
{
“id”: “kb-ops-001”,
“title”: “On-call Handoff Template”,
“text”: “Include summary, timeline, current status, mitigations, open questions, next actions, and owners.”
},
]

def _normalize(s: str) -> Lista[str]: devolver re.sub(r”[^a-z0-9\s]”, ” “, s.lower()).split() def search_kb(query: str, top_k: int = 3) -> str: q = set(_normalize(query)) scoring = []
para d en KB_DOCS: puntuación = len(q.intersection(set(_normalize(d[“title”] + ” ” + d[“text”])))) anotado.append((puntuación, d)) anotado.sort(clave=lambda x: x[0]reverso=Verdadero) documentos = [d for s, d in scored[:top_k] si s > 0]o [scored[0][1]]devolver json.dumps(docs, sangría=2)

Definimos una base de conocimiento interna liviana e implementamos una función de recuperación para mostrar el contexto relevante durante el razonamiento del agente. Al utilizar coincidencias simples basadas en tokens, permitimos a los agentes fundamentar sus respuestas en documentos operativos predefinidos. Esto demuestra cómo se puede aumentar Swarm con memoria específica de dominio sin dependencias externas. Consulta los CÓDIGOS COMPLETOS AQUÍ.

def estimación_mitigación_impact(options_json: str) -> str: intente: opciones = json.loads(options_json) excepto Excepción como e: return json.dumps({“error”: str(e)}) clasificación = []
para o en opciones: conf = float(o.get(“confianza”, 0.5)) riesgo = o.get(“riesgo”, “medio”) penalización = {“bajo”: 0.1, “medio”: 0.25, “alto”: 0.45}.get(riesgo, 0.25) ranking.append({ “opción”: o.get(“opción”), “confianza”: conf, “riesgo”: riesgo, “puntuación”: round(conf – penalización, 3) }) ranking.sort(key=lambda x: x[“score”]reverso=Verdadero) devuelve json.dumps(clasificación, sangría=2)

Presentamos una herramienta estructurada que evalúa y clasifica las estrategias de mitigación en función de la confianza y el riesgo. Esto permite a los agentes ir más allá del razonamiento libre y producir decisiones semicuantitativas. Mostramos cómo las herramientas pueden imponer coherencia y disciplina en las decisiones en los resultados de los agentes. Consulta los CÓDIGOS COMPLETOS AQUÍ.

def handoff_to_sre(): devolver sre_agent def handoff_to_comms(): devolver comms_agent def handoff_to_handoff_writer(): devolver handoff_writer_agent def handoff_to_critic(): devolver critic_agent

Definimos funciones de transferencia explícitas que permiten a un agente transferir el control a otro. Este fragmento ilustra cómo modelamos la delegación y la especialización dentro de Swarm. Hace que el enrutamiento de agente a agente sea transparente y fácil de ampliar. Consulta los CÓDIGOS COMPLETOS AQUÍ.

triage_agent = Agente( name=”Triage”, model=”gpt-4o-mini”, instrucciones=””” Decida qué agente debe manejar la solicitud. Utilice SRE para responder a incidentes. Utilice Comms para mensajes de clientes o ejecutivos. Utilice HandoffWriter para notas de guardia. Utilice Critic para revisión o mejora. “””, funciones=[search_kb, handoff_to_sre, handoff_to_comms, handoff_to_handoff_writer, handoff_to_critic]
) sre_agent = Agente( name=”SRE”, model=”gpt-4o-mini”, instrucciones=””” Produzca una respuesta estructurada ante incidentes con pasos de clasificación, mitigaciones clasificadas, hipótesis clasificadas y un plan de 30 minutos. “””, funciones=[search_kb, estimate_mitigation_impact]
) comms_agent = Agente( nombre=”Comms”, modelo=”gpt-4o-mini”, instrucciones=””” Producir una actualización de cliente externa y una actualización técnica interna. “””, funciones=[search_kb]
) handoff_writer_agent = Agente( name=”HandoffWriter”, model=”gpt-4o-mini”, instrucciones=””” Produzca un documento de transferencia de guardia limpio con encabezados estándar. “””, funciones=[search_kb]
) critic_agent = Agente( nombre=”Crítico”, modelo=”gpt-4o-mini”, instrucciones=””” Critica la respuesta anterior, luego produce una versión final refinada y una lista de verificación. “”” )

Configuramos múltiples agentes especializados, cada uno con una responsabilidad y un conjunto de instrucciones claramente definidos. Al separar la clasificación, la respuesta a incidentes, las comunicaciones, la redacción de traspasos y la crítica, demostramos una división clara del trabajo. Consulta los CÓDIGOS COMPLETOS AQUÍ.

def run_pipeline(user_request: str): mensajes = [{“role”: “user”, “content”: user_request}]
r1 = cliente.ejecutar(agente=triage_agent, mensajes=mensajes, max_turns=8) mensajes2 = r1.messages + [{“role”: “user”, “content”: “Review and improve the last answer”}]
r2 = client.run(agente=critic_agent, mensajes=mensajes2, max_turns=4) devuelve r2.messages[-1][“content”]

request = “”” La latencia de producción de p95 aumentó de 250 ms a 2,5 s después de una implementación. Los errores aumentaron ligeramente, la CPU de base de datos se mantuvo estable, los tiempos de espera ascendentes aumentaron. Proporcionar un plan de acción de 30 minutos y una actualización para el cliente. “”” print(run_pipeline(request))

Montamos el proceso de orquestación completo que ejecuta la clasificación, el razonamiento especializado y el refinamiento crítico en secuencia. Este fragmento muestra cómo ejecutamos el flujo de trabajo de un extremo a otro con una única llamada a función. Reúne a todos los agentes y herramientas en un sistema agente coherente de estilo de producción.

En conclusión, establecimos un patrón claro para diseñar sistemas orientados a agentes con OpenAI Swarm que enfatiza la claridad, la separación de responsabilidades y el refinamiento iterativo. Mostramos cómo enrutar tareas de manera inteligente, enriquecer el razonamiento de los agentes con herramientas locales y mejorar la calidad de los resultados a través de un bucle crítico, todo ello manteniendo una configuración sencilla y compatible con Colab. Este enfoque nos permite escalar desde la experimentación hasta casos de uso operativos reales, lo que convierte a Swarm en una base poderosa para crear flujos de trabajo de IA agentes confiables y de grado de producción.

Consulta los CÓDIGOS COMPLETOS AQUÍ. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 100.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.

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.