Construyendo un sistema multiagente en Python

son la comidilla de la ciudad. Los vemos en todas partes, incluso utilizándolos para las tareas más simples en nuestros teléfonos. Son convenientes, rápidos y bastante confiables, y nos ayudan a navegar la vida diaria. Si desea una explicación sencilla de un concepto científico, pregúntele a ChatGPT. Quiere una guía para el plan de dieta de su niño quisquilloso, así que pregúntele a AI. Incluso la tarea de planificar su viaje completo se puede delegar a la IA. Y esto es exactamente lo que vamos a hacer en este tutorial (¡estén atentos!).

Sabemos acerca de los agentes de IA, pero ¿qué pasaría si pudiéramos crear y utilizar diferentes agentes de IA para diferentes funciones en un proyecto más grande? Aquí es donde entra en juego el concepto de sistema multiagente. A medida que las aplicaciones de IA se vuelven más avanzadas, pasamos de modelos únicos de IA que responden preguntas simples y realizan tareas sencillas a sistemas en los que múltiples agentes de IA trabajan juntos para resolver problemas complejos. Un sistema multiagente (MAS) es un concepto en el que varios agentes de IA colaboran entre sí para cumplir un objetivo mayor. Cada uno de ellos tiene un papel específico que conduce al objetivo final y lo logran con la colaboración mutua.

Un sistema de planificación de viajes de múltiples agentes

En este proyecto, construiremos un sistema de planificación de viajes para múltiples agentes. Básicamente, lo que tendremos es que en lugar de un solo agente de IA que planificará nuestros viajes, tendremos un equipo de agentes de IA, cada uno con una función específica, y trabajarán entre sí para crear el plan de viaje perfecto para nosotros.

Podemos pensar en un Sistema de Planificación de Viajes Multi-Agente como una agencia de viajes real. En lugar de que una sola persona se encargue de todo, diferentes expertos se encargarán de diferentes tareas según su experiencia y trabajarán juntos. Para nuestro AI Travel Planner, contaremos con los siguientes agentes:

Agentes de IA en nuestro proyecto (Imagen del autor)

Agente de investigación de viajes: este agente realizará las tareas de investigación. Explorará el destino al que el cliente quiere ir y encontrará atracciones, lugares escondidos, experiencias locales, consejos de viaje, etc. Recogerá la información básica necesaria para planificar el viaje. Agente de planificación de actividades: este agente planificará actividades basadas en la investigación del Agente de investigación. ¡Será él quien decida qué lugar visitar, cuándo visitarlo, qué actividades realizar y cómo organizar todo el viaje! Agente de presupuesto: este agente es responsable de realizar un presupuesto adecuado. Analizará el plan compartido por el Agente de planificación de actividades y compartirá los costos esperados, las opciones asequibles, los consejos para ahorrar dinero y ayudará a personalizar el viaje según el presupuesto del cliente. Asistente de viaje final: por último, el asistente de viaje final combinará los resultados de los tres agentes: la investigación, el plan de actividades y el presupuesto, ¡y creará un itinerario de viaje simple y personalizado!

Así es como se verá el flujo de trabajo general de todo el proyecto:

Flujo de trabajo del proyecto (imagen del autor)

Construiremos este proyecto en Python, usando PyCharm IDE. Este es un proyecto de Python de nivel intermedio que requiere una comprensión básica de los agentes de IA en Python, así como un conocimiento preliminar de programación orientada a objetos, ya que crearemos clases. Si es nuevo en Python y Agentic AI, puede acceder a mi tutorial de AI Agent para principiantes desde el siguiente enlace:

La guía definitiva para principiantes para crear un agente de IA en Python

Si desea aprender sobre Python OOP, puede leer los siguientes artículos donde creé una máquina de café en Python y luego, en el siguiente tutorial, utilicé el concepto de OOP para optimizar el código:

Implementando la máquina de café en Python

Implementación del proyecto Coffee Machine en Python mediante programación orientada a objetos

