Principles of Good AI Conversation

Thomas Packer, Ph.D.
TP on CAI
Published in
4 min readNov 7, 2019

This story is a rough-draft. Check back later for the fully-polished story.

Here I list the many principles and best practices within conversational artificial intelligence (CAI) of good conversation when designing a chatbot.

Photo by Sangga Rima Roman Selia on Unsplash

The principles are the following:

Speak Well and Honestly

Users want a chatbot that can speak as well as a human but does not pretend to be one.

Set Tone and Personality

The tone and personality of the chatbot should be consistent with brand, target audience, solution positioning, and external resources used. Find the right levels of the following:

Formality:

Friendliness:

Entertainment:

Verbosity: responses should not be too long or too short

Reassurance: echo enough of the user’s input to help the user know that the bot understood

Limit Scope

Keep the scope of the bot’s abilities narrow so the user has a better chance of understanding what the bot can do — and so the quality within that scope can be high.

Broadcast Affordances

Make sure the user knows what the bot is capable of doing. Here are some suggested ways of broadcasting the bot’s affordances.

  • Informative greeting: List some capabilities in the greeting.
  • Answer meta-questions: Respond to questions about capabilities.
  • Recommended actions: Recommend actions/intents during dialog that the bot thinks the user might be interested in executing.
  • If the user can select from a small, finite number of options when filling a slot, list them, e.g. using buttons or auto-complete typing options.

Validate Input

Be Transparent

Use short replies so the user knows the state of the bot. Don’t remain silent for long periods of time.

Act Natural and Humanlike

Do things a human might do, like the following:

  • Pause before responding
  • Indicate that the bot is typing within the GUI
  • Memory and inference: If a human can remember, infer, or predict something, then the bot should not ask the user about it, except maybe to double-check that the inference is correct or that the facts have not changed since their last interaction.
  • Indicate emotional state, subtly
  • Apologize for mistakes or other inconveniences
  • Keep conversations short
  • Understand and support the dimensions of personalization

Reduce Cognitive Load

Handle Errors Gracefully

Guide the user’s second attempt: When an error happens, don’t just return an error message like “I did not understand”, try to categorize the source of the error and provide a hint as to how to overcome it. Indicate which words the bot does not understand. Recommend syntax that the bot can understand better.

Suggest an alternate source of information if the bot cannot answer a question, e.g. a URL to a web page.

Request feedback from the user, e.g. to collect suggestions for additional intents that could be added to the bot.

Be Flexible

This may be the hardest principle because it pushes the bots abilities. The best human participants are very flexible in how they handle a conversation. Here are features to consider adding to a chatbot that will improve flexibility.

Understand synonyms and paraphrases. In general, better understanding the human user’s utterances will allow the chatbot to be flexible in the right ways.

Allow the user to make statements or requests of any kind, at any point in the conversation. The bot must be capable of correctly inferring where in the state space the user’s utterance should be attached. E.g., the user may indicate a global parameter such as how many options the bot should list for all recommendations at any time, even while the bot is filling slots for a particular intent.

The bot should be capable of asking questions to remove ambiguity or uncertainty automatically, without the bot designer needing to explicitly identify all possible situations or explicitly write questions for all slots.

Metalinguistics: the user can refer to the language, itself. If the bot gives a list of options, the user can select one by repeating the name, by repeating a synonym of one of the items, repeating an abbreviated version of a name, or even indicating the position of the name in the list the bot just created.

Allow the user to backtrack or start over, e.g. remove state and slot values.

Fulfill Goals

Other Best Practices

Full sentence place holders

Provide examples of frequently asked questions to help guide users.

Encourage users to enter full statements

Use type-ahead to display possible questions

Track user statements and whole dialogues for retraining models and improving personalization. Continuously gather data.

Fall back to human agent on serious problem.

Join the CAI Dialog on Slack at cai-dialog.slack.com

About TP on CAI

Other stories in TP on CAI you may like:

--

--

Thomas Packer, Ph.D.
TP on CAI

I do data science (QU, NLP, conversational AI). I write applicable-allegorical fiction. I draw pictures. I have a PhD in computer science and I love my family.