Vai alla navigazione

Simula conversazioni

Scopri come testare e valutare il tuo agente ElevenLabs con conversazioni simulate

Questa guida e gli endpoint che utilizza sono deprecati. Usa invece il tipo di test dell’agente Simulazione.

Panoramica

L’API Agents di ElevenLabs ti consente di simulare e valutare conversazioni testuali con il tuo agente IA. Questa guida ti mostrerà come implementare un workflow completo di test delle simulazioni usando gli endpoint di simulazione delle conversazioni (batch e streaming), così potrai testare e migliorare in modo dettagliato le prestazioni del tuo agente per assicurarti che raggiunga i tuoi obiettivi di interazione.

Prerequisiti

Implementare un workflow di test delle simulazioni

1

Identifica i parametri iniziali di valutazione

Esamina la cronologia delle conversazioni del tuo agente e individua i casi in cui le sue prestazioni non sono state soddisfacenti. Usa queste conversazioni per creare vari prompt per un utente simulato che interagirà con il tuo agente. Inoltre, definisci eventuali criteri di valutazione aggiuntivi non già specificati nella configurazione dell’agente, per verificare gli esiti che potresti desiderare per uno specifico utente simulato.

2

Simula la conversazione tramite l'SDK

Crea una richiesta all’endpoint di simulazione usando l’SDK di ElevenLabs.

from dotenv import load_dotenv
from elevenlabs import (
ElevenLabs,
ConversationSimulationSpecification,
AgentConfig,
PromptAgent,
PromptEvaluationCriteria
)
load_dotenv()
api_key = os.getenv("ELEVENLABS_API_KEY")
elevenlabs = ElevenLabs(api_key=api_key)
response = elevenlabs.conversational_ai.agents.simulate_conversation(
agent_id="YOUR_AGENT_ID",
simulation_specification=ConversationSimulationSpecification(
simulated_user_config=AgentConfig(
prompt=PromptAgent(
prompt="Your goal is to be a really difficult user.",
llm="gpt-4o",
temperature=0.5
)
)
),
extra_evaluation_criteria=[
PromptEvaluationCriteria(
id="politeness_check",
name="Politeness Check",
conversation_goal_prompt="The agent was polite.",
use_knowledge_base=False
)
]
)
print(response)

Questo è un esempio di base. Per un elenco completo dei parametri di input, consulta il Riferimento API degli endpoint Simula conversazione e Simula conversazione in streaming.

3

Analizza la risposta

L’SDK fornisce un oggetto JSON completo che include l’intera trascrizione della conversazione e un’analisi dettagliata.

Conversazione simulata: registra ogni turno di interazione tra l’utente simulato e l’agente, descrivendo in dettaglio messaggi e utilizzo degli strumenti.

Esempio di cronologia della conversazione
[
...
{
"role": "user",
"message": "Maybe a little. I'll think about it, but I'm still not convinced it's the right move.",
"tool_calls": [],
"tool_results": [],
"feedback": null,
"llm_override": null,
"time_in_call_secs": 0,
"conversation_turn_metrics": null,
"rag_retrieval_info": null,
"llm_usage": null
},
{
"role": "agent",
"message": "I understand. If you want to explore more at your own pace, I can direct you to our documentation, which has guides and API references. Would you like me to send you a link?",
"tool_calls": [],
"tool_results": [],
"feedback": null,
"llm_override": null,
"time_in_call_secs": 0,
"conversation_turn_metrics": null,
"rag_retrieval_info": null,
"llm_usage": null
},
{
"role": "user",
"message": "I guess it wouldn't hurt to take a look. Go ahead and send it over.",
"tool_calls": [],
"tool_results": [],
"feedback": null,
"llm_override": null,
"time_in_call_secs": 0,
"conversation_turn_metrics": null,
"rag_retrieval_info": null,
"llm_usage": null
},
{
"role": "agent",
"message": null,
"tool_calls": [
{
"type": "client",
"request_id": "redirectToDocs_421d21e4b4354ed9ac827d7600a2d59c",
"tool_name": "redirectToDocs",
"params_as_json": "{\"path\": \"/docs/api-reference/introduction\"}",
"tool_has_been_called": false,
"tool_details": null
}
],
"tool_results": [],
"feedback": null,
"llm_override": null,
"time_in_call_secs": 0,
"conversation_turn_metrics": null,
"rag_retrieval_info": null,
"llm_usage": null
},
{
"role": "agent",
"message": null,
"tool_calls": [],
"tool_results": [
{
"type": "client",
"request_id": "redirectToDocs_421d21e4b4354ed9ac827d7600a2d59c",
"tool_name": "redirectToDocs",
"result_value": "Tool Called.",
"is_error": false,
"tool_has_been_called": true,
"tool_latency_secs": 0
}
],
"feedback": null,
"llm_override": null,
"time_in_call_secs": 0,
"conversation_turn_metrics": null,
"rag_retrieval_info": null,
"llm_usage": null
},
{
"role": "agent",
"message": "Okay, I've sent you a link to the introduction to our API reference. It provides a good starting point for understanding our different tools and how they can be integrated. Let me know if you have any questions as you explore it.\n",
"tool_calls": [],
"tool_results": [],
"feedback": null,
"llm_override": null,
"time_in_call_secs": 0,
"conversation_turn_metrics": null,
"rag_retrieval_info": null,
"llm_usage": null
}
...
]

