Our goal is to give an Autonomous Underwater Vehicle the ability to autonomously detect and mitigate problems while simultaneously simplifying mission configuration. We will do so by creating a set of tools for abstracting vehicle performance, and using that framework with an onboard simulator to detect, diagnose, and mitigate failures.