Simuler des conversations

Découvrez comment tester et évaluer votre agent ElevenLabs à l’aide de conversations simulées

Ce guide et les endpoints qu’il utilise sont obsolètes. Utilisez plutôt le type de test d’agent Simulation.

Présentation

L’API ElevenLabs Agents vous permet de simuler et d’évaluer des conversations textuelles avec votre agent IA. Ce guide vous apprendra à mettre en œuvre un workflow complet de tests de simulation à l’aide des endpoints de simulation de conversation (par lots et en streaming), afin de tester et d’améliorer précisément les performances de votre agent pour garantir qu’il atteigne vos objectifs d’interaction.

Prérequis

Mettre en œuvre un workflow de tests de simulation

1

Identifier les paramètres d'évaluation initiaux

Parcourez l’historique des conversations de votre agent et trouvez les cas où ses performances n’ont pas été à la hauteur. Utilisez ces conversations pour créer différents prompts destinés à un utilisateur simulé qui interagira avec votre agent. Définissez également tout critère d’évaluation supplémentaire qui ne figure pas déjà dans la configuration de votre agent, afin de tester les résultats que vous souhaitez obtenir pour un utilisateur simulé donné.

2

Simuler la conversation via le SDK

Créez une requête vers l’endpoint de simulation à l’aide du SDK 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)

Cet exemple est basique. Pour consulter la liste complète des paramètres d’entrée, reportez-vous au Guide de l’API des endpoints Simuler une conversation et Simuler une conversation en streaming.

3

Analyser la réponse

Le SDK fournit un objet JSON complet qui inclut l’intégralité de la transcription de la conversation et une analyse détaillée.

Conversation simulée : enregistre chaque tour d’interaction entre l’utilisateur simulé et l’agent, avec le détail des messages et de l’utilisation des outils.

Exemple d'historique de conversation
[
...
{
"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
}
...
]

Analyse : fournit des informations sur les résultats des critères d’évaluation, les métriques de collecte de données et un résumé de la transcription de la conversation.

Exemple d'analyse
{
"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

Améliorer vos critères d'évaluation

Examinez attentivement les conversations simulées afin d’évaluer l’efficacité de vos critères d’évaluation. Identifiez les lacunes ou les domaines dans lesquels ces critères pourraient ne pas suffire à évaluer les performances de l’agent. Affinez et ajustez les critères d’évaluation en conséquence afin de vous assurer qu’ils correspondent aux résultats souhaités et mesurent précisément les capacités de l’agent.

5

Améliorer votre agent

Une fois convaincu de la précision de vos critères d’évaluation, utilisez les enseignements tirés des conversations simulées pour renforcer les capacités de votre agent. Vous pouvez affiner le prompt système pour mieux guider les réponses de l’agent et vous assurer qu’elles correspondent à vos objectifs et aux attentes des utilisateurs. Explorez également d’autres fonctionnalités ou configurations à optimiser, telles que l’ajustement du ton de l’agent, l’amélioration de sa capacité à traiter des requêtes spécifiques ou l’intégration de sources de données supplémentaires pour enrichir ses réponses. En appliquant systématiquement ces enseignements, vous pouvez créer un agent conversationnel plus robuste et efficace, offrant une expérience utilisateur de meilleure qualité.

6

Itération continue

Après avoir terminé un premier cycle de tests et d’améliorations, la mise en place d’une suite de tests complète peut être un excellent moyen de couvrir un large éventail de scénarios possibles. Cette suite peut explorer plusieurs conversations simulées à l’aide de prompts variés pour les utilisateurs simulés et de conditions initiales différentes. En itérant continuellement et en affinant votre approche, vous pouvez garantir que votre agent reste efficace et réponde à l’évolution des besoins des utilisateurs.

Conseils pratiques

Prompts et critères détaillés

Créer des prompts détaillés et explicites pour les utilisateurs simulés ainsi que des critères d’évaluation précis peut renforcer l’efficacité des tests de simulation. Plus vous fournissez de contexte et de spécificité, mieux l’agent pourra comprendre les interactions complexes et y répondre.

Configurations d’outils simulés

Utilisez des configurations d’outils simulés pour tester le processus de prise de décision de votre agent. Vous pourrez ainsi observer comment l’agent décide d’effectuer des appels d’outils et réagit aux différents résultats de ces appels. Pour en savoir plus, consultez le paramètre d’entrée tool_mock_config du Guide de l’API.

Historique partiel des conversations

Utilisez des historiques partiels de conversations pour évaluer la manière dont les agents gèrent les interactions à partir d’un point précis. Cela s’avère particulièrement utile pour évaluer la capacité de l’agent à gérer des conversations dans lesquelles l’utilisateur a déjà formulé une question d’une certaine manière, ou lorsque certains appels d’outils ont réussi ou échoué. Pour en savoir plus, consultez le paramètre d’entrée partial_conversation_history du Guide de l’API.