In this paper we briefly describe a software architecture that integrates reactivity and dehberation. The architecture has three levels, or tiers. The bottom tier contains a set of situated, reactive skills. The second tier is a sequencer that can activate sets of skills to perform a task. The third tier is a planner that reasons in-depth about goals, resources and constraints. We characterize this architecture across several dimensions and then describe the lessons that we have learned from applying this architecture to several robotics projects.