Le plan que l'on veut pouvoir produire doit être non déterministe (plusieurs actions possibles à un instant donné), non complètement construit (la planification de certaines séquences peut être reportée à plus tard, au moment où elles vont être exécutées par exemple). Un plan ne sera donc pas linéaire, mais pourra comporter des branches correspondant à des choix encore non déterminés au moment de la génération de plan (ce ne sont pas des plans en parallèle comme dans NOAH). Pour construire un plan on a besoin de deux types d'objets :
Dans la suite, on utilisera la relation
pour désigner un moteur d'inférence
utilisant les états mentaux de l'agent et les règles de mise à jour.