What the user wants, and what you need to know
Task-oriented bots, the kind built to help a user accomplish something specific like booking a flight or checking an order, are classically structured around two ideas: intent recognition and slot filling. Intent recognition identifies what the user is actually trying to do, classifying their message into a category like book_flight or check_order_status. Once the intent is known, the system knows which pieces of information, called slots, it needs to gather to fulfill that request. For book_flight, that might be origin, destination, date, and number of passengers.
The system's job after recognizing intent is to check which required slots are already filled, whether from this message or earlier in the conversation, and prompt the user only for whatever is still missing. If a user opens with 'book me a flight to Denver next Friday,' a well-built slot-filling system should recognize that destination and date are already provided and only ask for the missing origin, rather than restarting the whole conversation with a generic 'where would you like to fly from, to, and when.'
