Control Tower Documentation
Control Tower is an AI control evaluation framework for measuring the effectiveness of safety protocols when deploying potentially misaligned AI agents. It provides realistic software environments where AI agents complete tasks while safety protocols monitor for malicious behavior, and models AI control as a game between a Blue Team (maximizing usefulness and safety) and a Red Team (attempting to subvert safety measures).
Where to start
- Running evaluations on existing settings: start with the Quickstart, then the Guide tab covers running evaluations, monitoring, viewing trajectories, and measuring safety and usefulness.
- Building settings and tasks: start with the Hands-On Guide, then the Build tab covers environments, porting a benchmark, main tasks, side tasks, scorers, sabotage trajectories, and protocols.
Both paths use the objects defined in Core Concepts; the Glossary spells out every abbreviation. To change Control Tower itself, see CONTRIBUTING.md.
Stability
From v6.0.0, only a major release makes a breaking change, and a breaking change is a change to the stable API:
ct extras and the modules behind it, control_tower.ct_runs apart from the eval runner (ai_eval and monitor) and control_tower.datasets.importers, are not part of the stable API and can change or move in any release.
Guide
Getting Started
| Page | Description |
|---|
| Quickstart | Fresh machine to running evals on public environments with an OpenRouter key |
| Running Evals on Hawk | Submit evals to a shared Hawk cluster and view results |
Running Evaluations
| Page | Description |
|---|
| Running Evaluations | Run evaluations with policies, task selection, batching, and replay |
| Control Evals | Run an honest policy and an attack policy under one protocol, in one eval log |
Monitoring
Viewing Trajectories
| Page | Description |
|---|
| Trajectories | Understand trajectory files, IDs, conversion, upload, and download |
| Web Viewer | View uploaded trajectories and eval results |
Measuring Safety and Usefulness
| Page | Description |
|---|
| Safety Curves | Usefulness, safety, audit budget and cost of a control eval |
Concepts
Concepts and Terms
Build
Start Building
Settings and Environments
Tasks and Scorers
Sabotage Trajectories
Datasets
| Page | Description |
|---|
| Adding a Dataset | Import an external monitoring dataset from Hugging Face or GitHub |
Policies, Protocols, and Monitors
Reference
Command Line, Python, and HTTP
| Page | Description |
|---|
| CLI Reference | Generated reference for every Control Tower command and option. |
| Python Reference | Generated reference for the registries Control Tower is extended through. |
| HTTP API | Viewer routes, wire conventions, auth, and self-hosting |
Infrastructure
Sandboxes and Storage
Project Structure
| Directory | Purpose |
|---|
src/control_tower/environments/ | Environment infrastructure (settings, scorer utils, config) |
.settings/ | Cloned environment repos (gitignored, populated via ct settings pull) |
src/control_tower/trajectories/ | Trajectory format handling |
src/control_tower/ct_runs/ | Orchestration and evaluation logic |
src/control_tower/protocols/ | Protocol definitions |
src/control_tower/metrics/ | The audit scorer and the usefulness, safety, audit budget and cost metrics |
docs/ | This documentation |
tests/ | Test suite |
apps/docs/ | Docs and environment reference site |