# US 10,770,074 B1 · Cooperative delegation for digital assistants

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,770,074 B1
- Document ID: US10770074B1
- Status: Granted
- Kind: B1
- Application number: 16/419,783
- Filed: 2019-05-22
- Granted: 2020-09-08
- Earliest claimed: 2016-01-19
- Assignees: United Services Automobile Association (USAA)
- Applicants: United Services Automobile Association (USAA)
- Inventors: Gunjan C. Vijayvergia; Matthew Barry Schulz; Nathan Mahoney; Justin Leggett
- Web page: https://patentgrep.com/patent/US10770074B1

## CPC

- G10L 15/30: Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
- G06F 3/167: {Audio in a user interface, e.g. using voice commands for navigating, audio feedback}
- G10L 15/22: Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L 15/26: Speech to text systems (G10L15/08 takes precedence)
- H04L 67/148: Migration or transfer of sessions
- G10L 2015/223: {Execution procedure of a spoken command}
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Multiple digital assistants are employed to process requests within a computing environment. An initial request (e.g., voice command) may be received by a first DA. If it is determined that the first DA can handle the request based on one or more terms of the request, a communications session between a user and the first DA is established to handle the request. If it is determined that the first DA is incapable of handling the request, a second DA configured to handle the request is determined.

## Claims

### Claim 1

A method for employing multiple digital assistants to process requests, the method comprising:
receiving, by at least one processor, a first request communicated to a first digital assistant (DA) executing on a computing device, the first request comprising one or more terms;
determining, by the at least one processor based on the one or more first terms, if the first DA is capable of handling the first request;
initiating, by the at least one processor and responsive to determining that the first DA is capable of handling the first request, a communication session between a user and the first DA to handle the first request;
receiving, by the at least one processor and during the communication session between the user and the first DA, a second request comprising one or more second terms;
accessing a DA directory that includes, for each of a plurality of available DAs on the computing device, a respective list of associated keywords;
determining that at least one term of the one or more second terms corresponds to at least one keyword that is associated, in the DA directory, with multiple candidate DAs;
receiving selection data indicating that the user has selected a second DA from the multiple candidate DAs;
determining, by the at least one processor and responsive to determining that the first DA is incapable of handling the second request, that the second DA is configured to handle the second request, wherein the second DA executes on the computing device that executes the first DA; and
initiating, by the at least one processor and responsive to determining the second DA, a communication session between the user and the second DA to handle the second request.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining that the first DA is incapable of handling the second request comprises determining, based on the one or more second terms, that the second request is for communication of sensitive information to be inaccessible by the first DA.

### Claim 3 (depends on 1)

The method of claim 1, wherein the DA directory indicates that:
the second DA is associated with the at least one keyword; and
the first DA is not associated with the at least one keyword.

### Claim 4 (depends on 1)

The method of claim 1, wherein determining that at least one term of the one or more second terms corresponds to the at least one keyword comprises determining that the at least one term is semantically similar to the at least one keyword.

### Claim 5 (depends on 1)

The method of claim 1, wherein:
determining that the first DA is capable of handling the first request comprises determining that the first DA is capable of handling a first portion of the first request;
initiating the communication session between the user and the first DA comprises initiating the communication session to handle the first portion of the first request;
determining that the first DA is incapable of handling the second request comprises determining that the first DA is incapable of handling a second portion of the first request; and
determining that the second DA is configured to handle the second request comprises determining that the second DA is configured to handle the second portion of the first request.

### Claim 6 (depends on 1)

The method of claim 1, further comprising requesting, by the first DA, that the user select the second DA from the plurality of available DAs.

### Claim 7 (depends on 1)

The method of claim 1, wherein the determining that the second DA is configured to handle the second request is based on a model that is developed through machine learning.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first communication session is a voice communication session in which the request is provided as voice input from the user.

### Claim 9 (depends on 1)

The method of claim 1, further comprising storing, by the at least one processor, state information that at least describes information communicated during a communication session.

### Claim 10

A system, comprising:
at least one processor; and
a memory communicatively coupled to the at least one processor, the memory storing instructions which, when executed by the at least one processor, cause the at least one processor to perform operations comprising:
receiving a first request communicated to a first digital assistant (DA) executing on a computing device, the request comprising one or more terms;
determining, based on the one or more first terms, if the first DA is capable of handling the first request;
initiating, responsive to determining that the first DA is capable of handling the first request, a communication session between a user and the first DA to handle the first request;
receiving, during the communication session between the user and the first DA, a second request comprising one or more second terms;
accessing a DA directory that includes, for each of a plurality of available DAs on the computing device, a respective list of associated keywords;
determining that at least one term of the one or more second terms corresponds to at least one keyword that is associated, in the DA directory, with multiple candidate DAs;
receiving selection data indicating that the user has selected a second DA from the multiple candidate DAs;
determining, responsive to determining that the first DA is incapable of handling the second request, that the second DA is configured to handle the second request, wherein the second DA executes on the computing device that executes the first DA; and
initiating, responsive to determining the second DA, a communication session between the user and the second DA to handle the second request.

### Claim 11 (depends on 10)

The system of claim 10, wherein determining that the first DA is incapable of handling the request comprises determining, based on the one or more terms, that the request is for communication of sensitive information to be inaccessible by the first DA.

### Claim 12 (depends on 10)

The system of claim 10, wherein the DA directory indicates that:
the second DA is associated with the at least one keyword; and
the first DA is not associated with the at least one keyword.

### Claim 13 (depends on 10)

The system of claim 10, wherein determining that at least one term of the one or more second terms corresponds to the at least one keyword comprises determining that the at least one term is semantically similar to the at least one keyword.

### Claim 14 (depends on 10)

The system of claim 10, wherein:
determining that the first DA is capable of handling the first request comprises determining that the first DA is capable of handling a first portion of the first request;
initiating the communication session between the user and the first DA comprises initiating the communication session to handle the first portion of the first request;
determining that the first DA is incapable of handling the second request comprises determining that the first DA is incapable of handling a second portion of the first request; and
determining that the second DA is configured to handle the second request comprises determining that the second DA is configured to handle the second portion of the first request.

### Claim 15 (depends on 10)

The system of claim 10, the operations further comprising requesting, by the first DA, that the user select the second DA from the plurality of available DAs.

### Claim 16 (depends on 10)

The system of claim 10, wherein the determining that the second DA is configured to handle the second request is based on a model that is developed through machine learning.

### Claim 17 (depends on 10)

The system of claim 10, wherein the operations further comprise storing state information that at least describes information communicated during a communication session.

### Claim 18

One or more non-transitory computer-readable media storing instructions which, when executed by at least one processor, cause the at least one processor to perform operations comprising:
receiving a first request communicated to a first digital assistant (DA) executing on a computing device, the first request comprising one or more first terms;
determining, based on the one or more first terms, if the first DA is capable of handling the first request;
initiating, responsive to determining that the first DA is capable of handling the first request, a communication session between a user and the first DA to handle the first request;
receiving, during the communication session between the user and the first DA, a second request comprising one or more second terms;
accessing a DA directory that includes, for each of a plurality of available DAs on the computing device, a respective list of associated keywords;
determining that at least one term of the one or more first terms corresponds to at least one keyword that is associated, in the DA directory, with multiple candidate DAs;
receiving selection data indicating that the user has selected a second DA from the multiple candidate DAs;
determining, responsive to determining that the first DA is incapable of handling the second request, that the second DA is configured to handle the second request, wherein the second DA executes on the computing device that executes the first DA; and
initiating, responsive to determining the second DA, a communication session between the user and the second DA to handle the second request.
