For a change, I have prepared a rather technical article for all the technology lovers and professionals out there. As a technical project manager, it’s my job to always stay up to date with the new technologies and trends that are out there. This is the only way I am able to provide high quality solutions that guarantee the best result for both the customer and our team. In my self-learning activities, I have found that I spend a lot of time learning about artificial intelligence and researching Plato.

What is Plato?

The Plato Research Dialogue System is a framework that can be used to create, train, and evaluate conversational artificial intelligence (AI) agents. Plato is a tool provided by Uber in 2020 that can be used to create conversational agents that support interactions through speech, text, or dialogue. To simplify, there are four main components in Plato:

  • The dialogue that defines and implements dialogue actions and dialogue states;
  • The domain that comprises the ontology of the dialogue and the database that the dialogue system queries;
  • The controller, which organizes the conversations;
  • The agent that implements the various components of each conversational agent.

Take a look at the following picture, which represents exactly what I just mentioned:

plato dialogue system artificial intelligence

Now let me explain to you what these components really mean.


There are two elements that make up the domain of the dialogue system:

  1. Dialogue system ontology. In task-oriented applications, the ontology determines informable slots (the user provides this information), requestable slots (the user requests this information), and system-requestable slots (the system requests this information) for the conversation, reflecting the schema of the database that the agent queries to obtain the correct information to send.
  2. Database of items (restaurants, dishes, answers to questions, etc.). Although the database may already exist, Plato provides tools to construct the domain and database of a dialogue system from data.


Plato facilitates conversations between agents through well-defined concepts in dialogue theory, such as dialogue states and dialogue acts. A Plato agent may need to perform actions not directly related to dialogue (e.g., invoking an API), or actions that communicate information in modalities other than speech. Plato models actions and states as abstract containers from which dialogue acts and the dialogue states are created. If required for specific applications (e.g., multimodal conversational agents), we can have task-specific dialogue acts and states.


In Plato, controllers are objects that organize conversations between agents. A controller instantiates the agents, initializes them for each dialogue, passes input and outputs accordingly, and keeps track of statistics.

plato dialogue system artificial intelligence


Each conversational application in Plato can have one or more agents. Each agent has a role and a set of components such as NLU (Natural Language Understanding), DM ( Dialogue Management), DST (Dialogue State Tracking), Dialogue Policy, and NLG (Natural Language Generation). An agent could have an explicit module for each of these components, or alternatively, some of these components could be combined into one or more modules.

I have also put together some interesting articles on this topic if you want to learn more about Plato. You can take a look at them HERE and HERE.

Some of the results:

The learning process of the Plato framework was integrated into LOAD’s research and development program, whose main goal was to implement user intent determination, entity extraction (e.g., topic, day), language generation, and interaction management. In this context, and with an in-depth study of Plato (since Plato is an open-source framework), we restructured it for our specific needs, whose main objective was the extraction of intentions and entities from a given text received from the user and the generation of his response, as shown in the figure below.

plato dialogue system artificial intelligence

How was this learning useful for LOAD?:

With all the technological development taking place every day, we should not (and cannot) focus only on our comfort zone. Instead, we need to take the initiative to learn new technologies by challenging ourselves to become better. In this article and in conversations happening about digital evolution, we hear more and more the term “artificial intelligence” and the need for it to be present in our daily lives.
With this in mind, and as true technology lovers, we at LOAD always want to be on the cutting edge of technology and feel the urge to continue researching to provide answers to the future needs of our customers and expand the internal knowledge of our team.


NEVER MISS A STORY!Join our growing community and get inspiring articles.
No jokes, no games, no advertising and just one click to unsubscribe.