IP Library Granted Patent US 10,937,427
Granted Patent B2
US 10,937,427 · App. 16/877,799 · Granted Mar 2, 2021

Generating and transmitting invocation request to appropriate third-party agent

Inventors: Ulas Kirazci (Mountain View, CA); Bo Wang (San Jose, CA); Steve Chen (Los Altos, CA); Sunil Vemuri (Pleasanton, CA); Barnaby James (Los Gatos, CA); Valerie Nygaard (San Francisco, CA)
Assignee: GOOGLE LLC
G10L15/22G06F3/167G06F16/9535G06F40/30G10L15/1815G10L15/1822G10L15/30G10L2015/223
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,937,427
App. No.
16/877,799
Granted
Mar 2, 2021
Kind
B2
Abstract

Some implementations are directed to selective invocation of a particular third-party ( 3 P) agent by an automated assistant to achieve an intended action determined by the automated assistant during a dynamic dialog between the automated assistant and a user. In some of those implementations, the particular 3 P agent is invoked with value(s) for parameter(s) that are determined during the dynamic dialog; and/or the particular 3 P agent is selected, from a plurality of candidate 3 P agents, for invocation based on the determined value(s) for the parameter(s) and/or based on other criteria. In some of those implementations, the automated assistant invokes the particular 3 P agent by transmitting, to the particular 3 P agent, a 3 P invocation request that includes the determined value(s) for the parameter(s).

Claims (60)

1. A method implemented by one or more processors, comprising:

receiving, over one or more network interfaces, user input transmitted by a client device of a user, the user input being free-form and being directed to an automated assistant interface implemented by the client device;

determining that the user input indicates an intended action based on processing the user input;

selecting, based on the intended action, a particular third-party agent, from a group of third-party agents, to perform the intended action, wherein selecting the particular third-party agent is based on determining that the particular third-party agent can perform the intended action;

facilitating, via one or more of the network interfaces, interactions between the client device and the particular third-party agent that occur via the automated assistant interface to perform the intended action, wherein facilitating the interactions comprise resolving a value for a parameter stored in association with the intended action;

during facilitating of the interactions between the client device and the particular third-party agent:

receiving, over one or more of the network interfaces, further user input transmitted by the client device of the user, and

determining that the further user input indicates a desire to interact with another third-party agent; and

in response to determining that the further input indicates a desire to interact with another third-party agent:

transmitting, to an alternative third-party agent of the group of third-party agents, an additional third-party invocation request that includes the value for the parameter.

2. The method of claim 1 , wherein facilitating the interactions further comprises:

transmitting, via one or more of the network interfaces, additional user input received during the interactions to the particular third-party agent; and

receiving, via one or more of the network interfaces, content that is responsive to the additional user input from the particular third-party agent.

3. The method of claim 2 , wherein resolving the value for the parameter stored in association with the intended action comprises:

resolving the value for the parameter based on the additional user input received during the interactions.

4. The method of claim 2 , wherein the additional user input received during the interactions further specifies an additional value for an additional parameter stored in association with the intended action.

5. The method of claim 4 , wherein the additional third-party invocation request further includes the additional value for the additional parameter.

6. The method of claim 1 , wherein determining that the further user input indicates a desire to interact with another third-party agent comprises:

determining that the further user input is not directed to the particular third-party agent; and

identifying, based on the further user input, the alternative third-party agent of the group of third-party agents.

7. The method of claim 1 , further comprising:

facilitating, via one or more of the network interfaces, interactions between the client device and the alternative third-party agent that occur via the automated assistant interface to perform the intended action or an additional action using the value for the parameter.

8. The method of claim 1 , wherein the particular third-party agent and the alternative third-party agent belong to disparate service sectors.

9. The method of claim 1 , wherein the particular third-party agent belongs to a first subsector of a given service sector, and wherein the alternative third- party agent belongs to a second subsector of the given service sector.

10. A system comprising:

at least one processor; and

memory storing instructions that, when executed, cause the at least one processor to:

receive, over one or more network interfaces, user input transmitted by a client device of a user, the user input being free-form and being directed to an automated assistant interface implemented by the client device;

