[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-08-18。"],[[["\u003cp\u003eVoice agent design aims to help users complete tasks without human intervention, maintaining a natural, interactive, and cooperative conversational flow.\u003c/p\u003e\n"],["\u003cp\u003eAgent quality is measured through metrics like misroutes, first call resolution, average handling time, customer satisfaction, number of turns, and user churn.\u003c/p\u003e\n"],["\u003cp\u003eConversation structure typically includes an opening activity (welcome), a main sequence (task completion), and a closing activity (farewell).\u003c/p\u003e\n"],["\u003cp\u003eConversation repair techniques involve using context, providing self-repair opportunities, and employing phrases like "You mean x?" to address misunderstandings.\u003c/p\u003e\n"],["\u003cp\u003eWhen a No-Match or No-Input event occurs, the agent should rephrase the question, focus on missing information, and escalate to a human after a maximum of three attempts.\u003c/p\u003e\n"]]],[],null,["# Voice agent design best practices\n\nThis guide provides best practices specifically for designing voice agents.\nWhen you design a voice agent, the goal is to help users (end-users) achieve a\ntask without escalating to a human agent. Users should feel like they are having\na natural, interactive, and cooperative conversation with the voice agent.\n\nYou should also see the general\n\n[general agent design](/dialogflow/cx/docs/concept/agent-design)\n\nguide for all agent types,\nand the\n\n[best practices](/dialogflow/cx/docs/concept/best-practices)\n\nguide for using the Dialogflow service.\n\nMeasure agent quality\n---------------------\n\nTo measure the quality of your agent's user experience, consider tracking the\nfollowing metrics:\n\n- **Misroute**: how many callers ended up in the wrong place.\n\n- **First call resolution**: number of calls that are resolved on the first call\n or contact.\n\n- **Average handling time**: how long it takes to resolve the user's issue.\n\n- **Customer satisfaction**: how high your voice agent scores on a user survey.\n\n- **Number of turns**: how many exchanges it takes to accomplish the user's task.\n\n- **User churn**: how often users disengage from the conversation.\n\nSpeech recognition\n------------------\n\nThe following tips can help your agent recognize end-user speech:\n\n- Your agent should encourage the end-user to use long phrases or complete sentences. This improves recognition quality.\n- Consider using a webhook to verify end-user input that may not be accurately recognized or needs to be validated.\n- Use [no-match events](/dialogflow/cx/docs/concept/handler#event-built-in) to ask the end-user to enunciate more slowly and clearly.\n\nConversation structure\n----------------------\n\nA conversation with a voice agent is generally organized in the following sequence:\n\n### Welcome message\n\nWhen designing your opening message to the user, think about how to get to the\nfirst topic as soon as possible. The welcome message should be short and\nstraight to the point. Some suggestions include the following:\n\n1. Answer the call with phrases like \"Hello.\"\n2. Identify the voice agent with phrases like \"This is XYZ Company's voice agent/assistant.\"\n3. Show availability with phrases like \"How can I help you today?\"\n\nAny extra information may frustrate users and cause them to escalate to a human\nagent. However, you may need to extend the welcome message for legal reasons,\nsuch as informing the user that the conversation may be recorded.\n\nAvoid information that makes the conversation sound unnatural or unbalanced. For\nexample:\n\n### Conversation turn pairs\n\nA typical conversation consists of *turn pairs* such as the following types of\nexchanges:\n\n- question-answer, which is most common for a voice agent\n- invitation-acceptance/rejection\n- greetings-greetings\n\nSometimes, a turn pair can include extra verbiage, such as an explanation about\nwhy we need to ask a question, background information related to the question we\nwant to ask, or a reaction to the user's answer. For example, consider the\nfollowing question-answer turn pair:\n\n**Voice Agent** : This will cost you $10/day. *(background information/explanation)*\nWould you like to continue adding this perk? *(question)*\n\n**User** : Yes. *(answer)*\n\n**Voice Agent** : Awesome! *(reaction)*\n\nAlso see the\n[Fulfillment](/dialogflow/cx/docs/concept/agent-design#fulfillment)\nsection of the general agent design best practices guide\nfor guidelines on fulfillment placement.\n\n### Conversation repair\n\n*Conversation repair* is the practice of fixing misunderstandings, mishearings,\nand misarticulations to resume a conversation. Repairing a conversation can help\nbuild a user's trust by showing that the voice agent is listening to their\nrequest.\n\nSome best practices include:\n\n- Be specific and use context the user already offered in previous turns. Avoid\n asking obvious and redundant questions such as \"I didn't catch that,\" \"I don't\n understand,\" or \"I'm having trouble.\"\n\n- Give the user the opportunity for self-repair, which means allowing the user\n to repair their turn in the way they think is best to ensure that they have\n agency in the conversation. Avoid phrases such as \"try rephrasing\" or \"you can\n say x, y, or z.\"\n\n- Use the \"You mean x?\" structure to check for understanding.\n\nThe following table describes several examples of dos and don'ts:\n\n#### Error handling\n\nThe following section describes how to handle situations where a conversation fails.\n\n##### No-Match\n\nA [No-Match event](/dialogflow/cx/docs/concept/handler#event-built-in) is\ninvoked when the voice agent cannot find an intent to match what the user said.\n\nUpon the first instance of the No-Match event, try the following:\n\n- Repeat the question to the user, but rephrase it in a shorter way to indicate\n the information that is missing. By focusing only on missing information, the\n voice agent implicitly conveys that they've listened to the rest of the user's\n statement.\n\n- You can add \"sorry\" before the restated question to indicate that something\n went wrong on your side.\n\nUpon the second instance of the No-Match event, show more clearly that the voice\nagent is making an effort to listen. For example, consider the following\nexchange:\n\n**User**: I'm traveling to Italy\n\n**Voice agent**: Sorry, which country?\n\n**User**: Italy\n\n**Voice agent**: Sorry, you're traveling to which country?\n\n##### No-Input\n\nIf your voice agent received no verbal response from the user, repeat the\nquestion in the same way as the first time. Upon the second instance of the\n[No-Input event](/dialogflow/cx/docs/concept/handler#event-built-in), you can\nrephrase the original question, but ensure that all the original components of\nthe question are present.\n\n##### Limit no-match and no-input repetitions\n\nTo avoid trapping users in a loop of error handling events, implement a No-Match/No-Input\nmaximum of 3 for every page. Escalate users to a human agent upon the third\nNo-Match or No-Input event.\n\n##### No-speech-timeout\n\nIn situations where users need to review information or make decisions before\nmoving on, increase the [no-speech-timeout](/dialogflow/cx/docs/concept/agent#settings-speech)\nsetting to give users enough time to respond.\n\nIn the following example, the no-speech-timeout setting of 2 seconds is too\nshort for the user to read an SMS message and make a decision:\n\n**Voice agent**: I've sent a text message to your device. Click on the link to\nlearn about the travel pass. I will play music to give you time to read the text\nand get back to me. \\\u003c2 second pause\\\u003e Would you like to continue?\n\n**User**: I'm still reading.\n\n**Voice agent**: Would you like to add the travel pass to your plan?\n\nConversation techniques\n-----------------------\n\nThis section describes techniques to help the voice agent build trust with users\nand make conversations run more smoothly.\n\n### Designing actionable questions\n\nDesign explicit and actionable questions for your voice agent to ask the user.\nFor example, consider the following do's and don'ts:\n\nYou should also prepare your voice agent for situations where the user may\nanswer a question implicitly, as people often do in natural conversations. For\nexample, consider the following interaction:\n\n**Voice agent** : Go to **Account** , then click on **Usage** , then on **Usage by\nline**. Let me know when you get there.\n\n**User**: It says I can't see data from 3 months ago or older.\n\nThe user's response implies that they successfully arrived at the target screen,\nbut that they still needed more help. Your voice agent should anticipate such\nimplications, instead of expecting the user to only say \"I got there,\" or \"I\ndidn't get there.\"\n\n### Gaining user trust\n\nVoice agents can show users that they are listening through the use of\nacknowledgements and specific details. If the voice agent provides generic\nanswers, users may feel that the voice agent sounds unnatural.\n\n- Use *acknowledgements*. For example, consider the following exchange, where\n \"No problem\" is used as an acknowledgement:\n\n **User**: I want to set a payment arrangement for Monday.\n\n **Voice Agent**: No problem. How much would you like to pay on Monday?\n- Add specific details to show that the voice agent is actively listening to the\n user. For example, in the above exchange, the phrase \"on Monday\" is a specific\n detail that indicates the voice agent has heard what the user said.\n\n- Address the user's request as quickly as possible and exclude any unnecessary\n steps. In the following example, the extraneous information may cause user\n frustration:\n\n **User**: Is there an outage in my area?\n\n **Voice Agent**: We know how important it is for you to stay connected. Let's find\n out what's causing this issue. Please tell us the last 4 digits of the line\n that you're experiencing issues on. If the issue is on multiple lines, just\n provide one for now.\n\n **User**: 1234\n\n **Voice Agent**: Thanks. Let me look into next steps for this line. Now, let's\n get started. Temporarily disabling and then re-enabling HD Voice can do the\n trick... Did that work?\"\n- Make sure the conversation between the user and voice agent is balanced. Users\n may feel an uncomfortable lack of agency in the conversation if the voice agent\n dominates the conversation. Prioritize Who/Where/What/When/How questions over\n Yes/No questions.\n\n- Ensure that the user's conversation transitions smoothly when they want to\n escalate to human agents.\n\nAdditional information\n----------------------\n\n- See the [conversation design\n guide](https://developers.google.com/assistant/conversation-design/welcome)\n provided by the Actions on Google team.\n\n- See the [Voice Playbook](https://blog.google/technology/next-billion-users/voice-users-playbook/) for the Next Billion Users.\n\n- See the [Cloud Text-to-Speech SSML guide](/text-to-speech/docs/ssml).\n\n- Read about [speech acts](https://en.wikipedia.org/wiki/Speech_act) for more\n information about designing actionable questions."]]