# Configurar IA

> Muestra o cambia el proveedor de IA, el modelo y el API token de un agente.

Fuente: https://developers.plazbot.com/cli/agent/ai-config/

### Configurar la IA del agente

Muestra o cambia el proveedor de IA (OpenAI, Anthropic Claude o Google Gemini), el modelo, el API token, la temperatura y los tokens máximos de un agente. Sin flags abre un menú interactivo; con flags funciona sin preguntas. Con `--default` vuelve a la IA por defecto de la plataforma.

```bash
plazbot agent ai-config <agentId> [options]
```

### Parámetros

| Parámetro | Flag | Requerido | Descripción |
|-----------|------|-----------|-------------|
| `agentId` | (posicional) | Sí | ID del agente, por ejemplo `age_AbcDef123`. |
| Mostrar | `--show` | No | Imprime la configuración actual y termina. Los tokens se muestran enmascarados. |
| Proveedor | `--provider <provider>` | No | `openai`, `anthropic` (o `claude`) o `google` (o `gemini`). También acepta `gpt` como alias de `openai`. |
| Modelo | `--model <id>` | No | ID del modelo. Por defecto depende del proveedor: `gpt-4o`, `claude-sonnet-4-6` o `gemini-2.5-pro`. |
| API token | `--api-token <token>` | No | API key del proveedor. Si el proveedor no cambia, se conserva la actual. |
| Temperatura | `--temperature <0-2>` | No | Número entre 0 y 2. Por defecto: `0.7`. |
| Tokens máximos | `--max-tokens <n>` | No | Entero entre 1 y 128000. Por defecto: `4096`. |
| IA por defecto | `--default` | No | Quita el proveedor propio y usa la IA por defecto de la plataforma. |
| JSON | `--json` | No | Imprime el resultado como JSON. Por defecto: `false`. |

Reglas de combinación:

- `--default` no se puede combinar con `--provider`, `--model`, `--api-token`, `--temperature` ni `--max-tokens`.
- `--show` no se puede combinar con flags que cambian la configuración.
- Si cambias solo `--model`, `--temperature` o `--max-tokens`, se mantienen el proveedor y el API token actuales.
- Si el agente usa la IA por defecto de la plataforma, `--provider` y `--api-token` son obligatorios.
- Si cambias de proveedor, debes pasar `--api-token`.

### Ejemplos

```bash
# Elegir proveedor, modelo y token de forma interactiva
plazbot agent ai-config age_AbcDef123

# Ver la configuración actual en JSON (tokens enmascarados)
plazbot agent ai-config age_AbcDef123 --show --json

# Cambiar a Claude sin preguntas
plazbot agent ai-config age_AbcDef123 --provider anthropic --model claude-sonnet-4-6 --api-token sk-ant-xxx --temperature 0.5

# Volver a la IA por defecto de la plataforma
plazbot agent ai-config age_AbcDef123 --default
```

### Modo interactivo

Muestra la configuración actual y pregunta qué hacer: `Set a custom AI provider`, `Use the platform default AI` o `Exit`. Al elegir un proveedor pide el modelo (lista), el API token (si el proveedor no cambia, puedes dejarlo vacío para conservar el actual), la temperatura y los tokens máximos. Necesita una terminal interactiva.

### Modelos disponibles

| Proveedor | Valor guardado | Modelos |
|-----------|----------------|---------|
| OpenAI | `openai` | `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.4-nano`, `gpt-5.2`, `gpt-5.1`, `gpt-5.1-codex`, `gpt-5.1-codex-mini`, `gpt-5`, `gpt-5-mini`, `gpt-5-nano`, `gpt-4.1`, `gpt-4.1-mini`, `gpt-4.1-nano`, `gpt-4o`, `gpt-4o-mini`, `o4-mini`, `o3`, `o3-mini`, `o1-2024-12-17`, `gpt-4-turbo`, `gpt-3.5-turbo` |
| Anthropic (Claude) | `claude` | `claude-fable-5`, `claude-opus-4-6`, `claude-sonnet-4-6`, `claude-opus-4-5-20251101`, `claude-sonnet-4-5-20250929`, `claude-haiku-4-5-20251001`, `claude-opus-4-1-20250805`, `claude-opus-4-20250514`, `claude-sonnet-4-20250514` |
| Google (Gemini) | `gemini` | `gemini-3.1-pro-preview`, `gemini-3.1-flash-lite-preview`, `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-2.5-flash-lite`, `gemini-2.0-flash` |

Un ID de modelo que no está en la lista se guarda igual, con el aviso `Model "<id>" is not in the known <provider> list. It will be saved as is; make sure the provider accepts it.`

### Resultado

`--show` con un proveedor propio:

```text
AI configuration - Sales Plazbot
────────────────────────────────────────
  Provider: claude
  Model: claude-sonnet-4-6
  API token: sk-a…x9Zq
  Temperature: 0.5
  Max tokens: 4096
  Default: Yes
```

Si el agente usa la IA de la plataforma: `Using the platform default AI (Plazbot)`.

Al guardar:

```text
✔ AI provider set: claude / claude-sonnet-4-6 (token sk-a…x9Zq)
```

Con `--default`:

```text
✔ Using the platform default AI (Plazbot)
```

Los API tokens nunca se imprimen completos: se muestran los 4 primeros y los 4 últimos caracteres (`sk-a…x9Zq`), o `••••` si el token es corto.

### Salida JSON

`--show --json`:

```json
{
"id": "age_AbcDef123",
"name": "Sales Plazbot",
"customAIConfig": true,
"providers": [
  {
    "provider": "claude",
    "model": "claude-sonnet-4-6",
    "apiToken": "sk-a…x9Zq",
    "temperature": 0.5,
    "maxTokens": 4096,
    "isDefault": true
  }
]
}
```

Al cambiar la configuración:

```json
{ "id": "age_AbcDef123", "provider": "claude", "model": "claude-sonnet-4-6", "updated": true }
```

Con `--default`:

```json
{ "id": "age_AbcDef123", "provider": "default", "model": null, "updated": true }
```

### Errores comunes

| Mensaje | Causa | Solución |
|---------|-------|----------|
| `Unknown AI provider "<valor>".` | `--provider` no es un proveedor admitido. | Usa `openai`, `anthropic` (`claude`) o `google` (`gemini`). |
| `Invalid temperature "<valor>".` | La temperatura no es un número entre 0 y 2. | Usa, por ejemplo, `--temperature 0.7`. |
| `Invalid max tokens "<valor>".` | No es un entero entre 1 y 128000. | Usa, por ejemplo, `--max-tokens 4096`. |
| `This agent uses the platform default AI, so --provider is required.` | Pasaste `--model` u otro flag sin proveedor en un agente sin IA propia. | Agrega `--provider` y `--api-token`. |
| `An API token is required for <provider>.` | Cambias de proveedor (o no hay token guardado) y falta `--api-token`. | Pásalo con `--api-token <token>`. |
| `--default cannot be combined with ...` / `--show cannot be combined with ...` | Combinaste flags incompatibles. | Usa uno solo de los modos. |
| `The AI configuration menu needs an interactive terminal.` | Sin flags y sin terminal (CI, pipes, `--json`). | Pasa flags, o usa `--show` / `--default`. |
| `Agent "age_AbcDef123" was not found in workspace ...` | El ID no existe en el workspace activo. | Revisa con `plazbot agent list`. |
