The Feedback Loop: A basic Chatbot Development process

The Feedback Loop illustration

Feedback loops are all around us. It is the basic principle of evolution: A change occurs; The environment responds – the result of the change, if any, is positive or negative, which in turn produces another change – a correction – and so on, an endless loop of “getting better”. This dialectical principle was recognized and analyzed by thinkers from the beginning of time, in areas ranging from Hegelian philosophy to machine learning.

In the field of software, the same principle prevails everywhere: Every piece of computer software ever released bears a version number, which signifies the number of times that piece of software was fixed, revised or improved, since inception. Every software ever deployed had bugs and imperfections, gradually discovered and removed through a cyclic feedback loop.

Zooming in further, conversational software (known as “Chatbots”, “Conversational AI Bots”, “Conversational Agents”, “Conversational Interfaces”, “AI assistants”, etc) is no exception: It will necessarily undergo a similar process of deploy; analyze performance; Modify and re-deploy. In this short text I will summarize my experience from 20 years of Conversational systems Feedback Loops.

1. An early pre-launch (where most of the cleaning occurs)

The first version of a Chatbot development starts when a chatbot corresponds to an Alpha version of a software system. It already works – up and running, but still lacking features and full of bugs. It was always my preference to deploy a bot as soon as it was technically possible, and then ask a couple of friends or colleagues to have a couple of test sessions. In this pre-launch stage, 90% of the bugs and failures are discovered and ironed out. This phase would typically last between one week and one month, and involve numerous iterations.

Once the Chatbot reaches a level where it is not embarrassing, and can generally handle engaging users without damage to its reputation, it is time for the next step in the chatbot development, which corresponds to a “beta version”: The silent launch. 

2. The Chatbot’s Silent Launch (Unless you’re over confident, or really good)

In this phase, the bot is deployed in a live situation. But it’s deployed only to a limited population of users, and/or without any public announcements. This step will provide a richer stream of test sessions conducted by real users in a real scenario. The risk of public failure is minimized because no promises are made, and not all users are exposed.

Some deployments never move on to a “public launch”, which involves a full fledged announcement of the bot, including disclaimers, privacy policy etc. If the bot works well, performs its function with real users, the silent launch can be skipped. But at a certain point in time, the 3rd phase begins and routine maintenance takes over.

3. Launch to maintenance mode (where the end is only the beginning)

Once the deployed conversational system reaches maturity, it doesn’t mean it ceases to improve. Evolution keeps working. The sessions logs of conversations conducted by the bot must be constantly reviewed. There are 2 reasons: Firstly, to discover bugs – places where a response or logical flow must be fixed. Secondly, it provides valuable feedback regarding what content is missing, and how to make the bot better. This process in the chatbot development must be daily. And it must be conducted by a person well acquainted with the bot’s content and behavior: The Bot Master. 

4. The Bot Master (Take me to your leader)

Every bot should have one (and exactly one) Bot Master. A single Bot Master can run a major bot, with plenty of content and users, or a number of different, smaller bots. This person is in charge of the Chatbot’s Feedback Loop: Its learning process. 

The bot master is the only one that knows the voice, characteristics and style of the bot, and maintains this consistency of character when adding new content. He/she is also the one who knows the bot’s content in and out.

Man Ex Machina: That’s how a content growth phase looks like.

5. Content Growth (Getting better all the time)

Learning consists of fixing mistakes, and of new material. The Feedback Loop has an important role in evolution and growth of the bot. Consider a one-liner response to an input like “How is the weather?”, to which the bot responds “The weather inside the computer is always the same”. The Bot Master discovers, after viewing many logs, that many users continue the thread and say something like “Where is the computer located?”. The Bot Master may decide to add a follow-up response covering this case: “My computer is in the cloud”. And this may even go a step further, in case many users pick up on “cloud” and switch to this context.

So, to summarize the phases of a chatbot development: Start with an early pre-launch; then, consider a silent launch; Designate a Bot Master who is well acquainted with the bot’s personality (preferably from the content team), and then stick to the content loop and add fresh content on a daily or weekly basis.

Many organizations deploy conversational systems, and even many of those who make them, believe the work is done when the bot goes live. This is a grave mistake, and a very common budgeting error. An online Chatbot must have ongoing human supervision, since a human is a part of its learning cycle. When budgeting a conversational system, at least half of the total cost must be allocated for the first year of monitoring, reviewing and analysing logs, and constantly introducing fixes and additions. When a new Chatbot is launched and goes online, the project is nor over – it is only starting.

Want more cool stuff like that? Subscribe to our YouTube channel | Join our Discord community | Sign up for our newsletter | Follow us on FacebookLinkedInInstagram or Twitter

Share on facebook
Facebook
Share on google
Google+
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on pinterest
Pinterest

Leave a Reply

Your email address will not be published. Required fields are marked *