  As the field of Spoken Dialogue Systems and Conversational AI grows, so does
the need for tools and environments that abstract away implementation details
in order to expedite the development process, lower the barrier of entry to the
field, and offer a common test-bed for new ideas. In this paper, we present
Plato, a flexible Conversational AI platform written in Python that supports
any kind of conversational agent architecture, from standard architectures to
architectures with jointly-trained components, single- or multi-party
interactions, and offline or online training of any conversational agent
component. Plato has been designed to be easy to understand and debug and is
agnostic to the underlying learning frameworks that train each component.
