Vai alla navigazione

Strumenti client

Consenti al tuo assistente di attivare operazioni lato client.

Gli strumenti client consentono al tuo assistente di eseguire funzioni lato client. A differenza degli strumenti webhook, gli strumenti client permettono all’assistente di eseguire azioni come attivare eventi del browser, eseguire funzioni lato client o inviare notifiche a un’interfaccia utente.

Panoramica

Le applicazioni potrebbero richiedere agli assistenti di interagire direttamente con l’ambiente dell’utente. Gli strumenti lato client consentono al tuo assistente di eseguire operazioni lato client.

Ecco alcuni esempi in cui gli strumenti client possono essere utili:

  • Attivare eventi dell’interfaccia utente: consenti a un assistente di attivare eventi del browser, come avvisi, modali o notifiche.
  • Interagire con il DOM: consenti a un assistente di manipolare il Document Object Model (DOM) per aggiornamenti dinamici dei contenuti o per guidare gli utenti attraverso interfacce complesse.

Per chiamare API lato server, usa invece gli strumenti webhook.

Guida

Prerequisiti

1

Crea un nuovo strumento lato client

Configura uno strumento client denominato logMessage con un parametro stringa obbligatorio message (“Il messaggio da registrare nella console”).

Vai alla dashboard del tuo agente. Nella sezione Strumenti, fai clic su Aggiungi strumento. Assicurati che Tipo di strumento sia impostato su Client. Quindi configura quanto segue:

ImpostazioneParametro
NomelogMessage
DescrizioneUsa questo strumento lato client per registrare un messaggio nel client dell’utente.

Quindi crea un nuovo parametro message con la seguente configurazione:

ImpostazioneParametro
Tipo di datiStringa
Identificatoremessage
Obbligatoriotrue
DescrizioneIl messaggio da registrare nella console. Assicurati che sia informativo e pertinente.

Configurazione dello strumento client logMessage

2

Registra lo strumento client nel tuo codice

A differenza degli strumenti webhook, gli strumenti client devono essere registrati nel tuo codice.

Usa il seguente codice per registrare lo strumento client:

from elevenlabs import ElevenLabs
from elevenlabs.conversational_ai.conversation import Conversation, ClientTools
def log_message(parameters):
message = parameters.get("message")
print(message)
client_tools = ClientTools()
client_tools.register("logMessage", log_message)
conversation = Conversation(
client=ElevenLabs(api_key="your-api-key"),
agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
requires_auth=True,
client_tools=client_tools,
# ...
)
conversation.start_session()

I nomi dello strumento e dei parametri nella configurazione dell’agente distinguono tra maiuscole e minuscole e devono corrispondere a quelli registrati nel tuo codice.

3

Test

Avvia una conversazione con il tuo agente e di’ qualcosa come:

Registra nella console un messaggio con scritto Hello World

Dovresti vedere comparire nella console un log Hello World.

4

Passaggi successivi

Ora che hai configurato un evento lato client di base, puoi:

  • Esplorare strumenti client più complessi, come l’apertura di modali, la navigazione verso pagine o l’interazione con il DOM.
  • Combinare gli strumenti client con webhook lato server per interazioni full-stack.
  • Usare gli strumenti client per migliorare il coinvolgimento degli utenti e fornire feedback in tempo reale durante le conversazioni.

Passare i risultati degli strumenti client al contesto della conversazione

Quando vuoi che il tuo agente riceva dati da uno strumento client, assicurati di selezionare l’opzione Attendi risposta nella configurazione dello strumento.

Opzione Attendi risposta nella configurazione dello strumento client

Una volta aggiunto lo strumento client, quando viene chiamata la funzione l’agente attenderà la sua risposta e la aggiungerà al contesto della conversazione.

def get_customer_details():
# Fetch customer details (e.g., from an API or database)
customer_data = {
"id": 123,
"name": "Alice",
"subscription": "Pro"
}
# Return the customer data; it can also be a JSON string if needed.
return customer_data
client_tools = ClientTools()
client_tools.register("getCustomerDetails", get_customer_details)
conversation = Conversation(
client=ElevenLabs(api_key="your-api-key"),
agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
requires_auth=True,
client_tools=client_tools,
# ...
)
conversation.start_session()

In questo esempio, quando l’agente chiama getCustomerDetails, la funzione verrà eseguita sul client e l’agente riceverà i dati restituiti, che verranno quindi utilizzati come parte del contesto della conversazione. I valori della risposta possono anche essere assegnati facoltativamente a variabili dinamiche, in modo simile agli strumenti webhook. Tieni presente che gli strumenti di sistema non possono aggiornare le variabili dinamiche.

Risoluzione dei problemi

  • Assicurati che i nomi dello strumento e dei parametri nella configurazione dell’agente corrispondano a quelli registrati nel tuo codice.
  • Visualizza la trascrizione della conversazione nella dashboard dell’agente per verificare che lo strumento venga eseguito.
  • Apri la console del browser per verificare la presenza di eventuali errori.
  • Assicurati che il tuo codice gestisca correttamente parametri non definiti o imprevisti.

Best practice

Assegna agli strumenti nomi intuitivi e descrizioni dettagliate

Se noti che l’assistente non effettua chiamate agli strumenti corretti, potrebbe essere necessario aggiornare i nomi e le descrizioni degli strumenti affinché capisca più chiaramente quando selezionare ciascuno strumento. Evita di usare abbreviazioni o acronimi per accorciare i nomi degli strumenti e degli argomenti.

Puoi anche includere descrizioni dettagliate che indicano quando chiamare uno strumento. Per gli strumenti complessi, includi descrizioni per ciascun argomento, così da aiutare l’assistente a capire cosa deve chiedere all’utente per raccogliere quell’argomento.

Assegna ai parametri degli strumenti nomi intuitivi e descrizioni dettagliate

Usa nomi chiari e descrittivi per i parametri degli strumenti. Se pertinente, specifica nella descrizione il formato previsto per un parametro, ad esempio YYYY-mm-dd o dd/mm/yy per una data.

Valuta di fornire ulteriori informazioni su come e quando chiamare gli strumenti nel prompt di sistema dell’assistente

Fornire istruzioni chiare nel prompt di sistema può migliorare notevolmente la precisione delle chiamate agli strumenti dell’assistente. Ad esempio, guida l’assistente con istruzioni come le seguenti:

Use `check_order_status` when the user inquires about the status of their order, such as 'Where is my order?' or 'Has my order shipped yet?'.

Fornisci contesto per scenari complessi. Ad esempio:

Before scheduling a meeting with `schedule_meeting`, check the user's calendar for availability using check_availability to avoid conflicts.

Selezione dell’LLM

Quando usi gli strumenti, ti consigliamo di scegliere modelli ad alta capacità di ragionamento come GPT 6 o Claude Sonnet 5.5.

È importante notare che la scelta dell’LLM influisce sul successo delle chiamate di funzione. Alcuni LLM possono avere difficoltà a estrarre dalla conversazione i parametri pertinenti.