---
id: "fluxos.orquestracao-mensagens"
titulo: "Mensajes entre agentes"
resumo: "Envía, lee y responde mensajes entre agentes enlazados, con tipo y prioridad que dicen qué es el mensaje."
idioma: "es"
tipo: "guia"
categoria: "agentes"
aplicavelDesde: "0.0.16"
capabilities: ["orchestration.messages.send", "orchestration.messages.check", "orchestration.messages.reply"]
estadoEditorial: "aprovado"
nivelEvidencia: "artefato-distribuido"
refFonte: "27574c339b58316408f6be2d62169d59041d07bf"
revisaoFonte: "2026-09-24"
revisor: "mantenedor (v1, 2026-10-03)"
rota: "/docs/es/fluxos/orquestracao-mensagens/"
fonte: "pt-br/fluxos/orquestracao-mensagens.md"
caminhoPublico: "docs/publica/es/fluxos/orquestracao-mensagens.md"
hashFonte: "sha256:20ecc8b59ca1f680654d0615b1630cc16028f4db9668ed028d1409d52a98d204"
hashDestaPagina: "sha256:1699d14ce41e1ecee3cedcb26e057ca404796e3d029160e46d2121e0866dc7cb"
traducaoAssistidaPorIA: true
traducaoDesatualizada: false
corpoRetido: false
---
<!-- traducao-assistida-por-ia: idioma=ES fonte=pt-br/fluxos/orquestracao-mensagens.md fonteHash=sha256:20ecc8b59ca1f680654d0615b1630cc16028f4db9668ed028d1409d52a98d204 estado=atual -->

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

```bash
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

```bash
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

```bash
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.
