Mycroft AI
  • Documentation
  • About Mycroft AI
    • Why use Mycroft AI?
    • Glossary of terms
    • Contributing
    • FAQ
  • Using Mycroft AI
    • Get Mycroft
      • Mark II
        • Mark II Dev Kit
      • Mark 1
      • Picroft
      • Linux
      • Mac OS and Windows with VirtualBox
      • Docker
      • Android
    • Pairing Your Device
    • Basic Commands
    • Installing New Skills
    • Customizations
      • Configuration Manager
      • mycroft.conf
      • Languages
        • Français (French)
        • Deutsch (German)
      • Using a Custom Wake Word
      • Speech-To-Text
      • Text-To-Speech
    • Troubleshooting
      • General Troubleshooting
      • Audio Troubleshooting
      • Wake Word Troubleshooting
      • Log Files
      • Support Skill
      • Getting more support
  • Skill Development
    • Voice User Interface Design Guidelines
      • What can a Skill do?
      • Design Process
      • Voice Assistant Personas
      • Interactions
        • Intents
        • Statements and Prompts
        • Confirmations
      • Conversations
      • Error Handling
      • Example Interaction Script
      • Prototyping
      • Design to Development
    • Development Setup
      • Python Resources
      • Your First Skill
    • Skill Structure
      • Lifecycle Methods
      • Logging
      • Skill Settings
      • Dependencies
        • Manifest.yml
        • Requirements files
      • Filesystem access
      • Skill API
    • Integration Tests
      • Test Steps
      • Scenario Outlines
      • Test Runner
      • Reviewing the Report
      • Adding Custom Steps
      • Old Test System
    • User interaction
      • Intents
        • Padatious Intents
        • Adapt Intents
      • Statements
      • Prompts
      • Parsing Utterances
      • Confirmations
      • Conversational Context
      • Converse
    • Displaying information
      • GUI Framework
      • Show Simple Content
      • Mycroft-GUI on a PC
      • Mark 1 Display
    • Advanced Skill Types
      • Fallback Skill
      • Common Play Framework
      • Common Query Framework
      • Common IoT Framework
    • Mycroft Skills Manager
      • Troubleshooting
    • Marketplace Submission
      • Skills Acceptance Process
        • Information Review Template
        • Code Review Template
        • Functional Review Template
        • Combined Template
      • Skill README.md
    • FAQ
  • Mycroft Technologies
    • Technology Overview
    • Roadmap
    • Mycroft Core
      • MessageBus
      • Message Types
      • Services
        • Enclosure
        • Voice Service
        • Audio Service
        • Skills Service
      • Plugins
        • Audioservice Plugins
        • STT Plugins
        • TTS Plugins
        • Wake Word Plugins
      • Testing
      • Legacy Repo
    • Adapt
      • Adapt Examples
      • Adapt Tutorial
    • Lingua Franca
    • Mimic TTS
      • Mimic 3
      • Mimic 2
      • Mimic 1
      • Mimic Recording Studio
    • Mycroft GUI
      • Remote STT and TTS
    • Mycroft Skills Kit
    • Mycroft Skills Manager
    • Padatious
    • Precise
    • Platforms
Powered by GitBook
On this page
  • Implicit Confirmation
  • Explicit Confirmation

Was this helpful?

  1. Skill Development
  2. Voice User Interface Design Guidelines
  3. Interactions

Confirmations

Confirmations are used to verify that the input from the user was understood correctly.

Confirmation approaches can also be defined by Statements or Prompts , but when we talk about them in the context of confirmations we call them Implicit and Explicit.

Implicit Confirmation

This type of confirmation is also a statement. The idea is to parrot the information back to the user to confirm that it was correct, but not require additional input from the user. The implicit confirmation can be used in a majority of situations. For example Mycroft’s Timer Skill uses implicit confirmation when creating new timers.

Timer Skill

Speaker

User

Hey Mycroft set a timer for 5 minutes

Mycroft

Alright, I’m starting a 5 minute timer

Avoid

Speaker

User

Hey Mycroft, add bananas to my shopping list

Mycroft

done

Better

Speaker

User

Hey Mycroft, add bananas to my shopping list

Mycroft

Adding bananas

Explicit Confirmation

This type of confirmation requires an input from the user to verify everything is correct. Only use explicit confirmation when needed as it can be tedious for the user to always confirm their input. This strategy is best when there are multiple steps, and it would be difficult to fix a misstep without starting over, or when deleting or modifying an existing multi-step input.

Avoid

Speaker

User

Hey Mycroft, set an alarm for 9:00 am tomorrow

Mycroft

Ok, I’ve set an alarm for 9:00 am tomorrow, is that correct?

User

Yes

Mycroft

9:00 am alarm set

Better

Speaker

User

Hey Mycroft, set an alarm for 9:00 am tomorrow

Mycroft

I've set an alarm for tomorrow at 9:00 am, 16 hours from now

The first example requires the user to confirm the alarm. Since the interaction is quite short it isn’t necessary to use explicit confirmation.

Avoid

Speaker

User

Hey Mycroft, set a calendar event for a meeting with Chris Stevens

Mycroft

When is the event?

User

Tomorrow at 11:00 am

Mycroft

should I send an invite to Chris Stevens?

User

Yes

Mycroft

Alright, I've created a meeting for Tomorrow

Mycroft

Alright, I’ve created a meeting for Tomorrow at 11:00 am with Chris Stevens

User

Cancel my 11:00 am meeting tomorrow

Mycroft

Done

Better

Speaker

User

Hey Mycroft, set a calendar event for a meeting with Chris Stevens

Mycroft

When is the event?

User

Tomorrow at 11:00 am

Mycroft

should I send an invite to Chris Stevens?

User

Yes

Mycroft

Alright, I’ve created a meeting for Tomorrow at 11:00 am with Chris Stevens

User

Cancel my 11:00 am meeting tomorrow

Mycroft

Are you sure you want to delete your meeting tomorrow at 11:00 am?

User

Yes

Both examples use explicit and implicit confirmation correctly until the end of the interaction when the user wants to cancel the event. Unlike setting a simple timer or an alarm creating this calendar event requires multiple steps and would require reasonable effort to recreate. There may also be significant consequences if the request was misinterpreted and the meeting was cancelled unintentionally.

PreviousStatements and PromptsNextConversations

Last updated 5 years ago

Was this helpful?