---
id: "canvas.cartao-conversa"
titulo: "La conversación en el Canvas"
resumo: "Cómo funciona la tarjeta de conversación del tablero, qué tiene de propia y cómo dirigirla por la línea de comandos."
idioma: "es"
tipo: "conceito"
categoria: "telas"
aplicavelDesde: "0.0.16"
capabilities: ["chat.canvas.list", "chat.canvas.send", "chat.canvas.read"]
estadoEditorial: "aprovado"
nivelEvidencia: "artefato-distribuido"
refFonte: "27574c339b58316408f6be2d62169d59041d07bf"
revisaoFonte: "2026-09-24"
revisor: "mantenedor (v1, 2026-10-03)"
rota: "/docs/es/canvas/cartao-conversa/"
fonte: "pt-br/canvas/cartao-conversa.md"
caminhoPublico: "docs/publica/es/canvas/cartao-conversa.md"
hashFonte: "sha256:d31c48933b898c3aaf7798262e51b759dc6c6c05b0223d0277f98867955793a5"
hashDestaPagina: "sha256:a34e39cc4f07af62f8b909cfd927346d6317fe7e0b091e423207161e8d0b9740"
traducaoAssistidaPorIA: true
traducaoDesatualizada: false
corpoRetido: false
---
<!-- traducao-assistida-por-ia: idioma=ES fonte=pt-br/canvas/cartao-conversa.md fonteHash=sha256:d31c48933b898c3aaf7798262e51b759dc6c6c05b0223d0277f98867955793a5 estado=atual -->

La tarjeta de **Conversación** es donde la conversación con un asistente vive dentro del tablero. Es una de las superficies de conversación del producto — y **no es lo mismo** que una conversación de la pantalla Conversación.

## Un lugar propio

La decisión de producto es que las pantallas sean independientes: **una conversación en el Canvas no es la conversación de la pantalla Conversación vista desde otro ángulo**. Las dos superficies mantienen conversaciones separadas, cada una con su propia sesión.

> **Cuidado con la expectativa.** No cuentes con "la conversación de la pantalla Conversación aparece en el Canvas" — ni con lo contrario — como comportamiento garantizado. Trata las dos como lugares distintos.

Lo que eso significa en la práctica: abrir una tarjeta de conversación en el tablero **crea** una conversación ahí. No es la misma que tenías abierta en la otra pantalla.

## La tarjeta de conversación principal es el maestro

La tarjeta de conversación principal del proyecto es el **orquestador**: cuando crea agentes hijos, cada hijo aparece como una tarjeta vinculada a él por una línea.

## La sesión

- **La sesión vive en el proceso principal de la app.** Cambiar el diseño, minimizar la tarjeta o cambiar de pantalla **no** interrumpe la conversación.
- **La sesión no aparece en la lista de terminales.** Una conversación corre por el SDK, con dirección propia — buscarla entre los terminales no encuentra nada. Eso es esperado, no es un defecto.
- **Una conversación ociosa puede recogerse y recrearse.** Después de un tiempo sin uso, la sesión ociosa se cierra para liberar recursos y **se recrea en el próximo envío**. Por eso una conversación detenida no cuesta un proceso para siempre.
- **El borrador se conserva.** El texto que escribiste y todavía no enviaste se guarda por conversación: sobrevive a cambiar de pantalla, minimizar, recargar la ventana y reiniciar la app. Si la conversación termina, la tarjeta muestra lo que habías escrito, con las opciones **Copiar** y **Continuar en una conversación nueva**.
- **Cerrar la tarjeta termina la conversación** y el borrador de esa conversación se descarta junto con ella.

## El asistente de la conversación

El asistente se elige **en la creación** de la tarjeta, y el modelo también: `--model` se acepta en la tarjeta de conversación y **solo** en ella.

El camino de conversación de Elyra es el del **SDK**, no el de escribir en un terminal. Donde el SDK no pueda dirigir al asistente, la pantalla **dice que la conversación no está disponible ahí** — nunca cae a una interfaz de terminal por su cuenta.

