# US 12,182,517 B2 · Systems and methods for a virtual agent in a cloud computing environment

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

- Number: US 12,182,517 B2
- Document ID: US12182517B2
- Status: Granted
- Kind: B2
- Application number: 18/462,092
- Filed: 2023-09-06
- Published: 2023-12-21
- Granted: 2024-12-31
- Earliest claimed: 2019-03-19
- Assignees: ServiceNow, Inc.
- Applicants: ServiceNow, Inc.
- Inventors: Nabil Abu Asba; Mark David Griffin; Anuj Jain
- Web page: https://patentgrep.com/patent/US12182517B2

## CPC

- G06F 40/30: Semantic analysis
- G06F 40/295: Named entity recognition
- G10L 15/1822: {Parsing for meaning understanding}
- G10L 15/22: Procedures used during a speech recognition process, e.g. man-machine dialogue
- H04L 51/02: using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
- G06F 40/279: Recognition of textual entities
- G06F 40/35: Discourse or dialogue representation
- G10L 2015/223: {Execution procedure of a spoken command}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Present embodiments are directed to a virtual agent with improved natural language understanding (NLU) capabilities. The disclosed virtual agent enables topic selection and topic changes during natural language exchanges with a user. The virtual agent is designed to select suitable topic flows to execute based on intents identified in received user utterances, including selection of an initial topic flow in response to a topic identified in a first user utterance, as well as switching between topic flows mid-conversation based on identified topic changes. The virtual agent is also capable of considering all intents and entities conveyed during the conversation, which enables the virtual agent to avoid prompting the user to provide redundant information. Furthermore, the virtual agent is capable of executing topic flows as part of a global topic flow, which enables the virtual agent to perform a number of predefined activities as part of each interaction with the user.

## Claims

### Claim 1

A method of operating a virtual agent, comprising:
executing a global topic flow that defines a series of nodes having instructions that are executed for each natural language exchange between the virtual agent and a plurality of users, wherein executing the global topic flow comprises:
executing a topic discovery node of the global topic flow, wherein executing the topic discovery node comprises:
receiving a first user utterance;
providing the first user utterance to a natural language understanding (NLU) service;
receiving, from the NLU service, a first scored set of intents and entities derived from the first user utterance;
selecting a first topic flow in response to determining that a first intent from the first scored set of intents and entities is associated with the first topic flow;
applying first entities from the first scored set of intents and entities to first input nodes of the first topic flow;
executing the first topic flow to respond to the first user utterance;
receiving a second user utterance during execution of the first topic flow;
selecting a second topic flow in response to determining that a second intent from a second scored set of intents and entities is associated with the second topic flow, wherein the second scored set of intents and entities is derived from the second user utterance;
applying the first entities from the first scored set of intents and entities, second entities from the second scored set of intents and entities, or a combination thereof, to second input nodes of the second topic flow;
executing the second topic flow to respond to the second user utterance; and
determining whether to resume execution of the first topic flow after completing execution of the second topic flow.

### Claim 2 (depends on 1)

The method of claim 1, wherein executing the second topic flow of the topic discovery node of the global topic flow comprises:
providing the second user utterance to the NLU service; and
receiving, from the NLU service, the second scored set of intents and entities derived from the second user utterance.

### Claim 3 (depends on 1)

The method of claim 1, wherein the topic discovery node of the global topic flow is configured to resume execution of the first topic flow after completing execution of the second topic flow based on a determination step associated with the first topic flow providing an indication to resume execution of the first topic flow.

### Claim 4 (depends on 1)

The method of claim 1, wherein executing the global topic flow comprises executing a greetings node of the global topic flow that outputs a predefined greeting before executing the topic discovery node.

### Claim 5 (depends on 1)

The method of claim 1, wherein executing the global topic flow comprises:
executing an additional topic node of the global topic flow that outputs a predefined prompt regarding one or more additional topics to be discussed after executing the topic discovery node;
receiving user input in response to the predefined prompt; and then
executing a decision node of the global topic flow that repeats execution of the topic discovery node based on the user input received in response to the predefined prompt.

### Claim 6 (depends on 5)

The method of claim 5, wherein the user input is a second third user utterance, and comprising:
providing the third user utterance to the NLU service;
receiving, from the NLU service, a third scored set of intents and entities derived from the third user utterance; and
identifying an additional topicof the one or more additional topics to be discussed based on the third scored set of intents and entities derived from the third user utterance.

### Claim 7 (depends on 6)

The method of claim 6, wherein the predefined prompt includes user interface elements, and wherein receiving the user input comprises receiving the user input based on user interactions with the user interface elements of the predefined prompt.

### Claim 8 (depends on 5)

The method of claim 5, wherein executing the global topic flow comprises:
after executing the decision node, executing a survey node of the global topic flow to output a predefined survey question and to receive and store a second user input in response to the predefined survey question.

### Claim 9

