> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Actualizar estado

## Resumen

La herramienta **Actualizar estado** permite a tu agente establecer una o varias [variables dinámicas](/docs/es/eleven-agents/customization/personalization/dynamic-variables) mientras hay una conversación en curso. Como otras [herramientas del sistema](/docs/es/eleven-agents/customization/tools/system-tools), solo cambia el estado interno de la conversación; nunca llama a una API externa ni a una función del lado del cliente.

Úsala para registrar información a medida que se desarrolla una llamada; por ejemplo, para indicar que una conversación debe escalarse, almacenar un valor proporcionado por el usuario o calcular un valor derivado de otras variables dinámicas.

Para aplicar actualizaciones de estado en un punto fijo de un [workflow](/docs/es/eleven-agents/customization/agent-workflows), en lugar de cuando el LLM llama a una herramienta, usa un [nodo de actualización de estado](/docs/es/eleven-agents/customization/agent-workflows#update-state-node). Acepta las mismas actualizaciones de estado.

## Funcionalidad

* **Varias actualizaciones por llamada**: Una sola llamada a la herramienta puede asignar hasta 50 variables dinámicas a la vez.
* **Valores basados en expresiones**: Cada valor es el resultado de una expresión, que puede combinar constantes, variables dinámicas existentes, valores que el LLM extrae de la conversación y operadores.
* **Extracción del LLM solo cuando es necesaria**: La herramienta solo pide al LLM que extraiga parámetros para las actualizaciones que lo requieren. Las actualizaciones creadas completamente a partir de constantes o variables dinámicas existentes no añaden parámetros a la llamada de función.
* **Disponibilidad inmediata**: Una vez que se ejecuta la herramienta, las variables dinámicas actualizadas están disponibles para el resto de la conversación: prompts posteriores, otras llamadas a herramientas y overrides pueden hacer referencia a ellas, igual que a cualquier otra variable dinámica.

## Cómo funciona

Cada actualización de estado asigna el resultado de una expresión a una variable dinámica:

```text
variable_name = expression
```

Una expresión puede ser de uno de los siguientes tipos, y las expresiones pueden anidarse entre sí para crear lógica más compleja:

| Tipo                    | Descripción                                                                                                       |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Constante               | Un valor fijo de texto, número, booleano o nulo.                                                                  |
| Variable dinámica       | El valor actual de otra variable dinámica.                                                                        |
| Valor extraído por LLM  | Un valor que el LLM infiere de la conversación y que coincide con un tipo que defines (texto, número o booleano). |
| Operador lógico         | `and`, `or` o una expresión condicional (`if` / `then` / `else`) que combina otras expresiones.                   |
| Operador de comparación | `=`, `≠`, `>`, `<`, `≥`, `≤`, que compara dos expresiones.                                                        |
| Operador aritmético     | `+`, `-`, `×`, `÷`, que combina dos expresiones numéricas (o de texto, en el caso de `+`).                        |

Por ejemplo, la siguiente actualización de estado establece `should_escalate` en `true` si el LLM considera que el usuario está frustrado o si una variable dinámica `retry_count` ya es mayor que 3:

```text
should_escalate = (llm: "User sounds frustrated with the conversation") OR (retry_count > 3)
```

> **Note**
>
> Si una actualización de estado no se puede evaluar —por ejemplo, por una división entre cero—, la llamada a la herramienta devuelve un
> error y no se aplica ninguna de las actualizaciones de esa llamada.

## Configuración

### Paso 1: Añade la herramienta

Ve a la página de configuración de tu agente. En la sección **Herramientas**, haz clic en **Añadir herramienta** y elige **Actualizar estado**.

### Paso 2: Define las actualizaciones de estado

Para cada actualización de estado, indica:

* **Nombre de variable**: La variable dinámica que asignar.
* **Expresión**: El valor que asignar, creado a partir de los tipos de valores y operadores descritos anteriormente. Los valores pueden anidarse para crear expresiones más complejas.
* **Obligatorio**: Cuando está desactivado, el LLM puede omitir los valores de los que depende esta actualización. Entonces, se omite la actualización y la variable conserva su valor actual.

Puedes definir hasta 50 actualizaciones de estado para una sola herramienta.

### Paso 3: Configura la descripción (opcional)

Puedes proporcionar una descripción personalizada para orientar al LLM sobre cuándo debe llamar a la herramienta. Si la dejas en blanco, se usará una descripción predeterminada optimizada para esta herramienta.

## Casos de uso

* **Indicadores de escalado**: Establece una variable dinámica (por ejemplo, `should_escalate`) que un sistema posterior o una regla de negocio compruebe, como se muestra en la [guía de integración de Genesys](/docs/es/eleven-agents/customization/integrations/genesys#configure-escalation).
* **Registro de información extraída**: Almacena como variable dinámica un valor proporcionado por el usuario —un número de pedido, una preferencia o un departamento elegido— para usarlo más adelante en la conversación.
* **Valores derivados**: Calcula un valor a partir de otras variables dinámicas, como incrementar un contador o combinar dos variables en una.

**Objetivo**: Permitir que el agente actualice una o varias variables dinámicas según la conversación, sin llamar a una API externa.

**Condiciones de activación**: El LLM debe llamar a esta herramienta cuando:

* La conversación proporcione información que deba registrarse (por ejemplo, una marca de escalado, una opción elegida o un valor proporcionado por el usuario)
* Una actualización de estado configurada dependa de un valor que el LLM deba evaluar o extraer de la conversación

**Parámetros**:

Los parámetros de la función dependen de cómo esté configurada la herramienta. Cada actualización de estado configurada que use un valor extraído por un LLM añade una propiedad al esquema, con el nombre de la variable dinámica de esa actualización y el tipo `string`, `number` o `boolean`. Las actualizaciones de estado creadas solo con constantes u otras variables dinámicas no añaden ningún parámetro.

**Formato de llamada de función**:

```json
{
  "type": "function",
  "function": {
    "name": "update_state",
    "arguments": "{\"should_escalate\": true}"
  }
}
```

**Implementación**: El agente evalúa cada expresión configurada usando los parámetros extraídos y las variables dinámicas actuales de la conversación, y después asigna los resultados a las variables dinámicas correspondientes. No se realiza ninguna solicitud externa.

## Preguntas frecuentes

#### ¿Esta herramienta realiza llamadas externas?

No. Como todas las herramientas del sistema, Actualizar estado solo modifica el estado interno de la conversación. No
llama a una API externa ni a una función del lado del cliente.

#### ¿Llamar a esta herramienta siempre requiere que el LLM extraiga parámetros?

No. La herramienta solo pide al LLM que extraiga un parámetro para las actualizaciones de estado cuya expresión
incluye un valor extraído por el LLM. Si todas las actualizaciones configuradas se crean a partir de constantes o
variables dinámicas existentes, la llamada de función no recibe parámetros.

#### ¿Dónde puedo usar las variables dinámicas que establece esta herramienta?

En cualquier lugar donde puedas usar una variable dinámica: prompts del sistema, primeros mensajes, parámetros y
cabeceras de herramientas, y overrides. Consulta [Variables dinámicas](/docs/es/eleven-agents/customization/personalization/dynamic-variables) para obtener más información.

#### ¿Puedo configurar esta herramienta mediante la API?

Actualmente puedes configurar Actualizar estado desde el panel del agente. La compatibilidad con API y SDK aún no
está disponible.