Analisi: offre informazioni sugli esiti dei criteri di valutazione, sulle metriche di raccolta dati e un riepilogo della trascrizione della conversazione.

Esempio di analisi
{
"analysis": {
"evaluation_criteria_results": {
"politeness_check": {
"criteria_id": "politeness_check",
"result": "success",
"rationale": "The agent remained polite and helpful despite the user's challenging attitude."
},
"understood_root_cause": {
"criteria_id": "understood_root_cause",
"result": "success",
"rationale": "The agent acknowledged the user's hesitation and provided relevant information."
},
"positive_interaction": {
"criteria_id": "positive_interaction",
"result": "success",
"rationale": "The user eventually asked for the documentation link, indicating engagement."
}
},
"data_collection_results": {
"issue_type": {
"data_collection_id": "issue_type",
"value": "support_issue",
"rationale": "The user asked for help with integrating ElevenLabs tools."
},
"user_intent": {
"data_collection_id": "user_intent",
"value": "The user is interested in integrating ElevenLabs tools into a project."
}
},
"call_successful": "success",
"transcript_summary": "The user expressed skepticism, but the agent provided useful information and a link to the API documentation."
}
}
4

Migliora i criteri di valutazione

Esamina attentamente le conversazioni simulate per valutare l’efficacia dei tuoi criteri di valutazione. Individua eventuali lacune o aspetti in cui i criteri potrebbero non riuscire a valutare le prestazioni dell’agente. Perfeziona e adatta di conseguenza i criteri di valutazione per assicurarti che siano in linea con i risultati desiderati e misurino accuratamente le capacità dell’agente.

5

Migliora il tuo agente

Quando sei sicuro dell’accuratezza dei tuoi criteri di valutazione, usa quanto appreso dalle conversazioni simulate per migliorare le capacità del tuo agente. Valuta di perfezionare il system prompt per guidare meglio le risposte dell’agente, assicurandoti che siano in linea con i tuoi obiettivi e le aspettative degli utenti. Inoltre, esplora altre funzionalità o configurazioni che potrebbero essere ottimizzate, ad esempio regolando il tono dell’agente, migliorando la sua capacità di gestire query specifiche o integrando ulteriori fonti di dati per arricchire le sue risposte. Applicando sistematicamente quanto appreso, puoi creare un agente conversazionale più solido ed efficace, in grado di offrire un’esperienza utente superiore.

6

Iterazione continua

Dopo aver completato un primo ciclo di test e miglioramento, creare una suite di test completa può essere un ottimo modo per coprire un’ampia gamma di scenari possibili. Questa suite può esplorare più conversazioni simulate usando prompt e condizioni iniziali variabili per gli utenti simulati. Grazie a iterazioni e perfezionamenti continui del tuo approccio, puoi assicurarti che il tuo agente rimanga efficace e reattivo alle esigenze in evoluzione degli utenti.

Suggerimenti utili

Prompt e criteri dettagliati

Creare prompt dettagliati e completi per utenti simulati, nonché criteri di valutazione dettagliati, può migliorare l’efficacia dei test di simulazione. Più contesto e specificità fornisci, meglio l’agente potrà comprendere e rispondere a interazioni complesse.

Configurazioni di strumenti mock

Usa configurazioni di strumenti mock per testare il processo decisionale del tuo agente. Ciò ti consente di osservare come l’agente decide di effettuare chiamate agli strumenti e di reagire ai diversi risultati delle chiamate. Per maggiori dettagli, consulta il parametro di input tool_mock_config nel Riferimento API.

Cronologia parziale della conversazione

Usa cronologie parziali delle conversazioni per valutare come gli agenti gestiscono le interazioni a partire da un punto specifico. È particolarmente utile per valutare la capacità dell’agente di gestire conversazioni in cui l’utente ha già formulato una domanda in un modo specifico o in cui alcune chiamate agli strumenti hanno avuto esito positivo o negativo. Per maggiori dettagli, consulta il parametro di input partial_conversation_history nel Riferimento API.