IP Library Granted Patent US 11,290,574
Granted Patent B2
US 11,290,574 · App. 16/416,801 · Granted Mar 29, 2022

Systems and methods for aggregating skills provided by a plurality of digital assistants

Inventors: David Le Strat (Raleigh, NC); Kedarnath Venkata Satya Poduri (San Jose, CA)
Assignee: Citrix Systems, Inc.
H04L67/42H04L67/141H04L67/28
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 11,290,574
App. No.
16/416,801
Granted
Mar 29, 2022
Kind
B2
Abstract

Embodiments described include systems and methods for aggregating a plurality of skills provided by a plurality of digital assistants. A server can generate a skill agent having a plurality of skills corresponding to skills performed by a plurality of digital assistants. A request can be received for content for a user of the device and the server can identify one or more skills to generate the content included within the request. A first digital assistant can be selected using the skill agent to handle the request based on the identified one or more skills to generate the content. The server can request the first digital assistant to perform the identified one or more skills and provide a response to the request that includes content generated responsive to the first digital assistant performing the identified one or more skills.

Claims (60)

1. A method for aggregating a plurality of skills provided by a plurality of digital assistants, the method comprising:

(a) generating, by a server, a skill agent comprising a plurality of skills corresponding to skills performed by a plurality of digital assistants, the skill agent including at least one skill from a digital assistant provided by the server and one or more skills provided by one or more third party digital assistants provided by a plurality of remote servers;

(b) receiving, by the server, from a device, a request for content for a user of the device;

(c) identifying, by the server, a first skill and a second skill of the plurality of skills used to generate the content for the request;

(d) selecting, by the server using the skill agent to handle the request, a first digital assistant provided by the server based on i) the first skill and ii) content provided by the first digital assistant for each of a first plurality of prior requests matching one another, and selecting a second digital assistant provided by at least one remote server of the plurality of digital assistants based on i) the second skill and ii) content provided by the second digital assistant for each of a second plurality of prior requests matching one another, the server requesting the first digital assistant to perform the first skill and the second digital assistant to perform the second skill to generate the content for the request; and

(e) providing, by the server, a response to the request to the user of the device, the response aggregating the content from the first digital assistant and the second digital assistant and generated responsive to the first digital assistant and the second digital assistant performing the identified first skill and the second skill, the response including a first portion of the content generated by the first digital assistant performing the first skill and a second portion of the content generated by the second digital assistant performing the second skill.

2. The method of claim 1 , wherein (e) further comprises:

tracking the content generated by the first digital assistant; and

updating the skill agent to indicate the first digital assistant of the plurality of digital assistants that generated the content.

3. The method of claim 1 , further comprising:

generating a weighted score for the digital assistant provided by the server and the one or more third party digital assistants provided by the plurality of remote servers responsive to the digital assistant provided by the server or the one or more third party digital assistants provided by the plurality of remote servers generating content.

4. The method of claim 1 , wherein (e) further comprises:

dynamically updating the skill agent with one or more weighted scores responsive to the execution of each request of a plurality of requests executed by the digital assistant provided by the server or the one or more third party digital assistants provided by the plurality of remote servers.

5. The method of claim 4 , further comprising:

selecting, by the server and using the skill agent, the at least one of the digital assistant provided by the server and the one or more third party digital assistants provided by the plurality of remote servers to handle subsequent requests based on the one or more weighted scores.

6. The method of claim 1 , wherein (d) further comprises:

establishing, by the server, a connection to at least one remote server of the plurality of remote servers; and

proxying, by the server, the request to at least one third party digital assistant of the at least one remote server of the plurality of remote servers to perform the identified one or more skills included within the request.

7. The method of claim 1 , further comprising:

determining, by the server, a type of content generated by the digital assistant provided by the server and the one or more third party digital assistants provided by the plurality of remote servers.

8. The method of claim 7 , further comprising:

grouping, by the server and in the skill agent, the digital assistant provided by the server and the one or more third party digital assistants provided by the plurality of remote servers into content groups based on the determined type of content.

9. The method of claim 1 , further comprising:

determining, by the server, the skills performed by the one or more third party digital assistants provided by the plurality of remote servers; and

aggregating, by the server and using the skill agent, the skills performed by the one or more third party digital assistants provided by the plurality of remote servers for at least one desktop session hosted by the device through an client application.