A virtual agent system, comprising:
at least one memory configured to store a global topic flow that defines a series of nodes having instructions that are executed for each natural language exchange between the virtual agent system and a plurality of users; and
at least one processor configured to execute the global topic flow to cause the virtual agent system to perform actions comprising:
executing a topic discovery node, wherein the topic discovery node is configured to:
receive a first user utterance from a user;
provide the first user utterance to a natural language understanding (NLU) service;
receive, from the NLU service, a first scored set of intents and entities derived from the first user utterance;
select a first topic flow in response to determining that a first intent from the first scored set of intents and entities is associated with the first topic flow;
apply first entities from the first scored set of intents and entities to first input nodes of the first topic flow;
execute the first topic flow to respond to the first user utterance;
receive a second user utterance during execution of the first topic flow;
select a second topic flow in response to determining that a second intent from a second scored set of intents and entities is associated with the second topic flow, wherein the second scored set of intents and entities is derived from the second user utterance;
apply the first entities from the first scored set of intents and entities, second entities from the second scored set of intents and entities, or a combination thereof, to second input nodes of the second topic flow;
execute the second topic flow to response to the second user utterance; and
determine whether to resume execution of the first topic flow after completing execution of the second topic flow.

### Claim 10 (depends on 9)

The system of claim 9, wherein the series of nodes includes a greetings node that is executed before the topic discovery node in the global topic flow, wherein the greetings node of the global topic flow is configured to output a predefined greeting to the user.

### Claim 11 (depends on 9)

The system of claim 9, wherein the series of nodes includes an additional topics node that is executed after the topic discovery node in the global topic flow, wherein the additional topics node of the global topic flow is configured to:
output a predefined prompt to the user asking whether the user has additional topics to be discussed; and
receive input from the user in response to the predefined prompt.

### Claim 12 (depends on 11)

The system of claim 11, wherein the series of nodes includes a decision node that is executed after the additional topics node in the global topic flow, wherein the decision node of the global topic flow is configured to repeat execution of the topic discovery node based on the input received from the user in response to the predefined prompt.

### Claim 13 (depends on 12)

The system of claim 12, wherein the series of nodes includes a survey node that is executed after the decision node in the global topic flow, wherein the survey node is configured to:
output a predefined survey question to the user; and
receive and store user input in response to the predefined survey question.

### Claim 14

A non-transitory, computer-readable medium storing instructions executable by a processor of a computing system, the instructions comprising instructions to:
execute a global topic flow that defines a series of nodes having instructions that are executed for each natural language exchange between a virtual agent and a plurality of users, wherein the global topic flow comprises instructions to:
execute a topic discovery node of the global topic flow, wherein the topic discovery node comprises instructions to:
receive a first user utterance from a user;
provide the first user utterance to a natural language understanding (NLU) service;
receive, from the NLU service, a first scored set of intents and entities derived from the first user utterance;
select a first topic flow in response to determining that a first intent from the first scored set of intents and entities is associated with the first topic flow;
apply first entities from the first scored set of intents and entities to first input nodes of the first topic flow;
execute the first topic flow to respond to the first user utterance;
receive a second user utterance during execution of the first topic flow;
select a second topic flow in response to determining that a second intent from a second scored set of intents and entities is associated with the second topic flow, wherein the second scored set of intents and entities is derived from the second user utterance;
apply the first entities from the first scored set of intents and entities, second entities from the second scored set of intents and entities, or a combination thereof, to second input nodes of the second topic flow;
execute the second topic flow to response to the second user utterance; and
determine whether to resume execution of the first topic flow after completing execution of the second topic flow.

### Claim 15 (depends on 14)

The medium of claim 14, wherein the topic discovery node comprises instructions to:
provide the second user utterance to the NLU service; and
receive, from the NLU service, the second scored set of intents and entities derived from the second user utterance.

### Claim 16 (depends on 15)

The medium of claim 15, wherein the topic discovery node comprises instructions to:
resume execution of the first topic flow after completing execution of the second topic flow based on a design type of the first topic flow.

### Claim 17 (depends on 14)

The medium of claim 14, wherein the global topic flow comprises instructions to:
execute a greetings node of the global topic flow before executing the topic discovery node, wherein the greetings node comprises instructions to output a predefined greeting to the user.

### Claim 18 (depends on 14)

The medium of claim 14, wherein the global topic flow comprises instructions to:
execute an additional topics node of the global topic flow after executing the topic discovery node, wherein the additional topics node comprises instructions to:
output a predefined prompt to the user asking whether the user has additional topics to be discussed; and
receive input from the user in response to the predefined prompt.

### Claim 19 (depends on 18)

The medium of claim 18, wherein the global topic flow comprises instructions to:
execute a decision node of the global topic flow after executing the additional topics node, wherein the decision node comprises instructions to repeat execution of the topic discovery node in response to determining that the user has the additional topics to be discussed based on the input received from the user.

### Claim 20 (depends on 19)

The medium of claim 19, wherein the global topic flow comprises instructions to:
execute a survey node of the global topic flow after executing the decision node, wherein the survey node comprises instructions to:
output a predefined survey question to the user; and
receive and store additional input from the user in response to the predefined survey question.
