Ir al contenido

La conversación en el Canvas

Cómo funciona la tarjeta de conversación del tablero, qué tiene de propia y cómo dirigirla por la línea de comandos.

Ver Markdown

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.