Control Tower Documentation

Control Tower is an AI control evaluation framework for measuring the effectiveness of safety protocols when deploying potentially misaligned AI agents.

What is Control Tower?

Control Tower provides realistic software environments where AI agents complete tasks while safety protocols monitor for malicious behavior. It models AI control as a game between a Blue Team (maximizing usefulness and safety) and a Red Team (attempting to subvert safety measures).

Getting Started

GuideDescription
QuickstartFresh machine to running evals on public environments with an OpenRouter key
Hands-On GuideBuild a toy environment and run your first eval
Running Evals on HawkSubmit evals to a shared Hawk cluster and view results
Development SetupGet your local environment running

Concepts

GuideDescription
Architecture at a GlanceSee how settings, environments, tasks, samples, trajectories, and matches fit together
AI Control ConceptsUnderstand the core framework
Control Tower and InspectWhich behaviour comes from Inspect and is documented there
Safety CurvesCompute safety + usefulness via ct game-metrics metrics
ROC CurvesMonitor discrimination plots from ct game-metrics graph roc
Pareto Frontier(Safety, usefulness) Pareto plots from ct game-metrics graph pareto

Guides

GuideDescription
Running EvaluationsRun evaluations with policies, task selection, batching, and replay
Monitoring TrajectoriesScore trajectories with action and trajectory monitors
Sabotage Eval PipelineRun the end-to-end honest, attack, monitor, and safety pipeline
ProtocolsHow agents are built and blue-team control logic is applied
TrajectoriesUnderstand trajectory files, IDs, conversion, upload, and download
Web ViewerView uploaded trajectories and eval results
Inspect Logs ViewerInspect .eval logs locally
DocentRun Docent locally and manage collections
Auditing EnvironmentsEnvironment quality audits via ct run subcommands
Run ScriptsReference for the ct run <script> analysis and audit commands

Reference

GuideDescription
CLI ReferenceGenerated reference for every Control Tower command and option.
Python ReferenceGenerated reference for the registries Control Tower is extended through.

Development

GuideDescription
CLI DevelopmentConventions for adding ct commands
Live DevelopmentIterate on envs and tasks with ct live
Making EnvironmentsCreate evaluation environments
Environment ArchitectureSettings, env discovery, and repo layout
Porting SettingsBring an existing benchmark in as a setting
Making Main TasksDefine tasks for agents
Making Side TasksDesign sabotage objectives
Making ScorersWrite task validators
Side-Task Scorer PatternsReusable scorer_utils helpers for side-task scorers
Failure TypesClassify side tasks as live or delayed
Making StrajsHand-craft sabotage trajectories
Straj Review WorkflowThe @straj-review bot for straj PRs
Strategy DevelopmentDesign strategy guides for the strategy-attack policy
Internet SimulatorSimulated external services inside environments
Hawk Values ContractThe hand-authored hawk-values.yaml each env needs to run on Hawk
Function RegistryRegistering monitors and policies
PR ConventionsContributing guidelines
Development and Release ProcessHow changes reach main and how releases are cut

Infrastructure

GuideDescription
DatabaseMongoDB collections and access
EC2 SandboxRun sandboxes on EC2 instead of local Docker
Simulated SandboxThe no-Docker simulated sandbox backend
HTTP APIViewer routes, wire conventions, auth, and self-hosting

Project Structure

DirectoryPurpose
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/Safety, usefulness, ROC, Pareto, and plotting helpers for ct game-metrics
docs/This documentation
tests/Test suite
apps/docs/Docs and environment reference site