Mensajes entre agentes
Envía, lee y responde mensajes entre agentes enlazados, con tipo y prioridad que dicen qué es el mensaje.
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
elyra orchestration send --to <handle|título> --subject "<texto>" [--body <texto>|--body-file <ruta>] [--type <tipo>] [--priority <nivel>] [--from <handle|título>]--toy--fromaceptan 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.
--subjectes el asunto;--bodyes el cuerpo. Usa--body-filepara texto con varias líneas: en Windows, el--bodymultilínea se corta en el primer salto de línea por el atajo de la terminal.--payloadacepta 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
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.
--alldevuelve todos los mensajes de esa terminal y no marca nada como leído.--typesfiltra por tipo — es como un coordinador ve solo lo que lo necesita (--types worker_done,escalation).--waitbloquea 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:
- 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.
- El tiempo máximo de espera es de una hora. Esperar no es gratis: mientras el proceso espera, está ocupando al agente.
Responder
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.