# Prompt, modelo y funciones

Consulta y cambia el prompt del agente, su mensaje inicial, el modelo de lenguaje y las funciones que puede usar durante la llamada.

> 💡 Disponible para los agentes del **motor de voz VPower**. Los cambios van al borrador: publícalos con [Publicar agente](gestionar-agentes.md#publicar-agente).

El identificador de esta configuración es el `llm_id` que devuelve [Obtener agente](obtener-agente.md) en `response_engine.llm_id` (tiene la forma `lk:agent_…`).

---

## Obtener

**GET** `/get-retell-llm/{llm_id}`

```bash
curl --request GET \
     --url 'https://calls.anunzi.net/get-retell-llm/lk:agent_3f9c1a7b2e4d5c6f' \
     --header 'Authorization: Bearer anz_live_TU_API_KEY'
```

### Respuesta

| Campo | Tipo | Descripción |
|-------|------|-------------|
| `llm_id` | string | Identificador. |
| `general_prompt` | string | Instrucciones del agente. Admite variables `{{nombre}}`. |
| `begin_message` | string | Lo primero que dice el agente. Vacío = lo genera el modelo. |
| `model` | string | Modelo de lenguaje. |
| `model_temperature` | number | Creatividad del modelo. |
| `general_tools` | array | Funciones del agente. |
| `knowledge_base_ids` | array | Bases de conocimiento que consulta. |
| `version`, `is_published` | integer / boolean | Versión que estás viendo y si es la que está en uso. |

---

## Actualizar

**PATCH** `/update-retell-llm/{llm_id}`

Envía solo los campos que quieras cambiar: `general_prompt`, `begin_message`, `model`, `model_temperature`, `general_tools`, `knowledge_base_ids`.

```bash
curl --request PATCH \
     --url 'https://calls.anunzi.net/update-retell-llm/lk:agent_3f9c1a7b2e4d5c6f' \
     --header 'Authorization: Bearer anz_live_TU_API_KEY' \
     --header 'Content-Type: application/json' \
     --data '{
  "general_prompt": "Eres Sofía, la asistente de la clínica. Ayudas a sacar turnos...",
  "begin_message": "Hola, soy Sofía, de la clínica. ¿En qué te ayudo?"
}'
```

### Funciones (`general_tools`)

Cada función es un objeto con `type` y `name` (único, con letras, números, `_` o `-`). Tipos:

| `type` | Qué hace |
|--------|----------|
| `custom` | Llama a tu API: `url`, `method`, `description`, `parameters` (JSON Schema), y opcionalmente `headers`, `query_params`, `args_at_root`, `timeout_ms`, `speak_during_execution`. En la `url`, los `headers` y los `query_params` puedes usar `{{variables}}` de la llamada (por ejemplo `{{telefono}}`). |
| `end_call` | Cortar la llamada. |
| `transfer_call` | Transferir a un teléfono. |
| `agent_swap` | Pasar la llamada a otro agente. |
| `press_digit` | Marcar teclas (para navegar menús automáticos). |

> ⚠️ Al actualizar `general_tools` se reemplaza la lista completa: envía todas las funciones que el agente debe tener, no solo la nueva.

Las funciones de tipo `code` no están disponibles en el motor de voz VPower: usa una función `custom` que llame a tu API.

### Modelos

Los mismos que ofrece la ficha del agente en el panel. Si envías un modelo que no está disponible, responde `400`.

---

## Códigos de estado

| Código | Descripción |
|--------|-------------|
| `200` | Correcto. Devuelve la configuración (del borrador, si hubo cambios). |
| `400` | Campo no permitido, modelo no disponible o función mal formada (la respuesta indica cuál). |
| `401` | API Key ausente o inválida. |
| `403` | El agente no pertenece a tu cuenta. |
| `409` | El agente todavía no fue migrado al motor de voz VPower. |
