# Sesión interactiva

> plazbot studio: chat en la terminal con streaming, historial y slash commands

Fuente: https://developers.plazbot.com/cli/studio/repl/

### Sesión interactiva

`plazbot studio` abre un chat en la terminal donde conversas con Studio en varios turnos. Cada respuesta llega en streaming y, cuando Studio usa una herramienta (listar, cargar, diagnosticar o guardar agentes), verás el paso con su estado.

```bash
plazbot studio [options]
```

### Parámetros

| Parámetro | Flag | Requerido | Descripción |
|-----------|------|-----------|-------------|
| Agente | `-a, --agent-id <id>` | No | Deja un agente como contexto desde el inicio (aparece en el encabezado como `agent`) |
| Mensaje | `-m, --message <text>` | No | Alias de [`studio ask`](https://developers.plazbot.com/cli/studio/ask): ejecuta una sola consulta y sale, sin abrir el chat |
| JSON | `--json` | No | Solo junto con `-m`: imprime los chunks como NDJSON (un objeto JSON por línea) |

### Ejemplos

```bash
# Abrir Studio
plazbot studio

# Abrir Studio con un agente como contexto
plazbot studio -a age_AbcDef123

# Una sola consulta y salir (igual que `studio ask`)
plazbot studio -m "Diagnose this agent" -a age_AbcDef123

```

> **Nota:** `-a` solo fija el id del agente como contexto. Para traer su configuración a la sesión (y poder usar `/save` o `/export`), cárgalo con `/load age_AbcDef123` o pídele a Studio que lo cargue.

### Resultado

Pantalla al iniciar con `-a`:

```text
● Plazbot Studio v0.6.0                workspace wok_AbcDef123  zone LA  agent age_AbcDef12

Try one of these to get started:

  ▸ List my agents  /agents
  ▸ Load an agent  /load <id>
  ▸ Diagnose the current agent  /diagnose
  ▸ Create a new agent  Create a sales agent for WhatsApp

╭──────────────────────────────────────────────────────────────────────────────╮
│ › Type a message or /help                                                    │
╰──────────────────────────────────────────────────────────────────────────────╯
tokens: 0 in / 0 out    /help · ↑↓ history · Tab/→ accept suggestion · Esc cancel · Ctrl+C exit
```

Después de una consulta:

```text
● You
 List my agents

● Plazbot
 You have 3 agents in this workspace:

 • Ventas WA (age_AbcDef123) - active, WhatsApp
 • Soporte L1 (age_GhiJkl456) - active, Webchat
 • Reservas (age_MnoPqr789) - inactive
 ✓ Agents listed

╭──────────────────────────────────────────────────────────────────────────────╮
│ › Type a message or /help                                                    │
╰──────────────────────────────────────────────────────────────────────────────╯
tokens: 3.4k in / 156 out    /help · ↑↓ history · Tab/→ accept suggestion · Esc cancel · Ctrl+C exit
```

### Pantalla

| Zona | Qué muestra |
|------|-------------|
| Encabezado | `● Plazbot Studio`, versión, `workspace`, `zone` (LA o EU) y, si hay uno, `agent` (primeros 12 caracteres del id) |
| Conversación | Tus mensajes (`● You`), las respuestas (`● Plazbot`, con markdown) y los pasos de cada herramienta. Al inicio, en lugar de la conversación, aparecen las sugerencias |
| Cuadro de texto | `› Type a message or /help`. Mientras llega una respuesta se bloquea y muestra `Waiting for response… (press Esc to cancel)` |
| Pie | Tokens acumulados de la sesión (`tokens: 3.4k in / 156 out`), `streaming…` mientras llega la respuesta y los atajos disponibles |

La conversación se escribe en el scrollback normal de la terminal, así que puedes subir para revisar mensajes anteriores.

### Flujo de una respuesta

1. Escribes un mensaje (o un [slash command](https://developers.plazbot.com/cli/studio/slash-commands)) y presionas Enter.
2. Aparece `● Plazbot` con un spinner y una frase rotativa (`Thinking…`, `Reasoning…`) hasta que llega el primer texto.
3. El texto se escribe en tiempo real con un cursor al final.
4. Cada herramienta que usa Studio aparece como un paso: spinner mientras corre y luego `✓` (éxito), `✗` en rojo (error) o `○` (no encontrado, que Studio explica en el texto).
5. Al terminar, el pie actualiza el contador de tokens y el cuadro de texto vuelve a estar disponible.

Pasos que puedes ver:

| Herramienta | En curso | Al terminar |
|-------------|----------|-------------|
| `list_agents` | `Listing agents…` | `✓ Agents listed` |
| `load_agent` | `Loading agent…` | `✓ Agent loaded` |
| `diagnose_agent` | `Diagnosing agent…` | `✓ Diagnosis complete` |
| `create_agent_config` | `Generating agent configuration…` | `✓ Configuration generated` |
| `update_agent_config` | `Updating agent configuration…` | `✓ Configuration updated` |
| `save_agent` | `Saving agent…` | `✓ Agent saved` |
| `delete_agent` | `Deleting agent…` | `✓ Agent deleted` |
| `connect_whatsapp` | `Connecting WhatsApp…` | `✓ WhatsApp connected` |
| otras | `Running <tool>…` | `✓ Ran <tool>` |

> **Tip:** Cuando una herramienta devuelve la configuración de un agente (al crearlo, cargarlo, editarlo o diagnosticarlo), Studio la guarda en la sesión y la envía como contexto en los siguientes mensajes. Esa es la configuración que guardan `/save` y `/export`.

### Conectar un canal

Si le pides a Studio conectar WhatsApp, Instagram o Messenger, aparece una tarjeta con el link de conexión (`link:`), su vencimiento (`expires:`) y el estado. Studio revisa cada 5 segundos durante 5 minutos si la conexión quedó activa; al detectarla muestra el número, cuenta o página conectada y sigue con la configuración del agente. Presiona `Esc` para cancelar la espera. Ver el [caso de uso](https://developers.plazbot.com/cli/studio/casos-de-uso).

### Salir

`Ctrl+C` sale de inmediato (si hay una respuesta en curso, la cancela). También puedes escribir `/quit`, `/exit` o `/q`. Ver [atajos de teclado](https://developers.plazbot.com/cli/studio/atajos).

### Errores comunes

| Mensaje | Causa | Solución |
|---------|-------|----------|
| `The Studio REPL needs an interactive terminal.` | Ejecutaste `plazbot studio` sin TTY (CI, pipe, redirección) | Usa `plazbot studio ask "..."` |
| `--json only works with a one-shot prompt.` | Usaste `--json` sin `-m` | `plazbot studio ask "List my agents" --json` |
| `You are not signed in.` | No hay sesión ni variables de entorno | `plazbot login`, o define `PLAZBOT_API_KEY` y `PLAZBOT_WORKSPACE_ID` |

Errores dentro de la conversación (401, 403, 429, red): ver [Errores comunes](https://developers.plazbot.com/cli/studio/errores).
