# Exportar agente

> Exporta la configuración limpia de un agente en JSON.

Fuente: https://developers.plazbot.com/cli/agent/export/

### Exportar agente

Exporta la configuración de un agente como JSON limpio, compatible con [`create`](https://developers.plazbot.com/cli/agent/create), [`update`](https://developers.plazbot.com/cli/agent/update) y la importación de JSON en la plataforma. Por defecto no incluye los canales ni la configuración de IA (que contiene API keys de terceros): agrégalos con `--channels` y `--ai`.

```bash
plazbot agent export <agentId> [options]
```

### Parámetros

| Parámetro | Flag | Requerido | Descripción |
|-----------|------|-----------|-------------|
| `agentId` | (posicional) | Sí | ID del agente a exportar. |
| Archivo | `-o, --output <path>` | No | Escribe el JSON en este archivo en lugar de stdout. |
| Canales | `--channels` | No | Incluye los canales (son propios del workspace). Por defecto: `false`. |
| IA | `--ai` | No | Incluye la configuración de IA propia (`customAIConfig`, `aiProviders`) y la clave del avatar (`avatarApiKey`). Contiene API keys de terceros. Por defecto: `false`. |
| JSON | `--json` | No | Con `-o`, imprime `{"output","id","name"}`. Sin `-o`, el JSON del agente se imprime igual. Por defecto: `false`. |

### Qué incluye

- Solo los campos de primer nivel que admite el schema del agente (sin `id`, fechas ni campos internos), sin valores `null`.
- Sin `--channels`, la clave `channels` se omite. Sin `--ai`, se omiten `customAIConfig`, `aiProviders` y `avatarApiKey`. Las claves se omiten (no se ponen vacías) para que el flujo exportar, editar y [`update`](https://developers.plazbot.com/cli/agent/update) no borre los canales ni la IA del agente.

### Ejemplos

```bash
# Imprimir el JSON limpio en stdout
plazbot agent export age_AbcDef123

# Guardarlo en un archivo
plazbot agent export age_AbcDef123 -o ./agent.json

# Incluir canales y configuración de IA (contiene API tokens)
plazbot agent export age_AbcDef123 -o ./agent.json --channels --ai

```

### Resultado

Sin `-o`, stdout solo contiene el JSON, así que puedes redirigirlo (`plazbot agent export age_AbcDef123 > agent.json`). Los mensajes informativos van a stderr:

```text
✔ Agent fetched: Sales Plazbot
{
"name": "Sales Plazbot",
"description": "Asistente virtual de ventas",
"prompt": "...",
"zone": "LA",
"buffer": 5,
...
}

This JSON is compatible with:
- plazbot agent create <file.json>
- plazbot agent update <agentId> <file.json>
- Importing JSON in the platform (AgentTraining)
Not included: channels (--channels), AI configuration (--ai)
```

Con `-o`:

```text
✔ Agent fetched: Sales Plazbot

Exported to: /home/user/agent.json
```

### Salida JSON

Con `-o` y `--json`:

```json
{
"output": "/home/user/agent.json",
"id": "age_AbcDef123",
"name": "Sales Plazbot"
}
```

> **Importante:** Con `--ai` el archivo contiene los API tokens de tus proveedores de IA en texto plano. No lo compartas ni lo subas a un repositorio.

### Errores comunes

| Mensaje | Causa | Solución |
|---------|-------|----------|
| `Agent age_AbcDef123 was not found in workspace wok_AbcDef123.` | El ID no existe en ese workspace. | Revisa el ID con `plazbot agent list`. |
| `--zone must be LA or EU (got "<valor>").` | `-z` no es `LA` ni `EU`. | Usa `-z LA` o `-z EU`. |
| `You are not signed in.` | No hay sesión activa. | Ejecuta [`plazbot login`](https://developers.plazbot.com/cli/login). |
