Ir al contenido

Mensajes entre agentes

Envía, lee y responde mensajes entre agentes enlazados, con tipo y prioridad que dicen qué es el mensaje.

Ver Markdown

Los agentes enlazados en el Canvas intercambian mensajes por una caja propia, independiente del texto de la terminal. Es por allí que un hijo avisa que terminó, que un maestro pide una decisión, y que dos pares acuerdan qué hacer con un archivo.

Enviar

Janela do terminal
elyra orchestration send --to <handle|título> --subject "<texto>" [--body <texto>|--body-file <ruta>] [--type <tipo>] [--priority <nivel>] [--from <handle|título>]
  • --to y --from aceptan una dirección o el título de la tarjeta, con el mismo efecto.
  • Un título repetido en dos tarjetas se rechaza, con la lista de los candidatos: renombra uno de ellos. Es mejor fallar que entregar en la conversación equivocada.
  • --subject es el asunto; --body es el cuerpo. Usa --body-file para texto con varias líneas: en Windows, el --body multilínea se corta en el primer salto de línea por el atajo de la terminal.
  • --payload acepta JSON, para datos estructurados.

Tipos de mensaje

El tipo no es decorativo — es él el que hace que el destinatario sepa si necesita actuar:

Tipo Para qué sirve
status Actualización de avance; es el tipo para novedades en general
worker_done «Terminé lo que me pasaron» — necesita una dirección concreta
merge_ready El trabajo está listo para la integración
escalation Necesita una decisión de quien coordina
handoff Pasa el contexto y la responsabilidad a otro agente
decision_gate Abre una decisión sin bloquear a quien preguntó
heartbeat «Sigo vivo» — necesita una dirección concreta

worker_done y heartbeat exigen una terminal coordinadora concreta: despiertan a alguien, y una dirección difusa no tiene a quién despertar. Para novedades en general, usa status.

Prioridad

--priority acepta normal, high y urgent. Usa la prioridad para decir cuánto puede esperar aquello, no para repetir la petición.

Leer

Janela do terminal
elyra orchestration check [--terminal <handle|título>] [--unread | --all] [--types <tipo,...>] [--wait]
  • Sin flags, devuelve los mensajes no leídos y los marca como leídos.
  • --all devuelve todos los mensajes de esa terminal y no marca nada como leído.
  • --types filtra por tipo — es como un coordinador ve solo lo que lo necesita (--types worker_done,escalation).
  • --wait bloquea hasta que llegue un mensaje que coincida o hasta que pase el tiempo límite. Cada mensaje listado trae el id que usas para responder.

Dos trampas de --wait, que existen para que no rompas tu propio script:

  1. Emite líneas de latido en el canal de error cada 15 segundos, para que el proceso que lo llamó sepa que está vivo. Al juntar las dos salidas, fíltralas.
  2. El tiempo máximo de espera es de una hora. Esperar no es gratis: mientras el proceso espera, está ocupando al agente.

Responder

Janela do terminal
elyra orchestration reply --id <id-del-mensaje> [--body <texto>|--body-file <ruta>]

La respuesta no bloquea a quien responde: se entrega y el agente sigue trabajando. El id viene del listado — responde al id correcto, porque no hay confirmación de que el destinatario lo haya leído.

Limpieza

orchestration check marca como leído lo que devuelve por defecto. Si quieres releer sin consumir, usa --all. No hay comando para borrar un mensaje aislado; borrar el estado entero es destructivo.

Alcance y límites

  • Alcance. Un agente alcanza las tarjetas enlazadas a él en el mismo workspace. Si la lista de títulos viene truncada, un homónimo fuera de alcance no se ve — y la entrega avisa del corte.
  • Entregar no es leer. Un mensaje entregado en la terminal del destinatario no significa que el agente lo haya leído o actuado sobre él.
  • La dirección cambia. El Canvas cambia mientras el trabajo ocurre; consulta a los vecinos antes de enviar.