Engineering non-trivial open multi-agent systems is achallenging task. Our research focusses on situated multiagentsystems, i.e. systems in which agents are explicitlyplaced in a context – an environment – which agents canperceive and in which they can act. Two concerns are essentialin developing such open systems. First, the agentsmust be adaptive in order to exhibit suitable behavior inchanging circumstances of the system: new agents may jointhe system, others may leave, the environment may change,e.g. its topology or its characteristics such as throughputand visibility. A well-known family of agent architecturesfor adaptive behavior are free-flow architectures. However,building a free-flow architecture based on an analysis of theproblem domain is a quasi-impossible job for non-trivialagents. Second, multi-agent systems developers as softwareengineers require suitable abstractions for describing andstructuring agent behavior. The abstraction of a role obviouslyis essential in this respect. Earlier, we proposed statechartsas a formalism to describe roles. Although this allowsapplication developers to describe roles comfortably,the formalism supports rigid behavior only, and hampersadaptive behavior in changing environments.In this paper we describe how a synergy can be reachedbetween free-flow architectures and statechart models in orderto combine the best of both worlds: adaptivity and suitableabstractions. We illustrate the result through a casestudy on controlling a collection of automated guided vehicles(AGVs), which is the subject of an industrial project.