10. The method of claim 1 , further comprising:

identifying, by the server, a user profile corresponding to the user of the device; and

determining, by the server, the one or more third party digital assistants provided by the plurality of remote servers based on the user profile and the one or more third party digital assistants provided by the plurality of remote servers that the user previously interacted with through the device.

11. The method of claim 1 , further comprising:

generating, by the server, a content profile for each digital assistant of the plurality of digital assistants, the content profile including properties of the content generated by the digital assistant provided by the server and the one or more third party digital assistants provided by the plurality of remote servers.

12. A system for generating aggregating a plurality of skills provided by a plurality of digital assistants, the system comprising:

a server comprising one or more processors coupled to a memory, the server configured to:

generate a skill agent comprising a plurality of skills corresponding to skills performed by a plurality of digital assistants, the skill agent including at least one skill from a digital assistant provided by the server and one or more skills provided by one or more third party digital assistants provided by a plurality of remote servers;

receive from a device, a request for content for a user of the device;

identify a first skill and a second skill of the plurality of skills used to generate the content for the request;

select, using the skill agent to handle the request, a first digital assistant provided by the server based on i) the first skill and ii) content provided by the first digital assistant for each of a first plurality of prior requests matching one another, and select a second digital assistant provided by at least one remote server of the plurality of digital assistants based on i) the second skill and ii) content provided by the second digital assistant for each of a second plurality of prior requests matching one another, the server requesting the first digital assistant to perform the first skill and the second digital assistant to perform the second skill to generate the content for the request; and

provide a response to the request to the user of the device, the response aggregating the content from the first digital assistant and the second digital assistant and generated responsive to the first digital assistant and the second digital assistant performing the identified first skill and the second skill, the response including a first portion of the content generated by the first digital assistant performing the first skill and a second portion of the content generated by the second digital assistant performing the second skill.

13. The system of claim 12 , wherein the server is further configured to:

track the content generated by the first digital assistant; and

update the skill agent to indicate the first digital assistant of the plurality of digital assistants that generated the content.

14. The system of claim 12 , wherein the server is further configured to:

generate a weighted score for the digital assistant provided by the server and the one or more third party digital assistants provided by the plurality of remote servers responsive to the digital assistant provided by the server or the one or more third party digital assistants provided by the plurality of remote servers generating content.

15. The system of claim 12 , wherein the server is further configured to:

dynamically update the skill agent with one or more weighted scores responsive to the execution of each request of a plurality of requests executed by the digital assistant provided by the server or the one or more third party digital assistants provided by the plurality of remote servers.

16. The system of claim 12 , wherein the server is further configured to:

select, using the skill agent, the at least one of the digital assistant provided by the server and the one or more third party digital assistants provided by the plurality of remote servers to handle subsequent requests based on the one or more weighted scores.

17. The system of claim 12 , wherein the server is further configured to:

establish a connection to at least one remote server of the plurality of remote servers; and

proxy the request to at least one third party digital assistant of the at least one remote server of the plurality of remote servers to perform the identified one or more skills included within the request.

18. The system of claim 12 , wherein the server is further configured to:

determine a type of content generated by the digital assistant provided by the server and the one or more third party digital assistants provided by the plurality of remote servers.

19. The system of claim 18 , wherein the server is further configured to:

group, in the skill agent, the digital assistant provided by the server and the one or more third party digital assistants provided by the plurality of remote servers into content groups based on the determined type of content.

20. The system of claim 12 , wherein the server is further configured to:

determine the skills performed by the one or more third party digital assistants provided by the plurality of remote servers; and

aggregate, using the skill agent, the skills performed by the one or more third party digital assistants provided by the plurality of remote servers for at least one desktop session hosted by the device through an client application.

21. The method of claim 1 , further comprising:

receiving, by the server, from a client application on the device, the request for content, wherein the client application includes an embedded browser to access the skill agent.

22. The method of claim 1 , further comprising:

providing, by the server through an embedded browser of a client application on the device, the response to the request to the user of the device.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2019
From: LE STRAT, DAVID; PODURI, KEDARNATH VENKATA SATYA
To: CITRIX SYSTEMS, INC.
Reel/Frame 049587/0932 →
Continuity (1)
Related Publication 20200374372A1 · Nov 26, 2020