En **worktree remoto (SSH)**, el camino del SDK cruza la conexión. Los demás asistentes siguen por el camino de terminal y **no** son locales por construcción en ese escenario.

> **La elección del asistente cambia lo que existe después.** No toda combinación de asistente y host ofrece el mismo conjunto de recursos en la conversación. Lo que muestra la pantalla está condicionado a lo que ofrece ese adaptador — no hay paridad universal entre proveedores.

## Dirigir la conversación por la línea de comandos

Una tarjeta de conversación tiene una **dirección estable**, derivada de la pestaña de la conversación, con el formato `chat_<12 hex>`. Es la misma después de recargar la ventana, reiniciar la app y mover la tarjeta, y nunca colisiona con la dirección de un terminal.

```
elyra chat list [--workspace <selector>] [--json]
elyra chat send --chat <handle|tabId|nodeId|título> (--text <text> | --text-file <path|->) [--json]
elyra chat read --chat <handle|tabId|nodeId|título> [--limit <n>] [--json]
```

La lista trae las tarjetas de conversación del Canvas de ese workspace, con handle, id de la tarjeta, asistente, título e indicador de trabajo. **No es la pantalla Conversación:** las conversaciones de esa pantalla no aparecen aquí.

El envío acepta handle, id de la pestaña, id de la tarjeta o el **título exacto**. Un título repetido **no** identifica un destino: el runtime te pide listar y desambiguar. Prefiere el handle.

### Qué significa la respuesta del envío

La respuesta es `{ok: true, handle, queued}`.

> **`queued: true` significa que el turno ya estaba en curso y el mensaje se puso en cola — no que el asistente respondió.** El envío confirmado es el envío, no la respuesta. Para ver la respuesta, lee la conversación.

### Qué trae la lectura

La lectura es una **proyección simplificada**: cada mensaje viene como `{role, text, at}`. Los bloques que no son texto — el razonamiento del asistente y las llamadas de herramienta — **no aparecen** en esa salida. La respuesta trae `truncated: true` cuando se descartaron mensajes más antiguos.

## Límites que conviene saber ahora

- **La sesión tiene que estar viva para recibir mensaje.** Una tarjeta cuya vista todavía no se montó **no tiene sesión** en el proceso principal, y el envío se rechaza con un mensaje que dice exactamente eso. En la práctica: abre el Canvas para que la tarjeta se monte y repite el envío. **El envío no crea la sesión solo.**
- **Por eso, un hijo de orquestación debe ser tarjeta de terminal, no tarjeta de conversación.** Un terminal nace sin depender de la vista montada y recibe la tarea por su dirección. La tarjeta de conversación sirve para la conversación que **tú** acompañas.
- **El listado puede mostrar tarjetas que el envío no alcanza.** El camino de envío y lectura busca la sesión gestionada en el proceso principal: existe para las tarjetas que corren por el SDK. Una tarjeta de otro asistente puede aparecer en la lista sin ser alcanzable por el envío.
- **La conversación no aparece en la lista de terminales.** Es consecuencia de correr por el SDK, no una tarjeta ausente.
- **Título repetido no es dirección.** Usa el handle o el id de la tarjeta en cualquier automatización.

## Recuperación

| Situación | Qué hacer |
|---|---|
| El envío rechaza diciendo que la sesión no existe | Abre el Canvas para montar la tarjeta y repite el envío. |
| El nombre de la tarjeta es ambiguo | Lista las tarjetas con `--json` y usa el handle. |
| La lectura no trae el razonamiento ni las herramientas | Es lo esperado: la lectura por la línea de comandos proyecta solo texto. Usa la tarjeta en pantalla para la conversación completa. |
| La conversación terminó y tenías texto escrito | La tarjeta muestra el borrador; usa **Copiar** antes de continuar en una conversación nueva. |
