Hoppa till navigering

Simulera konversationer

Lär dig testa och utvärdera din ElevenLabs-agent med simulerade konversationer

Den här guiden och de slutpunkter den använder är föråldrade. Använd testtypen Simulation för agenter i stället.

Översikt

Med ElevenLabs Agents API kan du simulera och utvärdera textbaserade konversationer med din AI-agent. Den här guiden visar hur du implementerar ett komplett arbetsflöde för simuleringstester med slutpunkterna för att simulera konversationer (batch och streaming). Det gör att du kan testa och förbättra din agents prestanda på detaljnivå, så att den uppfyller dina mål för interaktioner.

Förutsättningar

Implementera ett arbetsflöde för simuleringstester

1

Identifiera inledande utvärderingsparametrar

Gå igenom din agents konversationshistorik och hitta exempel där agenten har presterat sämre. Använd dessa konversationer för att skapa olika uppmaningar för en simulerad användare som ska interagera med din agent. Definiera även extra utvärderingskriterier som inte redan anges i din agentkonfiguration, för att testa de resultat du vill ha för en specifik simulerad användare.

2

Simulera konversationen via SDK:t

Skapa en begäran till simuleringsslutpunkten med ElevenLabs SDK.

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)

Detta är ett grundläggande exempel. En fullständig lista över indataparametrar finns i API- referensen för slutpunkterna Simulera konversation och Streama simulerad konversation.

3

Analysera svaret

SDK:t tillhandahåller ett omfattande JSON-objekt som innehåller hela konversationstranskriptet och detaljerad analys.

Simulerad konversation: Registrerar varje interaktionstur mellan den simulerade användaren och agenten, med information om meddelanden och verktygsanvändning.

Exempel på konversationshistorik
[
...
{
"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
}
...
]

Analys: Ger insikter om resultat för utvärderingskriterier, mätvärden för datainsamling och en sammanfattning av konversationstranskriptet.

Exempel på analys
{
"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

Förbättra dina utvärderingskriterier

Gå igenom de simulerade konversationerna noggrant för att bedöma hur effektiva dina utvärderings- kriterier är. Identifiera eventuella luckor eller områden där kriterierna inte räcker till för att utvärdera agentens prestanda. Förfina och justera utvärderingskriterierna efter behov för att säkerställa att de stämmer överens med dina önskade resultat och mäter agentens förmågor korrekt.

5

Förbättra din agent

När du känner dig säker på att dina utvärderingskriterier är korrekta kan du använda lärdomarna från simulerade konversationer för att förbättra agentens förmågor. Överväg att förfina systemprompten för att bättre vägleda agentens svar, så att de stämmer överens med dina mål och användarnas förväntningar. Utforska även andra funktioner eller konfigurationer som kan optimeras, till exempel genom att justera agentens ton, förbättra dess förmåga att hantera specifika frågor eller integrera ytterligare datakällor för att berika svaren. Genom att systematiskt tillämpa dessa lärdomar kan du skapa en mer robust och effektiv konversationsagent som ger en bättre användarupplevelse.

6

Kontinuerlig iteration

När du har slutfört en inledande cykel av tester och förbättringar kan en omfattande testsvit vara ett bra sätt att täcka ett brett spektrum av möjliga scenarier. Testsviten kan utforska flera simulerade konversationer med varierade uppmaningar och startvillkor för simulerade användare. Genom att kontinuerligt iterera och förfina ditt arbetssätt kan du se till att din agent fortsätter vara effektiv och lyhörd för användarnas föränderliga behov.

Proffstips

Detaljerade uppmaningar och kriterier

Detaljerade och utförliga uppmaningar för simulerade användare och utvärderingskriterier kan göra simuleringstesterna mer effektiva. Ju mer kontext och specificitet du ger, desto bättre kan agenten förstå och svara på komplexa interaktioner.

Konfigurationer för mockverktyg

Använd konfigurationer för mockverktyg för att testa din agents beslutsprocess. Då kan du se hur agenten beslutar att göra verktygsanrop och reagerar på olika resultat från verktygsanrop. Mer information finns i indataparametern tool_mock_config i API-referensen.

Delvis konversationshistorik

Använd delvis konversationshistorik för att utvärdera hur agenter hanterar interaktioner från en specifik punkt. Det är särskilt användbart för att bedöma agentens förmåga att hantera konversationer där användaren redan har formulerat en fråga på ett specifikt sätt, eller där vissa verktygsanrop har lyckats eller misslyckats. Mer information finns i indataparametern partial_conversation_history i API-referensen.