Context Broker for Voice Assistant Skill Interoperability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing voice assistants rely on a 1:1 mapping of user intent to skills via lookup tables, limiting inter-skills communication and requiring explicit user input for parameters, which hampers contextual awareness and efficiency in handling user interactions.
Innovation Solution
A system with a context broker and global context store that decouples skills and backend services, allowing storage and retrieval of user context data, enabling skills to share and reuse context information across invocations and adapt to user situations dynamically.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a 1:1 mapping of user intent to skills via lookup table is used, then the system structure is simple and easy to implement, but the contextual awareness is limited and inter-skill communication is hampered
Solution Approach 1:
A context broker is introduced as an intermediary component that mediates between skills and the backend service. The context broker maintains a global context store that allows any skill to access and update context information from any other skill, enabling seamless inter-skill communication and contextual awareness while keeping the overall system structure modular and manageable
Solution Approach 2:
The system is segmented into independent components: NLU unit, multiple skills, backend service, and context broker. Each component operates independently with well-defined interfaces, allowing the context broker to manage context sharing without requiring complex interconnections between all skills, thus maintaining simplicity while enabling versatility
2Measurement precision
If explicit user input is required for all parameters, then the skill invocation is precise and unambiguous, but the user interaction efficiency decreases and contextual awareness is hampered
Solution Approach 1:
Context information is captured and stored in the global context store during previous interactions or by other skills. When a skill is invoked, the context broker automatically retrieves relevant pre-stored context parameters, so users don't need to explicitly provide them again. This maintains precise skill invocation by using previously confirmed values while significantly improving interaction efficiency
Solution Approach 2:
The system performs self-service by automatically retrieving and supplying context parameters from the global context store without requiring explicit user input. The context broker monitors skill invocations and autonomously fills in parameters based on available context, reducing user burden while maintaining invocation precision through context-aware parameter selection
3Ease of manufacture
If skills are provided in sandbox or by third-party providers, then the system is modular and easily maintainable, but direct data interchange between skills is not possible
Solution Approach 1:
The global context store serves as a universal data interchange mechanism that all skills can access regardless of their provider or sandbox environment. It provides multi-functional capability by storing various types of context information (user preferences, session data, extracted entities) that can be shared across any skill, enabling data interchange while preserving the modular architecture and third-party skill independence
Data Source
Figure 1
Figure 2
AI summary
A system for providing an assistant according to the present disclosure comprises an input/output unit configured to receive at least one invocation by a user. A natural language understanding, NLU, unit is configured to determine a user's intent based on the at least one invocation, wherein the NLU unit is further configured to extract at least one entity from the text if the invocation comprises further information. A skill unit is configured to determine at least one skill based on the user's intent, and a backend service unit comprises a context broker configured to store the at least one entity of the present and/or previous invocation as a previous context. The input/output unit is configured to perform a function based on the skill and/or the previous context.