International Journal of Computer Trends and Technology (IJCTT) Volume 50 Number 2 August 2017 ISSN: 2231-2803 http://www.ijcttjournal.org Page 114 Standardized Architecture for Conversational Agents a.k.a. ChatBots Roshan Khan Director, Technology, Amadeus Software Labs India Pvt. Ltd. 6 th Floor, Etamin Block, Prestige Tech Park, Marathahalli, Bangalore, India 560103. Abstract The emergence of new technologies, such as Siri, Alexa, Cortana and Google Now which are powered by natural language processing and speech recognition programs, are driving users away from mobile-first to voice-first interactions. Also, due to the rise of so many platforms including Facebook Messenger, WeChat, Skype, LINE, Viber, Telegram, Slack, Google Home and Amazon Echo, it is evident, that this disruptive technology of ChatBots will soon become omnipresent and we cannot avoid it. So the sooner we standardize the architecture and frameworks used to implement the ChatBot solutions, the better it would be for the benefit of all. This paper describes and proposes, a generic standardized architecture for design and implementation of custom ChatBot solutions. Keywords ChatBot, Conversational agent, AI (Artificial Intelligence), NLP (Natural Language Processing), ML (Machine Learning), IVR. I. INTRODUCTION We all have the experience of talking to customer service on the phone (IVR - Interactive Voice Response). Most of the times, it‘s frustrating to use, as we have to pass through multiple menu options before we are actually connected to a human agent. Still we see all service providers have deployed this system as an interface for their customer service, even though it is not accomplishing its basic goal of reducing and shortening customer service calls. To add on to the frustration, the customer executives are available only for a few hours a day and few days a week. So instead of getting limited information at the end, it is always better if we are directed to the right place/agent to handle our request and provide all the information, in addition to suggestions for further actions. And this is where ChatBot solutions are playing a major role! Basically, more and more people are spending more and more time in messaging apps, making the messaging apps as a platform of the future. In light of all these technological developments, it becomes all the more important that we have a generic, standardized architecture and framework for ChatBots, also known as the conversational agents. II. NEED FOR A STANDARD ARCHITECTURE By definition, an architecture is a foundational structure, or set of structures, which can be used for developing a broad range of applications. It should describe as a method for designing a target state in terms of a set of building blocks, and for showing how the building blocks fit together. It should contain a set of tools and provide a common vocabulary. In simple terms, it enables the understanding, implementation, maintenance, and further development of a system. As understood in the previous section, the rapid pace at which the ChatBot related technologies is gaining popularity, organizations are forced to reconsider the channel enablement strategies and for sure the related architectural approach. It is no longer sufficient to simply have a chat client on their web sites, or have a bot on Facebook. As consumers expectations from applications are continuing to grow, it is most essential to have a scalable, sustainable and standardized architecture. III. TYPICAL CHATBOT SOLUTION ARCHITECTURE At the highest level, the proposed architecture for conversational agent look inherently similar to any other layered technology platforms or technology stacks. But of course, it has specificity to our domain of discussion. Fig. 1. Portrays how an architectural view of a typical ChatBot solution and its processing ecosystem should look like. This architecture diagram clearly shows that the user interacts with the presentation layer, which encapsulates the various user interface components to communicate with the system. The presentation layer then communicates with the underlying business layer components to access functional capabilities of the system. The data layer manages access to local data, which is in turn is provided to the layers above through the service layer. Service layer is responsible for integrating with external/third party services for sharing the data for further usage or for gathering information required for adding value to the list of services. The utility layer provides common services such as configuration, security and other utility services.