Skip to navigation

Gesprekken simuleren

Leer hoe je je ElevenLabs-agent test en evalueert met gesimuleerde gesprekken

Deze handleiding en de endpoints die hierin worden gebruikt, zijn verouderd. Gebruik in plaats daarvan het agenttesttype Simulation.

Overzicht

Met de ElevenLabs Agents API kun je tekstgebaseerde gesprekken met je AI-agent simuleren en evalueren. In deze handleiding leer je hoe je een volledige workflow voor simulatietests implementeert met de endpoints voor het simuleren van gesprekken (batch en streaming). Zo kun je de prestaties van je agent gedetailleerd testen en verbeteren, zodat deze aan je interactiedoelen voldoet.

Vereisten

Een workflow voor simulatietests implementeren

1

Bepaal de initiële evaluatieparameters

Doorzoek de gespreksgeschiedenis van je agent en zoek gevallen waarin je agent minder goed heeft gepresteerd. Gebruik die gesprekken om verschillende prompts te maken voor een gesimuleerde gebruiker die met je agent communiceert. Definieer daarnaast eventuele extra evaluatiecriteria die nog niet in je agentconfiguratie zijn opgegeven, om uitkomsten te testen die je voor een specifieke gesimuleerde gebruiker wilt bereiken.

2

Simuleer het gesprek via de SDK

Maak met de ElevenLabs SDK een request naar het simulatie-endpoint.

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)

Dit is een eenvoudig voorbeeld. Raadpleeg voor een volledige lijst met invoerparameters de API- referentie voor de endpoints Gesprek simuleren en Gesprekssimulatie streamen.

3

Analyseer de response

De SDK levert een uitgebreid JSON-object met het volledige gesprekstranscript en een gedetailleerde analyse.

Gesimuleerd gesprek: bevat elke interactiebeurt tussen de gesimuleerde gebruiker en de agent, inclusief berichten en toolgebruik.

Voorbeeld van gespreksgeschiedenis
[
...
{
"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: biedt inzicht in de uitkomsten van evaluatiecriteria, statistieken voor gegevensverzameling en een samenvatting van het gesprekstranscript.

Voorbeeldanalyse
{
"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

Verbeter je evaluatiecriteria

Bekijk de gesimuleerde gesprekken grondig om de effectiviteit van je evaluatiecriteria te beoordelen. Identificeer eventuele hiaten of gebieden waarin de criteria tekortschieten bij het evalueren van de prestaties van de agent. Verfijn en pas de evaluatiecriteria aan om ervoor te zorgen dat ze aansluiten bij je gewenste uitkomsten en de mogelijkheden van de agent nauwkeurig meten.

5

Verbeter je agent

Zodra je vertrouwen hebt in de nauwkeurigheid van je evaluatiecriteria, gebruik je de inzichten uit gesimuleerde gesprekken om de mogelijkheden van je agent te verbeteren. Overweeg de system prompt te verfijnen om de responses van de agent beter te sturen, zodat ze aansluiten bij je doelen en de verwachtingen van gebruikers. Verken daarnaast andere features of configuraties die je kunt optimaliseren, zoals het aanpassen van de toon van de agent, het verbeteren van de afhandeling van specifieke vragen of het integreren van aanvullende databronnen om de responses te verrijken. Door deze inzichten systematisch toe te passen, kun je een robuustere en effectievere conversatieagent maken die een betere gebruikerservaring biedt.

6

Blijf itereren

Nadat je een eerste cyclus van testen en verbeteren hebt voltooid, kun je met een uitgebreide testsuite een breed scala aan mogelijke scenario’s afdekken. Deze suite kan meerdere gesimuleerde gesprekken verkennen met verschillende prompts en begincondities voor gesimuleerde gebruikers. Door je aanpak voortdurend te herhalen en te verfijnen, zorg je ervoor dat je agent effectief blijft en reageert op veranderende gebruikersbehoeften.

Pro-tips

Gedetailleerde prompts en criteria

Het opstellen van gedetailleerde en uitgebreide prompts voor gesimuleerde gebruikers en evaluatiecriteria kan de effectiviteit van simulatietests verbeteren. Hoe meer context en specificiteit je geeft, hoe beter de agent complexe interacties kan begrijpen en erop kan reageren.

Mocktoolconfiguraties

Gebruik mocktoolconfiguraties om het besluitvormingsproces van je agent te testen. Zo kun je zien hoe de agent beslist om tool calls te doen en reageert op verschillende resultaten van tool calls. Bekijk voor meer informatie de invoerparameter tool_mock_config in de API-referentie.

Gedeeltelijke gespreksgeschiedenis

Gebruik gedeeltelijke gespreksgeschiedenissen om te evalueren hoe agents interacties vanaf een specifiek punt afhandelen. Dit is vooral nuttig om te beoordelen of de agent gesprekken kan beheren waarin de gebruiker een vraag al op een bepaalde manier heeft gesteld, of waarin bepaalde tool calls zijn geslaagd of mislukt. Bekijk voor meer informatie de invoerparameter partial_conversation_history in de API-referentie.