This paper presents a model for adaptive agents. The model describes the behavior of an agent as a graph of roles, in short a behavior graph. Links between roles provide conditions that determine whether the agent can switch roles. The behavior graph is assigned at design time, however adaptive role selection takes place at runtime. Adaptivity is achieved through factors in the links of the behavior graph. A factor models a property of the agent or its perceived environment. When an agent can switch roles via different links, the factors determine the role the agent will switch to. By analyzing the effects of its performed actions the agent is able to adjust the value of specific factors, adapting the selection of roles in line with the changing circumstances. Models for adaptive agents typically describe how an agent dynamically selects a behavior (or action) based on the calculation of a probability value as a function of the observed state for each individual behavior (or action)...