Protocolos de comunicación (buses de mensajes)
Desacople los agentes con un bus de mensajes —Redis, NATS o Kafka— para que puedan escalar y fallar de forma independiente.
Protocolos de comunicación (buses de mensajes) es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
Más allá de las conversaciones en proceso
En los sistemas pequeños, los agentes se llaman entre sí dentro del proceso. En los sistemas grandes, desacóplelos mediante un bus de mensajes —Redis, NATS o Kafka.
¿Por qué desacoplar?
- Los agentes pueden escalarse de forma independiente
- Los fallos quedan aislados por agente
- Flujos de trabajo asíncronos (no es necesario esperar en línea a los agentes lentos)
- Puede reproducir los mensajes para depurar
- Compatibilidad entre lenguajes: un agente de Python y uno de Go pueden suscribirse
Simple Bus: Redis Pub/Sub
import redis
r = redis.Redis()
# Publisher
r.publish('agent.research.task', json.dumps({'task_id': 'abc', 'query': '...'}))
# Subscriber
p = r.pubsub()
p.subscribe('agent.research.task')
for msg in p.listen():
if msg['type'] == 'message':
handle_task(json.loads(msg['data']))Pub/Sub para difusión
Úselo cuando varios agentes puedan querer enterarse de un evento (por ejemplo, "user-question-received").
Colas para distribuir el trabajo
Use una cola (Redis BLPOP, RabbitMQ) cuando exactamente un trabajador deba encargarse de cada tarea:
import json, queue
r = queue.Queue()
# Producer
r.put(json.dumps({'task_id': 'abc', 'kind': 'research'}))
def process(task):
print('processing', task)
# Worker
while not r.empty():
raw = r.get()
task = json.loads(raw)
process(task)
NATS para obtener velocidad
NATS es un broker de mensajes ligero diseñado para microservicios. Ofrece una latencia inferior a un milisegundo y solicitud/respuesta integrada:
import nats
nc = await nats.connect('nats://localhost:4222')
await nc.publish('agent.research', json.dumps(task).encode())
# Request/reply
response = await nc.request('agent.research', payload, timeout=10)Kafka para obtener durabilidad
Kafka añade registros duraderos que pueden reproducirse. Es perfecto para auditorías y reproducción:
from confluent_kafka import Producer, Consumer
producer.produce('agent-events', key=task_id, value=json.dumps(task))
producer.flush()Esquemas de eventos
Defina la estructura de cada mensaje con Pydantic o Protobuf. Sin esquemas, el bus se convierte en un caos:
class ResearchTask(BaseModel):
task_id: str
user_id: str
query: str
deadline: datetime
class ResearchResult(BaseModel):
task_id: str
findings: list[str]
duration_ms: intID de correlación
Cada mensaje relacionado lleva el mismo correlation_id para que pueda rastrear una tarea a través de los servicios:
record = {'correlation_id': 'abc', 'task_id': 'def', 'span': 'llm_call'}
print(record)
Manejadores idempotentes
Los mensajes pueden entregarse más de una vez (semántica de al menos una entrega). Haga que los manejadores sean idempotentes: un mismo task_id se procesa una sola vez.
Cola de mensajes fallidos
Cuando un manejador falla repetidamente, envíe el mensaje a una DLQ para que lo revise una persona, en lugar de repetir el proceso indefinidamente:
if attempts > MAX_RETRIES:
r.rpush('queue:research:dlq', raw)
log.error('Sent to DLQ', extra={'task_id': task_id})Observabilidad
Rastree cada mensaje:
- Los ID de traza recorren el bus
- Los registros incluyen task_id y correlation_id
- Métricas: rendimiento, latencia y tasa de errores por tema
Cuándo adoptarlo
Empiece de forma sencilla, con agentes en proceso. Pase a un bus solo cuando tenga:
- Más de 5 agentes en producción
- La necesidad de escalar los agentes de forma independiente
- Flujos de trabajo que abarquen varios servicios
¿Al menos una vez?
¿Qué exige la «entrega al menos una vez» a sus manejadores?
Resumen
Desacople con Redis para casos sencillos, NATS para la latencia y Kafka para la durabilidad. Esquemas, ID de correlación, manejadores idempotentes y DLQ.
Aprende AI Agents con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 60
- Lecciones
- 239
Preguntas frecuentes
¿La lección «Protocolos de comunicación (buses de mensajes)» es gratis?
Sí — el texto completo de «Protocolos de comunicación (buses de mensajes)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.
¿Qué aprenderé en «Protocolos de comunicación (buses de mensajes)»?
Desacople los agentes con un bus de mensajes —Redis, NATS o Kafka— para que puedan escalar y fallar de forma independiente. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Agents?
No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Protocolos de comunicación (buses de mensajes)»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Agents?
Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Multiagente basado en conversaciones (AutoGen)
- Supervisores jerárquicos (orquestador y trabajadores)
- Roles y especializaciones de los agentes
- Protocolos de comunicación (buses de mensajes)