The Errol Agent

May 2019 - May 2020

As a part of my graduate studies at the Georgia Institute of Technology, I worked in a graduate research team advised by Professor Ashok Goel in building a knowledge-based AI agent tasked with assisting first-time startup founders with improvements to their business model canvas. The agent, Errol, takes in the user's business model canvas (BMC) and asks the user questions regarding segments of the BMC. These questions are geared towards improvements for the Customer Segment and Value Proposition sections.

The agent initially had a simple HTML/CSS/JS front end, with an a simple natural language processing algorithm consisting of keyword parsing and lexical analysis on input phrases to obtain the meanings. Errol would then run a rule-based advice output system; certain rules were triggered based on certain keywords in the input phrases, and recommendations were generated based on a cosine similarity between input keywords and a populated knowledge-base of advice for the user.

After a round of user testing in May 2019, we observed that the agent needed a serious redesign, both frontend and backend. Below is a brief overview of those changes.

Project Goals

I joined the Errol team in May 2019, and after some qualitative user testing with a low fidelity interface, we were seeing some patterns in user responses. Users had observed that the user interface came off to users as "incomplete" and "simple". Users also mentioned that the interface seemed "like something from the early 2000's."

With regards to the suggestion-output functionality, users noted that certain output phrases were contradictory, and that other phrases were not accurate to the user's inputs. Users also mentioned that the outputs seemed croweded, and that it was hard to distinguish which suggestions corresponeded to which segment (Customers or Values).

This led to us forming redesign goals. Working with another student, Mukundan Kuthalam, we planned to redesign both the interface as well as the backend algorithm for question parsing and phrase outputing.

I began my frontend redesign by quickly whiteboard-sketching possible designs that might help to give our users a more "professional" and "complete" feel of Errol, as they had suggested in user interviews. This led me to pursue designs for a complete dashboard, rather than a single page of inputs and outputs.

To further help with the feeling of "completeness" as users had craved, I sketched a storyboard to show the flow of the many pages we would need to implement, which included a login/signup, our main dashboard, and a user settings page. I added the login and signup feature not only for completeness purposes, but also to plan for future user testing; the Errol agent is built around helping multiple startup teams, and so personalized user accounts would be critical in helping teams keep track of their individual business models and progress through Errol.

The design of the dashboard was meant to convey a feeling of professionalism. After all, we were geared towards helping early stage businesses improve their business models. I made sure to maintain the Customer Segment and Value Proposition fields, as these were our primary segments for outputing suggestions to the user. After inputs were entered, suggestions would be formed through the backend algorithm and displayed below.

Natural Language Processing Algorithm

The user input processing is handled using the NLTK Python library to analyze the user input statements for parts of speech. First a rule-table is used to handle edge conditions of the user input (ie. not enough information given by the user, user-given descriptions are not specific enough, etc.). If rules in this table are triggered, a series of hard-coded questions are generated and displayed to the user, either asking for more information or for a rephrase of the input statement. See below:

Assuming none of the edge-case rules are hit, the NLTK library is then used to scan the parts of speech in the user input phrases. The keywords, subjects, and objects are parsed from the input phrases, and queries are run to our knowledgebase to retrieve related concepts and actions.

For our knowledgebase, we use ConceptNet, which is an open-source ontology with an external API, allowing us to query for keywords from our users' inputs. The result of the query is a list of related concepts and their meanings, which then allow us to formulate meaningful responses to the users' inputs in the form of our own questions.

Below is an example of some sample questions that may be generated for a user-inputs containing keyword "nurses":

"You mentioned 'nurses', would you also like to include 'doctors' in your business model?"

"Often 'nurses' work with 'patients'. Are 'patients' also a part of your Customer Segment?"

"You mentioned 'training' as a value proposition for 'nurses'. What other key products or services could you provide for 'nurses'?"

Currently, the Errol redesign is still in progress. However, you can see the work that was done along with other students in Georgia Tech's Design and Intelligence Lab advised by Professor Ashok Goel.

You can also visit the whitepaper published in 2020 regarding the team's progress here: Paper link

Stay tuned for more updates in the near future!