Virtual Agents are AI-driven interfaces that help users (travelers, partners, etc.) accomplish a variety of tasks using natural language conversations.
Each Virtual Agent is a collection of one or more specialized Skills encompassing a variety of pre-booking, post-booking and sales related tasks across the Expedia Group travel products, while also enabling partners to create their custom Tasks.
When a user engages with the Conversation Platform, the Virtual Agent evaluates the user input and routes the conversation to and from the appropriate Skills.
A Virtual Agent comprises the following sections, as shown in the definition below:
{
"name": "QUICKSTART_VA",
"skills": [
{
"resource_uri": "{MY_FIRST_SKILL_RESOURCE_URI}",
"name": "MY_FIRST_SKILL"
},
{
"resource_uri": "{MY_ECHO_SKILL_RESOURCE_URI}",
"name": "MY_ECHO_SKILL"
},
{
"resource_uri": "{UNKNOWN_SCENARIO_SKILL_RESOURCE_URI}",
"name": "UNKNOWN_SCENARIO_SKILL"
}
],
"confidence_settings": {
"threshold": 0.9,
"confidence_handling_skill": "UNKNOWN_SCENARIO_SKILL_INTENT"
},
"configuration": {
"nlu_provider": "Ai",
"error_message_text_code": "CUSTOM_ERROR_MESSAGE_CODE",
"send_typing_indicator": true
},
"user_type": "CUSTOMER"
}A brief explanation of the above resource is as follows:
| Name | Description |
|---|---|
| name | Name of the Virtual Agent. |
| skills | Collection of Skills, which includes corresponding skill_id and skill name. See Skills for more information. |
| confidence_settings | Indicates the Skill Intent (confidence_handling_skill) to be executed when the Natural Language Understanding (NLU) engine confidence level reports a value lower than the threshold configured. The threshold values range from 0.1 to 1.0. |
| configuration | Collection of key/value pairs available for the Virtual Agent. See Configuration for more information. |
| user_type | Type of user that will be interacting with the Virtual Agent. See User Type for more information. |
The Skills array object can hold information (resource_uri and name) about the out-of-the-box Platform Platform Skills and Partner developed Business Skills.
You can define your Virtual Agent with System Skills, your own Partner developed Skills or mix them all together.
There is no hard limit on the number of Skills that you can define in your Virtual Agent.
To learn more, visit the Skills section.
The Configuration object at the Virtual Agents level holds information defined across all the Skills and Tasks in the Virtual Agent.
The values defined in the Virtual Agent Configuration object can be overwritten by Skills and/or Tasks resource definitions.
The Configuration object can hold the following values:
| Key | Required | Possible Values | Description |
|---|---|---|---|
| nlu_provider | yes | Ai | The Natural Language Provider configured for the Virtual Agent. |
| nlu_provider_url | no | Ai provider endpoint | The Natural Language Provider endpoint configured for the Virtual Agent. It overwrites the default endpoint. |
| error_message_text_code | no | Registered Message Code | Custom error message to be displayed to the traveler/customer/user when the Conversation Platform can not reach the Partner's Task services. See Creating New Message Codes for more information on registering your own Message Code. |
| send_typing_indicator | no | true or false | See the Typing Indicator section to learn more about it. |
| error_handling_skill | no | custom error handling intent | See the Error Handling Skill section to learn more about it. |
The participant type ie Traveler, HumanAgent or Supplier of the first participant that joins a conversation will govern which Virtual Agent type will be pulled into the conversation as the second participant.
| First Participant Type | User type of Virtual Agent |
|---|---|
| Traveler | CUSTOMER |
| HumanAgent | AGENT |
| Supplier | SUPPLIER |
For example: When the first participant of the conversation with type say Traveler initiates a conversation, the Virtual Agent of type Customer is searched for within the resource hierarchy and then add to the Conversation as the second participant.