> 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.

# Aggiorna stato

## Panoramica

Lo strumento **Aggiorna stato** consente al tuo agente di impostare una o più [variabili dinamiche](/docs/it/eleven-agents/customization/personalization/dynamic-variables) mentre è in corso una conversazione. Come gli altri [strumenti di sistema](/docs/it/eleven-agents/customization/tools/system-tools), modifica solo lo stato interno della conversazione: non chiama mai un'API esterna o una funzione lato client.

Usalo per registrare informazioni durante una chiamata, ad esempio per segnalare che una conversazione deve essere inoltrata a un livello superiore, memorizzare un valore fornito dall'utente o calcolare un valore derivato da altre variabili dinamiche.

Per applicare aggiornamenti di stato in un punto fisso di un [workflow](/docs/it/eleven-agents/customization/agent-workflows), anziché ogni volta che l'LLM chiama uno strumento, usa un [nodo di aggiornamento dello stato](/docs/it/eleven-agents/customization/agent-workflows#update-state-node). Accetta gli stessi aggiornamenti di stato.

## Funzionalità

* **Aggiornamenti multipli per chiamata**: una singola chiamata dello strumento può assegnare fino a 50 variabili dinamiche contemporaneamente.
* **Valori basati su espressioni**: ogni valore è il risultato di un'espressione, che può combinare costanti, variabili dinamiche esistenti, valori estratti dall'LLM dalla conversazione e operatori.
* **Estrazione LLM solo quando necessaria**: lo strumento chiede all'LLM di estrarre parametri solo per gli aggiornamenti che lo richiedono. Gli aggiornamenti creati interamente da costanti e/o variabili dinamiche esistenti non aggiungono parametri alla chiamata della funzione.
* **Disponibilità immediata**: dopo l'esecuzione dello strumento, le variabili dinamiche aggiornate sono disponibili per il resto della conversazione: prompt successivi, altre chiamate di strumenti e override possono fare riferimento a esse, come a qualsiasi altra variabile dinamica.

## Come funziona

Ogni aggiornamento di stato assegna il risultato di un'espressione a una variabile dinamica:

```text
variable_name = expression
```

Un'espressione è uno dei seguenti tipi e le espressioni possono essere annidate tra loro per creare una logica più complessa:

| Tipo                     | Descrizione                                                                                                           |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------- |
| Costante                 | Un valore fisso stringa, numero, booleano o null.                                                                     |
| Variabile dinamica       | Il valore corrente di un'altra variabile dinamica.                                                                    |
| Valore estratto dall'LLM | Un valore che l'LLM deduce dalla conversazione, corrispondente a un tipo da te definito (stringa, numero o booleano). |
| Operatore logico         | `and`, `or` o un'espressione condizionale (`if` / `then` / `else`) che combina altre espressioni.                     |
| Operatore di confronto   | `=`, `≠`, `>`, `<`, `≥`, `≤`, che confronta due espressioni.                                                          |
| Operatore aritmetico     | `+`, `-`, `×`, `÷`, che combina due espressioni numeriche (o, per `+`, stringa).                                      |

Ad esempio, il seguente aggiornamento di stato imposta `should_escalate` su `true` se l'LLM ritiene che l'utente sia frustrato o se una variabile dinamica `retry_count` è già maggiore di 3:

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

> **Note**
>
> Se non è possibile valutare un aggiornamento di stato, ad esempio per una divisione per zero, la chiamata dello strumento restituisce un
> errore e nessuno degli aggiornamenti di quella chiamata viene applicato.

## Configurazione

### Passaggio 1: aggiungi lo strumento

Vai alla pagina di configurazione del tuo agente. Nella sezione **Strumenti**, fai clic su **Aggiungi strumento** e scegli **Aggiorna stato**.

### Passaggio 2: definisci gli aggiornamenti di stato

Per ogni aggiornamento di stato, fornisci:

* **Nome della variabile**: la variabile dinamica da assegnare.
* **Espressione**: il valore da assegnare, creato con i tipi di valori e operatori descritti sopra. I valori possono essere annidati per creare espressioni più complesse.
* **Obbligatorio**: se disabilitato, l'LLM può omettere i valori da cui dipende questo aggiornamento. L'aggiornamento viene quindi ignorato e la variabile mantiene il suo valore corrente.

Puoi definire fino a 50 aggiornamenti di stato per un singolo strumento.

### Passaggio 3: configura la descrizione (facoltativo)

Puoi fornire una descrizione personalizzata per indicare all'LLM quando chiamare lo strumento. Se la lasci vuota, verrà usata una descrizione predefinita ottimizzata per questo strumento.

## Casi d'uso

* **Indicatori di escalation**: imposta una variabile dinamica (ad esempio `should_escalate`) che un sistema a valle o una regola aziendale controlla, come illustrato nella [guida all'integrazione Genesys](/docs/it/eleven-agents/customization/integrations/genesys#configure-escalation).
* **Registrazione delle informazioni estratte**: memorizza come variabile dinamica un valore fornito dall'utente (un numero d'ordine, una preferenza, il reparto scelto) da usare più avanti nella conversazione.
* **Valori derivati**: calcola un valore da altre variabili dinamiche, ad esempio incrementando un contatore o combinando due variabili in una.

**Scopo**: consentire all'agente di aggiornare una o più variabili dinamiche in base alla conversazione, senza chiamare un'API esterna.

**Condizioni di attivazione**: l'LLM deve chiamare questo strumento quando:

* La conversazione fornisce informazioni da registrare (ad esempio, un flag di escalation, un'opzione scelta, un valore fornito dall'utente)
* Un aggiornamento dello stato configurato dipende da un valore che l'LLM deve valutare o estrarre dalla conversazione

**Parametri**:

I parametri della funzione dipendono dalla configurazione dello strumento. Ogni aggiornamento dello stato configurato che utilizza un valore estratto dall'LLM aggiunge una proprietà allo schema, denominata come la variabile dinamica di quell'aggiornamento e di tipo `string`, `number` o `boolean`. Gli aggiornamenti dello stato creati solo da costanti o altre variabili dinamiche non aggiungono parametri.

**Formato della chiamata di funzione**:

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

**Implementazione**: l'agente valuta ogni espressione configurata utilizzando i parametri estratti e le variabili dinamiche correnti della conversazione, quindi assegna i risultati alle corrispondenti variabili dinamiche. Non viene effettuata alcuna richiesta esterna.

## FAQ

#### Questo strumento effettua chiamate esterne?

No. Come tutti gli strumenti di sistema, Aggiorna stato modifica solo lo stato interno della conversazione.
Non chiama un'API esterna né una funzione lato client.

#### La chiamata di questo strumento richiede sempre che l'LLM estragga parametri?

No. Lo strumento chiede all'LLM di estrarre un parametro solo per gli aggiornamenti di stato la cui espressione
include un valore estratto dall'LLM. Se ogni aggiornamento configurato è creato da costanti e/o
variabili dinamiche esistenti, la chiamata della funzione non richiede parametri.

#### Dove posso usare le variabili dinamiche impostate da questo strumento?

Ovunque sia possibile usare una variabile dinamica: prompt di sistema, primi messaggi, parametri degli strumenti e
header, nonché override. Per i dettagli, consulta [Variabili dinamiche](/docs/it/eleven-agents/customization/personalization/dynamic-variables).

#### Posso configurare questo strumento tramite l'API?

Aggiorna stato è attualmente configurabile tramite la dashboard dell'agente. Il supporto per API e SDK non è
ancora disponibile.