Agent design

Plan

These questions help you plan out your agent before getting into development to ensure your users will have a successful experience.

Objective

When thinking about your agent's objective, consider the following points:

  • What is your business trying to achieve?
  • What will your users expect from your agent?
  • How often will users interact with your agent?

Balancing your business goals and user expectations will make for an overall better experience.

Platform

Once you understand the focus of the agent and how people will use it, consider how users will access your agent:

  • What platform(s) will your agent be available on?

Look into the various platforms Dialogflow integrates with before creating content. When you decide which platforms to develop for, prepare your content accordingly. Some of Dialogflow's platform integrations support rich messages that can include elements like images, links, and suggestion chips.

Dialogs

The most important element of an agent is the dialog. This is what your users will experience every time they interact with your agent. Consider the following about your dialog:

  • Have I created a high-level conversation structure that covers all of my use cases?
  • Does this dialog represent my business goals while providing a quality conversational experience?

Depending on the size and complexity of your app, you can start building your dialog tree to address top level requests. Once the basic structure is established, iterate on the conversation paths to ensure you're covering all of the possible routes a user may take.

Before you start

Even if you've previously used Dialogflow, starting from scratch can seem like an overwhelming task. To mitigate some of this, Dialogflow has features you can utilize to get a great head start on your agent.

Pre-built agents

Dialogflow offers a substantial list of pre-constructed agents to help you get started. Pre-built agents cover common use-cases like hotel booking, navigation, and online shopping.

These agents come with intents and entities to cover the most popular requests pertaining to their verticals. Add responses specific to your business and you'll have a functioning agent in no time.

System entities

When a user makes a request, there's important information you'll want to gather and parse from what they said. In Dialogflow, these are called entities.

System entities are collections of these important words and phrases and are readily available to use.

These entities cover common concepts like geography, dates, and even colors.

Small Talk

When developing your dialog, you may have considered covering requests that are off-topic. While this makes for a more complete experience, you should focus on the conversations that pertain to your business.

Dialogflow comes with an optional feature called Small Talk. With this feature enabled, your agent will respond to general conversation, emotional responses, and questions about the agent itself.

All of the Small Talk responses can be customized to make sure the experience, whether casual, businesslike, or somewhere in between, is representative of your brand.

Agent design checklist

This checklist helps you find out if you have all the necessary components for a robust agent. This checklist takes into account NLU accuracy and usability to ensure your users will return to your agent.

Greetings and good-byes
Does my Welcome Intent let users know about my agent's capabilities with branding in mind?

Your agent's Welcome Intent should inform the user of 2-3 tasks the agent can help with, as well as brief descriptions (as needed) of how to use these features.

Does my agent have a suitable exit message when a successful interaction has ended?

When a user completes a task in your agent, it should summarize the transaction/task and say something like "Until next time", etc. If you integrated with Actions on Google, close the microphone.

Machine Learning/Training
Does my agent have at least 10-15 training phrases for each intent?

The complexity of your agent will determine the actual number of training phrases each intent should have, but 10-15 is a good baseline. The more parameters you have in your intents, the more phrases you should provide to train the machine learning model.

Are my training phrases varied?

Include variations of questions, commands, verbs, and synonyms for common nouns to ensure your phrases cover a broad spectrum of possible requests.

Are annotations in my intents consistent?

Review your training phrases and make sure the highlighted words are pointing to the correct entities. You can adjust this by clicking on the current assigned entity in the parameter table.

If my agent has custom developer entities, do they cover a broad range of examples?

Entities are lists of items. Machine learning will take care of grammatical forms, but you have to include all possible items. Also, check the define synonyms option and include some variations.

Helpful intent features
Does my agent support contextual requests?

For example, if your agent handles requests for the weather and a user asks "Weather in San Francisco", make sure to add contexts to support further requests like "How about tomorrow?"

Does my agent have follow-ups for yes, no, cancel, next, back, etc.?

Follow-up intents are used to reply to common responses. To add a follow-up intent, hover over an intent and click Add follow-up.

Do all intents have at least one text response?

The response section is at the bottom of the intent's page. Adding variations will shuffle the response chosen, making for a less repetitive experience.

Does my agent collect all of the necessary information to fulfill a user's request?

Consider making necessary parameters required. Your agent will keep prompting the user until it gets the information it needs. This is called slot filling.

Do my responses repeat information as needed, like confirming an order?

When a user is making a request like placing an order or changing information, your agent should repeat what's happening for confirmation purposes. When creating these confirmation responses, make sure to include all possible combinations of repeated entities and parameters.

Conversation repair
Does my agent have helpful recovery prompts for each step of the dialog?

For example, if the initial prompt is "What color do you want?" and the user replies with "jungle parrot", a fallback/follow-up intent should rephrase the question, like "Sorry, what color was that?"

Does my agent have customized, brand-specific responses in the default fallback intent?

When a user says something that isn't matched to an intent, the default fallback intent is matched. This should be customized to reflect your brand, as well as provide information to guide the user to make a valid request.

If I have customized fulfillment, does my agent have an intent that allows users to repeat information?

One intent can handle requests like "say that again", "repeat that", "play that again", etc. This can be a follow-up intent.

Persona
Do my agent's responses have a style and tone that fits my brand and are consistent throughout the agent?

As your users converse with your agent, it should feel like they're speaking to one persona. Make sure the qualities and personality you've chosen are represented in all of your responses.

Will your users come back to chat with this agent given the persona you created?

When creating a persona, be sensitive about cultures, genders, religious beliefs, abilities and ages. Stereotyping may offend users, even in jokes, and they might not return to your agent.

Testing
Did I have the app tested thoroughly with someone that was not involved in its development?

Having someone unfamiliar with the agent use the app will give you insight to how naturally the conversation flows. Have them look out for accuracy, long pauses, missing conversational paths, pacing, awkward transitions, etc.

Have I tested my app on the platforms I plan on using?

If your agent will be available on one or more platforms, make sure rich messaging and responses show up as expected across all platforms.