Para que sirve
El subcomando plazbot studio ask envia un solo mensaje a Studio, imprime la respuesta a stdout y sale con codigo 0. No abre el TUI, no consume teclas, no requiere terminal interactivo.
Ideal para:
- Scripts de bash que automatizan tareas con IA
- CI/CD pipelines que validan configuraciones de agentes
- Cron jobs que generan reportes (
/diagnoseprogramado) - Integraciones con otras herramientas via stdout/stderr
01plazbot studio ask "<mensaje>"
Flags
| Flag | Tipo | Descripcion |
|---|---|---|
<message> | string | Mensaje positional requerido |
--dev | bool | Apunta al backend local localhost:5090 |
-a, --agent-id <id> | string | Pre-carga un agente antes de ejecutar |
-w, --workspace-id <id> | string | Sobrescribe el workspace del config (modo soporte / white-label) |
--json | bool | Imprime NDJSON crudo (un chunk por linea) en vez de texto formateado |
Ejemplos
Pregunta simple
01plazbot studio ask "cuantos agentes tengo activos en este workspace"
Salida:
01Tienes 4 agentes activos:0203- Catalogo WA (WhatsApp) — actualizado hace 2 dias04- Soporte L1 (Webchat) — actualizado hace 5 horas05- Reservas (WhatsApp + Telegram)06- Demo Bot (Webchat)
Diagnosticar un agente desde un script
01plazbot studio ask "diagnostica este agente" -a age_TZiOY...
Soporte same-region
01# Atiende un workspace cliente dentro de tu misma zona, con tu propio usuario02plazbot studio ask "diagnostica este agente" -w wok_CLIENTE -a age_xxx
Para atender clientes de otra region, primero haz plazbot init con una cuenta de esa zona. El JWT esta firmado por la region que lo emite.
Modo NDJSON para parseo
01plazbot studio ask "lista mis agentes" --json > out.ndjson
Cada linea de out.ndjson es un chunk crudo del SSE:
01{"type":"tool_call","tool_name":"list_agents","tool_id":"call_01"}02{"type":"tool_result","tool_name":"list_agents","success":true,"data":{"agents":[...]}}03{"type":"text","content":"Tienes "}04{"type":"text","content":"4 agentes activos."}05{"type":"usage","input_tokens":1247,"output_tokens":89}06{"type":"done"}
Util para integrar con jq, parsers custom o pipelines.
Combinar con jq
01plazbot studio ask "lista mis agentes" --json \02 | jq -r 'select(.type=="tool_result" and .tool_name=="list_agents") | .data.agents[].name'
Imprime solo los nombres de agentes:
01Catalogo WA02Soporte L103Reservas04Demo Bot
Codigos de salida
| Codigo | Caso |
|---|---|
0 | Exito, respuesta completa recibida |
1 | Error de credenciales o argumentos invalidos |
2 | Error HTTP (401, 403, 429, 5xx) — detalle en stderr |
3 | Error de red o timeout |
01plazbot studio ask "..." || echo "fallo con codigo $?"
Uso en CI/CD
GitHub Actions
01- name: Diagnose production agent02 env:03 PLAZBOT_API_KEY: ${{ secrets.PLAZBOT_API_KEY }}04 PLAZBOT_WORKSPACE: ${{ secrets.PLAZBOT_WORKSPACE }}05 run: |06 npm install -g plazbot-cli07 plazbot init -e ci@plazbot.com -k $PLAZBOT_API_KEY -w $PLAZBOT_WORKSPACE -z LA08 plazbot studio ask "diagnostica el agente prod" -a age_PROD123 --json > diagnose.ndjson09 cat diagnose.ndjson | jq 'select(.type=="tool_result") | .data.issues'
En CI usa siempre --json para parsear de forma estable. El formato texto puede cambiar entre versiones, el formato NDJSON es estable.
ask no mantiene historial entre llamadas. Cada invocacion es independiente. Si necesitas contexto persistente, usa el modo REPL o pasa todo el contexto necesario en el mensaje.