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 User Guide covers running evaluations, monitoring, viewing trajectories, and measuring safety and usefulness.
- Building settings and tasks: start with the Hands-On Guide, then the User Guide 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:
- the
ct run,ct runs,ct settings,ct protocols,ct liveandct logincommands, as the CLI reference lists them; - the Python API this documentation describes, including the Python reference;
- the eval log format;
- the env API setting packages build on (
ct-setting-sdkand its wire protocol), versioned on its own: only an SDK major changes it incompatibly.
ct extras and the modules behind it, control_tower.extras and control_tower.datasets.importers, are not part of the stable API and can change or move in any release.
User Guide
Basics
| Page | Description |
|---|---|
| Quickstart | Fresh machine to running evals on public environments with an OpenRouter key |
| Hands-On Guide | Build a toy environment and run your first eval |
| Web Viewer | View uploaded trajectories and eval results |
Concepts
| Page | Description |
|---|---|
| AI Control Concepts | Understand the core framework |
| Core Concepts | Every object Control Tower works with, what it is in code, and where it is documented |
| Architecture at a Glance | See how settings, environments, tasks, samples, trajectories, and matches fit together |
| Control Tower and Inspect | Which behaviour comes from Inspect and is documented there |
Running
| 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 |
| Running Evals on Hawk | Submit evals to a shared Hawk cluster and view results |
| EC2 Fleet | Run evaluations on a fleet of EC2 workers |
| Simulated Sandbox | The no-Docker simulated sandbox backend |
Protocols and Monitors
| Page | Description |
|---|---|
| Protocols and Policies | How the red team's policy and the blue team's protocol are built and wired into an eval |
| Monitoring Trajectories | Score trajectories with action and trajectory monitors |
| Function Registry | Registering policies and protocols |
Analysis
| Page | Description |
|---|---|
| Trajectories | Understand trajectory files, IDs, conversion, upload, and download |
| Safety Curves | Usefulness, safety, audit budget and cost of a control eval |
Building Environments
| Page | Description |
|---|---|
| Development Setup | Get your local environment running |
| Live Development | Iterate on envs and tasks with ct live |
| Making Environments | Create evaluation environments |
| Environment Architecture | Settings, env discovery, and repo layout |
| Porting Settings | Bring an existing benchmark in as a setting |
| Internet Simulator | Simulated external services inside environments |
| Hawk Values Contract | The hand-authored hawk-values.yaml each env needs to run on Hawk |
| Adding a Dataset | Import an external monitoring dataset from Hugging Face or GitHub |
Tasks and Scorers
| Page | Description |
|---|---|
| Making Main Tasks | Define tasks for agents |
| Making Side Tasks | Design sabotage objectives |
| Side Task Failure Types | Classify side tasks as live or delayed |
| Making Scorers | Write task validators |
| Side-Task Scorer Patterns | Reusable scorer_utils helpers for side-task scorers |
| Auditing Environments | Environment quality audits via ct extras subcommands |
| Task Generation and Audit Commands | The ct extras commands that generate tasks and audit environments, tasks, and trajectories |
Sabotage Trajectories
| Page | Description |
|---|---|
| Making Sabotage Trajectories | Hand-craft sabotage trajectories (strajs) that accomplish a side task while evading the monitor |
| Sabotage Trajectory Review | The @straj-review bot for sabotage trajectory (straj) pull requests |
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 |
Data and Glossary
| Page | Description |
|---|---|
| Database | MongoDB collections and access |
| Glossary | Abbreviations and project terms used across the documentation |
Project Structure
| Directory | Purpose |
|---|---|
src/control_tower/environments/ | Environment infrastructure (settings, the env registry, env processes, the internet simulator) |
packages/ct-setting-sdk/ | The setting SDK setting packages build on (tasks, scorer utils, the env process server) |
.settings/ | Cloned environment repos (gitignored, populated via ct settings pull) |
src/control_tower/trajectories/ | Trajectory format handling |
src/control_tower/viewer/ | Client for the viewer's HTTP API (packages/viewer/ is the viewer app) |
src/control_tower/extras/ | Tooling behind ct extras |
src/control_tower/eval/ | The eval engine and the ct run eval and ct run monitor runners |
src/control_tower/protocols/ | The built-in blue-team protocols |
src/control_tower/policies/ | The built-in red-team policies |
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 |