determine that the user input indicates an intended action based on processing the user input;

select, based on the intended action, a particular third-party agent, from a group of third-party agents, to perform the intended action, wherein selecting the particular third-party agent is based on determining that the particular third-party agent can perform the intended action;

facilitate, via one or more of the network interfaces, interactions between the client device and the particular third-party agent that occur via the automated assistant interface to perform the intended action, wherein the instructions to facilitate the interactions cause the at least one processor to resolve a value for a parameter stored in association with the intended action;

during facilitating of the interactions between the client device and the particular third-party agent:

receive, over one or more of the network interfaces, further user input transmitted by the client device of the user, and

determine that the further user input indicates a desire to interact with another third-party agent; and

in response to determining that the further input indicates a desire to interact with another third-party agent:

transmit, to an alternative third-party agent of the group of third-party agents, an additional third-party invocation request that includes the value for the parameter.

11. The system of claim 10 , wherein the instructions to facilitate the interactions further cause the at least one processor to:

transmit, via one or more of the network interfaces, additional user input received during the interactions to the particular third-party agent; and

receive, via one or more of the network interfaces, content that is responsive to the additional user input from the particular third-party agent.

12. The system of claim 11 , wherein the instructions to resolve the value for the parameter stored in association with the intended action cause the at least one processor to:

resolve the value for the parameter based on the additional user input received during the interactions.

13. The method of claim 11 , wherein the additional user input received during the interactions further specifies an additional value for an additional parameter stored in association with the intended action.

14. The method of claim 13 , wherein the additional third-party invocation request further includes the additional value the additional parameter.

15. The method of claim 10 , wherein the instructions to determine that the further user input indicates a desire to interact with another third-party agent cause the least one processor to:

determine that the further user input is not directed to the particular third-party agent; and

identify, based on the further user input, the alternative third-party agent of the group of third-party agents.

16. The system of claim 10 , wherein the instructions further cause the at least one processor to:

facilitate, via one or more of the network interfaces, interactions between the client device and the alternative third-party agent that occur via the automated assistant interface to perform the intended action or an additional action using the value for the parameter.

17. The system of claim 10 , wherein the particular third-party agent and the alternative third-party agent belong to disparate service sectors.

18. The system of claim 10 , wherein the particular third-party agent belongs to a first subsector of a given service sector, and wherein the alternative third-party agent belongs to a second subsector of the given service sector.

19. A non-transitory computer-readable storage medium storing instructions that, when executed, cause at least one processor to:

receive, over one or more network interfaces, user input transmitted by a client device of a user, the user input being free-form and being directed to an automated assistant interface implemented by the client device;

determine that the user input indicates an intended action based on processing the user input;

select, based on the intended action, a particular third-party agent, from a group of third-party agents, to perform the intended action, wherein selecting the particular third-party agent is based on determining that the particular third-party agent can perform the intended action;

facilitate, via one or more of the network interfaces, interactions between the client device and the particular third-party agent that occur via the automated assistant interface to perform the intended action, wherein the instructions to facilitate the interactions cause the at least one processor to resolve a value for the parameter stored in association with the intended action;

during facilitating of the interactions between the client device and the particular third-party agent:

receive, over one or more of the network interfaces, further user input transmitted by the client device of the user, and

determine that the further user input indicates a desire to interact with another third-party agent; and

in response to determining that the further input indicates a desire to interact with another third-party agent:

transmit, to an alternative third-party agent of the group of third-party agents, an additional third-party invocation request that includes the value for the parameter.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2020
From: KIRAZCI, ULAS; WANG, BO; CHEN, STEVE; VEMURI, SUNIL; JAMES, BARNABY; NYGAARD, VALERIE
To: GOOGLE INC.
Reel/Frame 052938/0484 →
CHANGE OF NAME Recorded Jun 15, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 052938/0580 →
Continuity (3)
Continuation 16244780 · Jan 10, 2019
Continuation 15394872 · Dec 30, 2016
Related Publication 20200279564A1 · Sep 3, 2020