To change things a little bit, I have prepared a more technical article for all the tech lovers and professionals out there. As a Technical Project Manager, it is my job to stay always up-to-date with all the new technologies and trends out there. Only then, I will be able to provide quality solutions to guarantee the best outcome, both for the client and for our team. Thus, following my self-learning activities, I realized that I have been spending a lot of my time learning about Artificial Intelligence and exploring 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 made available by Uber, in 2020, that can be used to create conversational agents, supporting interactions through speech, text, or dialogue. To simplify: in Plato, there are four main components: 

  • The dialogue which defines and implements dialogue acts and dialogue states;
  • The domain which includes the ontology of the dialogue and the database that the dialogue system queries;
  • The controller which organizes the conversations;
  • The agent that implements different components of each conversational agent.

Take a look at the image below that represents exactly what I’ve mentioned right now:

plato dialogue system artificial intelligence

Now, let me explain to you what those components truly mean.


There are two elements that constitute the domain of the dialogue system:

  1. Ontology of the dialogue system. In task-oriented applications, the ontology determines informable slots (the user provides that information), requestable slots (the user requests that information), and system requestable slots (the system requests that information) for the conversation, thereby reflecting the schema of the database that the agent queries to get the right information to be sent out.
  2. Database of items (restaurants, dishes, answers to questions, and so on). While the database could already exist, Plato provides utilities to construct the domain and the database of a dialogue system from data.


Plato facilitates conversations between agents via 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. call an API) or actions that communicate information in modalities other than speech. Plato models Actions and States as abstract containers out of which Dialogue Acts and the Dialogue States are created. If needed for specific applications (e.g. multimodal conversational agents) we may have task-specific Dialogue Acts and States.


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

plato dialogue system artificial intelligence


Every conversational application in Plato could 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 one explicit module for each one of these components or alternatively, some of these components could be combined into one or more modules

I have also gathered some interesting articles regarding this subject, in case you’re interested in finding 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 R&D program which had as its main objective the implementation of the determination of users’ intentions, the extraction of entities (e.g. topic, day), the language generation, and interaction management. In this context, and with an in-depth study of Plato (being Plato an open-source framework) we restructured it for our specific needs, which had as its main objective the extraction of intentions and entities from a given text obtained by the user and the generation of their response as seen in the image below.

plato dialogue system artificial intelligence

How was this learning useful for LOAD?:

With the whole technological evolution happening every day, we should not (and can’t) be focused solely on our comfort zone. We must, instead, take the initiative to learn new technologies by challenging ourselves to do better. In this article, and in the conversations happening about digital evolution, we hear more often about 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, at Load, we like to be always up to date with the technological world and we feel the urge to continue exploring in order to give answers to our customers’ future needs and increase the internal knowledge of our team.


André Fernandes