The architecture of an interactive storytelling system has three component parts: a drama manager, a user model, and an agent model. The drama manager is responsible for guiding the narrative by searching and executing story "beats" in a coherent sequence, refining story events by providing new information and reconciling contradictory plots, and collaborating with the agent model to choose the best narrative actions for the characters. It monitors a number of overview variables in the storyworld to make the best decision for the narrative, defined by the goals of the author: a measure of worldwide conflict would help to increase or decrease dramatic tension, while measures of relationships and likability could guide a story towards a romantic storyline. The agent model collects information about the story world and characters and generates possible actions in response for each non-player character in the story. Possible actions are drawn from the personality and emotional model of the character, allowing each one to exhibit autonomous behavior with intelligent dramatic goals. Finally, the user model keeps track of player choices and inputs, such that the drama manager and agent model can cooperate with the way the user attempts to play rather than challenging or misunderstanding their decisions.