# Test con clienti simulati: controlla il tuo agente dopo ogni modifica

> Scrivi casi di test per il tuo agente di chat AI: un'AI interpreta il cliente, il tuo agente risponde con le sue impostazioni e i suoi strumenti reali, e un giudice AI valuta ogni chat come superata o non superata. Le azioni sono simulate, quindi i test non hanno effetti collaterali.

Una modifica alle istruzioni, alla conoscenza o alle procedure può correggere una risposta e rovinarne un'altra senza che te ne accorga. I test con clienti simulati ti permettono di controllare con un clic le conversazioni più importanti: descrivi un cliente e com'è una buona chat, un'AI interpreta quel cliente e chatta con il tuo agente, e un giudice AI valuta ogni chat con **Pass** o **Fail** e una motivazione.

Il tuo agente risponde esattamente come farebbe sul tuo sito: con le istruzioni, i guardrail, la conoscenza, le [procedure](/it/docs/procedures) e gli strumenti salvati. In un test non può però cambiare nulla nel mondo reale. Vedi [Cosa viene simulato](#cosa-viene-simulato).

> I test fanno parte dei piani Starter, Pro ed Enterprise. Nel piano Free la sezione **Tests** mostra **Included from Starter**.

## Aggiungere un test

1. Apri la scheda **Playground** del tuo agente e scorri fino a **Tests with simulated customers**, sotto la chat.
2. Clicca **Add test** e compila:
   - **Name**: fino a 80 caratteri, per esempio "Rimborso per un ordine in ritardo".
   - **Customer**: chi è e come si comporta, fino a 1.000 caratteri. Per esempio: "Un cliente impaziente il cui ordine è in ritardo di una settimana. Scrive messaggi brevi e non dà dettagli finché non gli vengono chiesti." Il cliente scrive nella lingua che questa descrizione suggerisce, quindi "un cliente tedesco" chatta in tedesco.
   - **Goal**: cosa vuole ottenere dalla chat, fino a 1.000 caratteri. Per esempio: "Farsi rimborsare l'ordine 1042."
   - **Success criteria**: cosa l'agente deve fare, o non fare mai, perché la chat sia superata, fino a 1.000 caratteri. Per esempio: "Chiede il numero d'ordine, avvia la procedura di rimborso e non promette un rimborso prima che sia confermato."
   - **First message** (facoltativo): fino a 500 caratteri. Se lo lasci vuoto, il cliente simulato scrive il proprio.
   - **Max turns**: quante risposte dà al massimo l'agente, da 1 a 8 (6 per impostazione predefinita).
   - **Allow read-only actions**: disattivato per impostazione predefinita. Vedi [Cosa viene simulato](#cosa-viene-simulato).
3. Clicca **Add test**.

Un agente può avere fino a 25 test. **Edit** modifica un test e il pulsante del cestino lo elimina; i risultati passati ne conservano il nome.

## Eseguire i test

- **Run all** esegue tutti i test dell'agente, uno dopo l'altro. **Run** accanto a un test esegue solo quello.
- La pagina mostra ogni test appena finisce. Tienila aperta mentre i test sono in corso: la pagina richiede un test alla volta. Se la chiudi o la ricarichi, l'esecuzione riprende quando qualcuno con accesso in modifica riapre il Playground; un'esecuzione a cui nessuno torna viene annullata dopo qualche minuto, quando ne parte una nuova.
- **Cancel** interrompe l'esecuzione. Il test in corso si ferma al passo successivo.
- Per ogni agente può essere in corso una sola esecuzione alla volta.

Un test finisce quando il cliente simulato chiude la chat (perché ha raggiunto il suo obiettivo o rinuncia), oppure quando l'agente ha risposto **Max turns** volte. A quel punto il giudice legge l'intera chat e decide.

## Risultati

- In alto: la percentuale di test superati, per esempio **80% passed**, e quanti ne sono stati superati nell'esecuzione.
- Ogni test mostra **Pass**, **Fail** o **Error**. Cliccalo per leggere la motivazione del giudice e l'intera chat, con gli strumenti usati dall'agente sotto ogni risposta (per esempio un passaggio, un modulo o un'azione) e ciò che è stato mostrato sotto una risposta.
- **Error** significa che non è stato possibile valutare il test, per esempio perché l'agente ha impiegato troppo a rispondere o la risposta del giudice non era leggibile. Gli errori non contano nella percentuale di test superati. Esegui di nuovo il test.
- **Recent runs** elenca le tue ultime 10 esecuzioni; clicca una per vederne i risultati. Le esecuzioni più vecchie vengono eliminate.

> Anche il giudice è un'AI e può sbagliare, e il cliente simulato non si comporta sempre come uno reale. Leggi la trascrizione prima di modificare il tuo agente per un fail, e scrivi criteri verificabili dalla chat stessa, come "chiede il numero d'ordine prima di cercare qualcosa".

## Cosa viene simulato

I test non causano mai effetti collaterali. Al tuo agente vengono offerti gli stessi strumenti di una chat reale, ma:

- Le **azioni API** che girano sul nostro server non vengono chiamate. L'agente riceve un risultato contrassegnato come dati di test simulati e gli viene detto di non ricavarne dettagli inventati. Con **Allow read-only actions** attivo, le azioni con metodo GET vengono eseguite davvero, così le risposte possono usare i tuoi dati reali; tutte le altre azioni restano simulate.
- Le **azioni lato client** (JavaScript nel browser del visitatore) vengono saltate.
- Le richieste di **passaggio via email** e di **live chat** sono simulate: nessuno riceve un'email, un messaggio Slack, un ticket di helpdesk o una richiesta di live chat.
- **Prenotazioni**: a nessun calendario vengono chiesti gli orari e non viene prenotato nulla.
- **Ordini**: nessun ordine viene cercato e nessuna richiesta di reso viene inviata al tuo negozio.
- Le **procedure** vengono seguite passo per passo come sempre, con il loro stato conservato solo per il test. Le loro azioni sono simulate come tutte le altre.
- I **moduli dei lead** e i **moduli in chat** possono comparire sotto una risposta, ma non viene inviato nulla. I contatti che il cliente scrive vengono riconosciuti, ma nessun lead viene salvato e non vengono inviati né notifiche né webhook.
- La [ricerca web](/it/docs/web-search), quando è attiva, cerca davvero.

Nulla di un test compare in **Conversations**, **Leads**, negli argomenti o nelle statistiche della dashboard. I risultati vengono conservati solo nella sezione Tests.

## Messaggi

Ogni risposta che il tuo agente dà in un test conta come un messaggio del tuo piano, come un messaggio nel Playground. Il cliente simulato e il giudice non contano. Prima di avviare, la sezione mostra quanti messaggi usa al massimo un'esecuzione: la somma dei **Max turns** di ogni test. Spesso un test ne usa meno, perché il cliente chiude prima la chat.

Quando i messaggi del tuo piano, o il [tetto mensile di messaggi](/it/docs/limits-and-access) dell'agente, finiscono durante un'esecuzione, i test si fermano e i rimanenti mostrano **Error**. Vedi [Piani e limiti](/it/docs/plans-and-limits).

## Ruoli nel team

I membri del team con il ruolo **Viewer** vedono i test e i loro risultati, ma non possono aggiungerli, modificarli, eliminarli né eseguirli. Editor, Admin e il proprietario possono farlo. Vedi [Membri del team e ruoli](/it/docs/team).

## Consigli

- Inizia con le cinque o dieci conversazioni più importanti: la domanda più frequente, un rimborso o una disdetta, una domanda a cui il tuo agente non deve rispondere, una richiesta di parlare con una persona.
- Scrivi una sola cosa da controllare per criterio, con parole semplici, e indica anche ciò che non deve succedere.
- Esegui tutti i test dopo aver cambiato istruzioni, guardrail, conoscenza o una procedura, e confronta la percentuale di test superati con l'esecuzione precedente.
- Per un test che fallisce, prova tu stesso la stessa conversazione nel Playground qui sopra per vedere cosa fa l'agente.
