We describe a software development approach for vision that enhances robustness by making novel use of context. Conventional approaches to most image understanding problems suffer from fragility when applied to natural environments. Complexity in Intelligent Systems can be managed by breaking the world into manageable contexts. GRAVA supports robust performance by treating changes in the program’s environment as context changes. Automatically tracking changes in the environment and making corresponding changes in the running program allows the program to operate robustly. We describe the software architecture and explain how it achieves robustness. GRAVA is a reflective architecture that supports self-adaptation and has been successfully applied to a number of visual interpretation domains. This paper describes the protocols and the interpreter for GRAVA.