En este tutorial, exploramos cómo construir un sistema multiagente pequeño pero funcional utilizando el marco uAgents. Configuramos tres agentes (Directorio, Vendedor y Comprador) que se comunican a través de protocolos de mensajes bien definidos para simular una interacción en el mercado del mundo real. Diseñamos esquemas de mensajes, definimos comportamientos de agentes e implementamos ciclos de solicitud-respuesta para demostrar el descubrimiento, la negociación y las transacciones entre agentes, todo ello ejecutándose de forma asincrónica en un bucle de eventos compartido. A través de esto, entendemos cómo los agentes autónomos colaboran, comercian y mantienen eficientemente flujos de trabajo descentralizados. Consulte los códigos completos aquí.
class OfertaRequest(Modelo): artículo: str max_price: int class Oferta(Modelo): artículo: str precio: int cant: int class Orden(Modelo): artículo: str cant: int class Recibo(Modelo): artículo: str cant: int total: int ok: bool nota: Opcional[str] = Ninguno
Comenzamos instalando la biblioteca uAgents y definiendo todos los modelos de mensajes que sustentan nuestro sistema de comunicación. Creamos tipos de datos estructurados para anuncios, consultas, ofertas y pedidos, lo que permite a los agentes intercambiar información sin problemas. Consulte los códigos completos aquí.
Configuramos los agentes de Directorio, Vendedor y Comprador y definimos el protocolo de registro que gestiona el descubrimiento de servicios. Hacemos que el directorio responda a anuncios y consultas, permitiendo a los agentes registrarse y ubicarse entre sí de forma dinámica. Consulte los códigos completos aquí.
Creamos el catálogo del agente vendedor e implementamos lógica para responder a solicitudes de oferta y procesar pedidos. Simulamos el comercio del mundo real agregando precios variables y gestión de existencias, mostrando cómo el vendedor negocia y completa las transacciones. Consulte los códigos completos aquí.
si no son vendedores: objetivo de devolución = vendedores[0]
deseado = “laptop” presupuesto = 700 ctx.logger.info(f”Solicitando oferta para ‘{desired}’ dentro del presupuesto {budget} de {target}”) oferta = await ctx.ask(target, OfferRequest(item=desired, max_price=budget), expects=Offer, timeout=5.0) si no es oferta u oferta.precio <= 0: cantidad devuelta = 1 si oferta.qty >= 1 else 0 si cantidad == 0: return ctx.logger.info(f”Realizar pedido por {cantidad} x {oferta.artículo} a {oferta.precio}”) recibo = esperar ctx.ask(objetivo, pedido(artículo=oferta.artículo, cantidad=cantidad), espera=Recibo, tiempo de espera=5.0) si recibo y recibo.ok: ctx.logger.info(f”ÉXITO DEL PEDIDO: {recibo.cantidad} x {recibo.item} | total={recibo.total}”)
Programamos al agente Comprador para descubrir vendedores, solicitar ofertas y realizar pedidos según disponibilidad y presupuesto. Observamos cómo el comprador interactúa con el vendedor mediante comunicación asincrónica para completar una compra con éxito. Consulte los códigos completos aquí.
Agregamos descubrimiento periódico para que el comprador vuelva a verificar a los vendedores disponibles y luego hacemos que la Oficina gestione a todos los agentes juntos. Lanzamos el tiempo de ejecución asincrónico para ver cómo se desarrolla y completa sin problemas la simulación completa del mercado.
En conclusión, hemos visto a nuestros agentes descubrirse unos a otros, negociar una oferta y completar una transacción completamente a través de interacciones basadas en mensajes. Nos damos cuenta de cómo uAgents simplifica la orquestación de múltiples agentes al combinar la estructura, la comunicación y la gestión del estado a la perfección dentro de Python. A medida que ejecutamos este ejemplo, no solo somos testigos de un sistema dinámico y autónomo en acción, sino que también obtenemos información sobre cómo la misma arquitectura puede extenderse a mercados descentralizados complejos, colaboraciones de IA y redes de servicios inteligentes, todo dentro de un marco liviano y fácil de usar.
Consulte los códigos completos aquí. No dude en consultar nuestra página de GitHub para tutoriales, códigos y cuadernos. 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 emprendedor 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.
🙌 Siga MARKTECHPOST: agréguenos como fuente preferida en Google.