IP Library Granted Patent US 12,243,530
Granted Patent B2
US 12,243,530 · App. 18/411,516 · Granted Mar 4, 2025

Multiple skills processing

Inventors: Rohin Dabas (Kirkland, WA); Troy Dean Schuring (Maple Valley, WA); Rashmi Tonge (Bellevue, WA); Michael James Montgomery (Seattle, WA); Kevindra Pal Singh (Seattle, WA); Adam Baran (Redmond, WA); David Thomas (Woodinville, WA); Nnenna Eleanya Okwara (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G10L15/22G10L15/1815G10L15/30G10L15/1822G10L15/183G10L2015/223G10L2015/228
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 12,243,530
App. No.
18/411,516
Granted
Mar 4, 2025
Kind
B2
Abstract

Described herein is a system for enabling a user to perform complex goals using multiple skills/applications of an intelligent assistant device. Skills may register as consumers of an action or providers of an action, and the consumer skills may be configured to invoke provider skills to perform actions. The system receives a request to perform an action from a skill along with some action data. The system validates the action data, selects another skill to perform the action, and forwards the request to the selected skill to perform the action.

Claims (64)

1. A computer-implemented method, comprising:

receiving first data indicating a first component, capable of performing a first action in response to a natural language input, is authorized to request performance of a second action that is performable by at least one other component different than the first component;

after receiving the first data, receiving input data representing a first natural language input;

determining, using the input data, that the first action is to be performed using the first component;

sending, to the first component, a first request to perform the first action in response to the first natural language input;

receiving, from the first component and after sending the first request, a second request for a second component to perform the second action, the second action being determined by the first component;

determining, using the first data, that the first component is authorized to request performance of the second action;

sending, to the second component, a third request to perform the second action; and

determining, based at least in part on performance of the first action and the second action, output data responsive to the first natural language input, the output data comprising a first natural language output.

2. The computer-implemented method of claim 1 , wherein determining the output data comprising the first natural language output is performed by the first component.

3. The computer-implemented method of claim 1 , further comprising:

determining a user profile associated with the input data; and

determining, based at least in part on the user profile, that the second component is permitted to execute with respect to the input data.

4. The computer-implemented method of claim 1 , further comprising:

detecting, by a first device, a user input corresponding to the input data;

executing, by the first device, the first component; and

executing, by the first device, the second component.

5. The computer-implemented method of claim 1 , further comprising:

receiving a user input corresponding to an indication for the first component to be permitted to request performance of the second action; and

based at least in part on the user input, determining the first data.

6. The computer-implemented method of claim 1 , further comprising:

after receiving the input data and prior to sending the third request, determining that second data is required to perform the second action by the second component; and

generating output data requesting the second data from a user device.

7. The computer-implemented method of claim 1 , wherein the second request comprises an application program interface (API) call.

8. The computer-implemented method of claim 1 , further comprising:

determining, by the first component, second data corresponding to execution of the second action; and

sending, from the first component to the second component, the second data.

9. The computer-implemented method of claim 8 , wherein the second data comprises natural language data.

10. The computer-implemented method of claim 1 , further comprising:

determining, by the first component, second data corresponding to execution of the second action by the second component; and

causing a user device to display an output corresponding to the second data.

11. A system comprising:

at least one processor; and

at least one memory comprising instructions that, when executed by the at least one processor, cause the system to:

receive first data indicating a first component, capable of performing a first action in response to a natural language input, is authorized to request performance of a second action that is performable by at least one other component different than the first component;

after receipt of the first data, receiving input data representing a first natural language input;

determine, using the input data, that the first action is to be performed using the first component;

send, to the first component, a first request to perform the first action in response to the first natural language input;

receive, from the first component and after sending the first request, a second request for a second component to perform the second action, the second action being determined by the first component;

determine, using the first data, that the first component is authorized to request performance of the second action;

send, to the second component, a third request to perform the second action; and

determine, based at least in part on performance of the first action and the second action, output data responsive to the first natural language input, the output data comprising a first natural language output.

12. The system of claim 11 , wherein determination of the output data comprising the first natural language output is performed by the first component.

13. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

determine a user profile associated with the input data; and

determine, based at least in part on the user profile, that the second component is permitted to execute with respect to the input data.

14. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

detect, by a first device, a user input corresponding to the input data;

execute, by the first device, the first component; and

execute, by the first device, the second component.

15. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

receive a user input corresponding to an indication for the first component to be permitted to request performance of the second action; and

based at least in part on the user input, determine the first data.

16. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

after receipt of the input data and prior to sending the third request, determine that second data is required to perform the second action by the second component; and

generate output data requesting the second data from a user device.

17. The system of claim 11 , wherein the second request comprises an application program interface (API) call.

18. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

determining, by the first component, second data corresponding to execution of the second action; and

sending, from the first component to the second component, the second data.

19. The system of claim 18 , wherein the second data comprises natural language data.

20. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

determine, by the first component, second data corresponding to execution of the second action by the second component; and

cause a user device to display an output corresponding to the second data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2024
From: DABAS, ROHIN; SCHURING, TROY DEAN; TONGE, RASHMI; MONTGOMERY, MICHAEL JAMES; SINGH, KEVINDRA PAL; BARAN, ADAM; THOMAS, DAVID; OKWARA, NNENNA ELEANYA
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 066112/0542 →
Continuity (3)
Continuation 17945320 · Sep 15, 2022
Continuation 16294747 · Mar 6, 2019
Related Publication 20240185852A1 · Jun 6, 2024
References Cited (13)
US 8620667B2 · Andrew · 2013 [cited by examiner]
US 10091545B1 · Cwik · 2018 [cited by examiner]
US 10332513B1 · D'Souza · 2019 [cited by examiner]
US 11037562B2 · Shah · 2021 [cited by examiner]
US 11508376B2 · Nitz · 2022 [cited by examiner]
US 11631017B2 · White · 2023 [cited by examiner]
US 20140172953A1 · Blanksteen · 2014 [cited by examiner]
US 20170025124A1 · Mixter · 2017 [cited by examiner]
US 20190130915A1 · Nitz · 2019 [cited by examiner]
US 20190243669A1 · Gupta · 2019 [cited by examiner]
US 20200175118A1 · Mahajan · 2020 [cited by examiner]
US 20200304493A1 · Lewis · 2020 [cited by examiner]
US 20200382517A1 · Alsina · 2020 [cited by examiner]