Todos estos artículos le brindarán una comprensión básica del código Python y, a su vez, lo ayudarán a comprender el código incluido en este interesante proyecto. ¡Comencemos a codificar el proyecto!

Creando el proyecto

Lo primero es crear la carpeta del proyecto en PyCharm (o IDE de su elección) y nombrar el proyecto "Sistema multiagente" (o cualquier cosa que elija).

Creando el proyecto (Imagen del autor)

Instalación e importación de paquetes de Python

Una vez creada la carpeta del proyecto, continúe y cree un archivo "main.py" donde haremos nuestra codificación. En la terminal, instale OpenAI y luego impórtelo a su archivo de codificación.

instalación de pip en openai

Creación de carpeta, archivo Python, instalación e importación de OpenAI (imagen del autor)

desde openai importar OpenAI

Conectando Python con el modelo de IA

Para que nuestro programa se comunique con OpenAI y procese el código, debemos conectarlo a la plataforma de IA. En nuestro caso, usaremos OpenRouter.ai y agregaremos su URL. También agregaremos la clave API a nuestro código, guardándola en la variable api_key. Esta clave API le dará a nuestro programa el permiso necesario para utilizar modelos de IA. Crearemos un cliente que se comunicará con el modelo de IA utilizando la clave API que creamos:

cliente = OpenAI( base_url="https://openrouter.ai/api/v1", api_key="SU CLAVE API" )

Una vez que cree una clave API en OpenRouter.ai, no la comparta con nadie. Simplemente agréguelo en lugar de "SU CLAVE API".

Creando la clase de agente

Ahora viene la parte de codificar los agentes de IA. Dado que no crearemos solo uno o dos agentes, no codificaremos directamente. Más bien, usaremos el concepto de programación orientada a objetos y crearemos una clase (o un modelo en palabras sencillas) de la categoría de agente, y luego usaremos este modelo para crear cada agente individual más adelante. El agente almacenará el nombre que lo identifica y el rol que le indica a la IA cómo debe comportarse el agente. Además, también crearemos una ejecución de función que les dará a nuestros agentes de IA la capacidad de trabajar, es decir, enviar tareas al modelo de IA.

clase Agente: def __init__(self, nombre, rol): self.name = nombre self.role = rol def run(self, tarea): print(f"{self.name} está funcionando…") respuesta = client.chat.completions.create( model="gpt-4.1-mini", mensajes=[ { "role": "system", "content": self.role }, { "role": "user", "content": task } ], max_tokens=1200) devuelve respuesta.opciones[0].mensaje.contenido

El código anterior enviará las dos cosas siguientes al modelo de IA (que también hemos especificado):

El trabajo/rol del agente respectivo. El mensaje de usuario tomado como entrada del usuario (como verá más adelante).

Obtendremos la respuesta AI de este bloque de código con el siguiente código de retorno respuesta.opciones[0].contenido.del.mensaje. Esta declaración de devolución extraerá la respuesta generada por el agente (si le resulta difícil entender este código, consulte mi artículo de la guía para principiantes de AI Agent vinculado al principio de este artículo).

Crear objetos de agente

Ahora que nuestra clase de agente está creada, usaremos este modelo para crear nuestros agentes de IA individuales. El siguiente código utiliza el concepto de programación orientada a objetos para crear objetos de agente, a saber:

Agente de investigación Agente de actividad Agente de presupuesto Agente final research_agent = Agente( "Agente de investigación", """ Eres un experto investigador de viajes. Tu trabajo: – Encuentra atracciones populares – Encuentra gemas ocultas – Sugiere experiencias locales – Recomenda los mejores lugares """ ) Activity_agent = Agente( "Agente planificador de actividades", """ Eres un planificador de viajes profesional. Tu trabajo: – Crea actividades diarias – Planifica visitas turísticas – Recomenda experiencias gastronómicas – Organiza actividades lógicamente """ ) Budget_agent = Agente( "Agente de presupuesto", """ Eres un experto en presupuestos de viajes. Calcula: – Costo estimado de vuelo – Requisitos de visa – Tarifas de visa si es necesario – Costo de hotel – Gastos de comida – Costo de transporte – Costos de actividades Crea un presupuesto total aproximado del viaje. Mantén la respuesta breve. """ ) final_agent = Agente( "Asistente de viaje final", """ Eres un planificador de viajes profesional. Crea el itinerario final. Incluye: 1. Resumen breve del viaje 2. Información de visa 3. Costo estimado del vuelo 4. Por día plan 5. Sugerencias de alimentos 6. Presupuesto total estimado Mantenga todo por debajo de 700 palabras """ )

Este código creará agentes de IA individuales con roles específicos como se menciona en el código. El rol le dice al modelo de IA cómo debe comportarse y en qué tarea debe centrarse.

Entrada del usuario

La siguiente tarea es obtener la información del usuario. Le haremos al usuario las siguientes preguntas:

Desde dónde vuelan Allí vuelan Número de días del viaje Número de viajeros Intereses #Obtener detalles del viaje del usuario ubicación_inicial = input( "¿Desde dónde vuelas? " ) destino = input( "¿Adónde quieres viajar?" ) días = input( "¿Cuántos días dura tu viaje? " ) viajeros = input( "¿Cuántos viajeros? " ) presupuesto = input( "¿Cuál es tu presupuesto? (bajo/medio/alto) " ) intereses = input( "¿Cuáles son tus intereses? " )

Creando la solicitud de usuario

Después de recopilar información del usuario a través de las declaraciones de entrada, combinamos todo en un solo mensaje y se lo pasamos a los agentes de IA.

# Crear solicitud para agentes de IA user_request = f""" Cree un plan de viaje con estos detalles: Volando desde: {ubicación_inicial} Destino: {destino} Duración del viaje: {días} días Número de viajeros: {viajeros} Nivel de presupuesto: {presupuesto} Intereses: {intereses} Incluye: – Requisitos de visa – Costo estimado del vuelo – Lugares para visitar – Actividades – Recomendaciones de comida – Presupuesto total estimado """ print("nCreando su plan de viaje de IA…n")

Mientras la IA se ejecuta en el backend, imprimiremos la declaración "Creando su plan de viaje de IA", para que el usuario sepa que el proceso se está ejecutando y los agentes han comenzado a trabajar.

Flujo de trabajo de múltiples agentes

Ahora que hemos creado la solicitud del usuario, dándole todos los detalles que hemos obtenido del usuario, pongamos en marcha el sistema multiagente. Cada agente completa una tarea y pasa su resultado al siguiente agente.

Los detalles del viaje del usuario se envían primero al agente de investigación. Este agente le pide al modelo de IA que encuentre los mejores lugares para visitar, experiencias locales e información de viajes. El resultado se almacena en la investigación. El resultado de la investigación se convierte en el insumo para el Agente de Actividad. Convierte información de viajes en actividades diarias, planes turísticos e ideas gastronómicas. El resultado se guarda en actividades. Luego viene el Agente de Presupuesto que recibe las actividades planificadas y estima los costos de vuelos, visas, hoteles, transporte, etc. El resultado se almacena en el presupuesto. El agente de viajes final recibe información de todos los agentes anteriores y combina todo en un itinerario de viaje completo, que luego se envía al usuario.

#Flujo de trabajo multiagente #El Agente 1 investiga el destino investigación = research_agent.run( user_request ) print("n— Investigación completada —") #El Agente 2 crea actividades actividades = actividad_agent.run( investigación ) print("n— Actividades planificadas —") #El Agente 3 calcula el presupuesto presupuesto = Budget_agent.run( actividades ) print("n— Presupuesto creado —") #El Agente 4 crea el final itinerario final_plan = final_agent.run( f""" Investigación: {investigación} Actividades: {actividades} Presupuesto: {presupuesto} Crear plan de viaje final. """ ) print("n===========================") print(" PLAN DE VIAJE FINAL") imprimir("===========================n") imprimir(plan_final)

