I am working on designing a LLM chatbot that guides users through a series of structured activities, where each activity is divided into multiple stages. For example, an activity might start with an initial check-in, followed by stages where the user identifies key issues, and then works through possible solutions or reflections. The chatbot is designed to track the user’s progress through these stages and ensure they remain on course.
Currently, I have implemented the following design:
-
State Management: I’m using an state management system that tracks the user’s current stage in the activity. Each stage has a unique identifier, and the system progresses through stages based on user input
-
Static Prompting: The system uses predefined prompts at each stage, and the transitions between stages based on the user input. For each we have a PROMPT(analyzer) that check if the user input is good enough to move to next state and if not we remain on the state and LLM is asked to generate response based on a FOLLOW UP PROMPT. If the analyzer Prompt decides to move to next stage then session is updated with new stage identifier and PROMPT for that is used to respond back to user.
This seems to be working with my basic testing but I am not sure this is a good design and what alternatives we have.
One issue is I am having to many PROMPTS and its getting challenging to manage them.
I would appreciate if I can get guidance on how to approach the design.