AI Agents · Lección

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.

Lección 4 de 415 pasos

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: int

ID 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.

Gratis para empezar

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

  1. Multiagente basado en conversaciones (AutoGen)
  2. Supervisores jerárquicos (orquestador y trabajadores)
  3. Roles y especializaciones de los agentes
  4. Protocolos de comunicación (buses de mensajes)
← Volver a AI Agents