Ejecutando el código

Al ejecutar el código, puede ver que el programa solicita la entrada del usuario. Puede agregar sus datos específicos, respondiendo las preguntas. En base a estas respuestas, el equipo de agentes de IA elaborará su itinerario de viaje.

Ejecutando el código (Imagen del autor)

"C:UsersMahnoor JavedPycharmProjectsMulti Agent System.venvScriptspython.exe" "C:UsersMahnoor JavedPycharmProjectsMulti Agent Systemmain.py" ¿Desde dónde vuelas? Islamabad ¿Adónde quieres viajar? Estambul ¿Cuántos días dura tu viaje? 3 ¿Cuántos viajeros? 4 ¿Cuál es tu presupuesto? (bajo/medio/alto) $4k ¿Cuáles son sus intereses? niño frinedly Creando su plan de viaje de IA… El agente de investigación está trabajando… — Investigación completada — El agente planificador de actividades está trabajando… — Actividades planificadas — El agente de presupuesto está trabajando… — Presupuesto creado — El asistente de viaje final está trabajando… =========================== PLAN DE VIAJE FINAL =========================== ### 3 días Itinerario familiar: de Islamabad a Estambul — #### Descripción general del viaje Descubra la cautivadora combinación de historia, cultura y diversión familiar de Estambul en este viaje de 3 días desde Islamabad. Explore lugares emblemáticos como Hagia Sophia y el Palacio de Topkapi, sumérjase en experiencias interactivas en el Acuario de Estambul y KidZania, y relájese en hermosos parques y bulliciosos bazares. Este itinerario equilibra el descubrimiento cultural con actividades atractivas perfectas para niños, lo que garantiza recuerdos para toda la familia. — #### Información de visa – **Para ciudadanos paquistaníes:** Se requiere visa electrónica turca – **Solicitud:** Solicite en línea antes de viajar en [sitio web oficial de e-Visa Turquía] – **Costo:** Aprox. $50 por persona – **Tiempo de procesamiento:** Generalmente 24-48 horas – **Consejo:** Lleve una copia impresa o electrónica de la visa electrónica durante el viaje. — #### Costo estimado del vuelo – **Ruta:** Islamabad (ISB) – Estambul (IST) ida y vuelta – **Costo:** $350 – $450 por persona en clase económica – **Para 4 viajeros:** Aprox. $1,400 – $1,800 en total – **Consejo:** Reserve con 2 o 3 meses de anticipación para asegurar mejores ofertas. — ### Itinerario del día **Día 1: Lugares históricos e icónicos** – **Mañana:** – Llegada a Estambul, traslado y registro en un hotel familiar cerca de Sultanahmet. – Visita **Hagia Sophia**, sumergiéndote en la grandeza de este emblemático monumento. – Camine hasta el **Palacio de Topkapi**, explorando amplios jardines y espacios aptos para niños. – **Tarde:** – Relájate y juega en la **Plaza Sultanahmet**; los niños disfrutan de un amplio espacio abierto. – Súbete al nostálgico **tranvía de Sultanahmet** para dar un encantador paseo por el distrito histórico. – **Noche:** – Disfrute de un **crucero con cena por el Bósforo** que ofrece entretenimiento familiar y actividades para niños junto con deliciosa cocina turca. — **Día 2: Exploración y diversión interactiva** – **Mañana:** – Visite el **Acuario de Estambul (Florya)** para ver la diversa vida marina, tocar piscinas y zonas temáticas. – Almuerzo en la cafetería familiar del acuario o en el cercano **Forum Istanbul Mall**. – **Tarde:** – Interactúa y juega en **KidZania Estambul** dentro del centro comercial donde los niños interpretan profesiones y aprenden a través de la diversión. – Disfrute de los parques infantiles del centro comercial y de los refrigerios. – **Noche:** – Pruebe el famoso **Maraş dondurma** (helado turco) con entretenidos espectáculos de vendedores. – Paseo tranquilo por el centro comercial o el parque antes de regresar al hotel. — **Día 3: Parques, museos, mercados y sabores locales** – **Mañana:** – Picnic y tiempo de juego en el **Parque Gülhane** con paseos en pony para niños. – Explora el **Museo Rahmi M. Koç** que presenta exhibiciones interactivas que incluyen vehículos, juguetes y un submarino. – **Tarde:** – Visita breve al **Gran Bazar** centrada en tiendas de souvenirs para niños. – Pruebe la comida callejera local: **simit** (rosquillas de sésamo) y **gözleme** (crepes saladas). – **Noche:** – Cena en **Çiya Sofrası** para disfrutar de platos tradicionales suaves o prueba **Saray Muhallebicisi** para disfrutar de auténticos postres turcos como el sütlaç (arroz con leche). — ### Sugerencias de comida – **Çiya Sofrası (Kadıköy):** Auténtico turco con opciones para niños – **Saray Muhallebicisi:** Postres tradicionales perfectos para delicias familiares – **Midpoint/Cookshop:** Cena informal con menús locales e internacionales adecuados para niños – **Comida callejera:** Pruebe simit, lahmacun (pizza turca) y pasteles borek en vendedores locales — ### Presupuesto estimado (4 personas) | Categoría | Costo estimado (USD) | |———————|——————————-| | Vuelos (ida y vuelta) | $1,400 – $1,800 | | Tarifas de Visa | $200 | | Alojamiento (3 noches) | $600 – $800 | | Comida | $300 – $400 | | Transporte (Estambulkart, taxis) | $100 | | Tarifas de entrada y actividades| $300 | | Varios | $200 | | **Estimación total** | **~$3,100 – $3,800** | *Nota: El presupuesto puede variar según la elección del hotel y las preferencias gastronómicas.* — ### Consejos adicionales: reserve boletos en línea con anticipación para atracciones populares para evitar colas. – Compre un **Istanbulkart** para viajar cómodamente y con descuento en transporte público. – Empacar calzado cómodo y protección solar para los niños. – Opte por alojamientos con comodidades familiares y muy próximos a las estaciones de tranvía o metro en los distritos de Sultanahmet o Beyoğlu. – Muchos restaurantes ofrecen menús infantiles y sillas altas; pregunte con antelación. — ¿Le gustaría recomendaciones personalizadas de hoteles y ayuda con la reserva de vuelos? Además, puedo ayudarte con los detalles del transporte local o reservas en restaurantes. ¡Sólo házmelo saber! Proceso finalizado con código de salida 0

Lo anterior es el resultado del código. ¡Podrás comprobar lo personalizado que es el itinerario de viaje!

Conclusión

En este proyecto, hemos utilizado con éxito nuestro conocimiento sobre la creación de agentes de IA en Python para crear algo que sea práctico y tenga aplicaciones en la vida real. Así son los problemas del mundo real: ya tenemos un sistema en funcionamiento, pero necesitamos optimizarlo y hacerlo más eficiente, y esto se puede hacer fácilmente implementando algunos conceptos básicos.

Podríamos haber creado este planificador de viajes utilizando un único agente de IA y pedirle que se encargara de todo. Sin embargo, al crear un sistema multiagente, dividimos el trabajo entre agentes especializados, cada uno de los cuales se centra en una tarea específica. Este enfoque hace que el sistema sea más organizado, eficiente y más cercano a cómo los equipos del mundo real resuelven problemas. En lugar de que una IA intente hacer todo, varios agentes de IA colaboran para crear un resultado mejor y más personalizado para el usuario.

Al agregar memoria, herramientas externas, API y datos en tiempo real, estos agentes pueden volverse aún más poderosos y resolver problemas complejos del mundo real; ¡Un proyecto para la próxima vez!