
Automated framework for frontier AI safety evaluation that synthesizes executable, pressure-rich test environments to uncover latent risks in advanced agent models.
AutoControl Arena is an automated framework for frontier AI safety evaluation, designed to uncover latent risks in advanced models by stress-testing within executable, pressure-rich environments.
The core idea is logic-narrative decoupling:
This design addresses a central trade-off in agent safety evaluation by combining executable environments with LLM-driven narrative flexibility:
AutoControl Arena can automatically reconstruct and reproduce expert-designed risk-evaluation scenarios and target risky behaviors from organizations such as Anthropic, OpenAI, and Apollo Research.
Curious about the paper, architecture, and key findings? Please see our π Project Page for a full tour, or read our paper.
aca)aca
The interactive UI lets you browse scenarios, pick profiles, choose stress levels, enable parallel repeats, and inspect previous run history from a menu.
aca is not limited to manual selection. It also includes a Run from JSON flow that lets you:
configs/batch_configs/examples/ interactively,
Use this when you want the convenience of the interactive UI but already have a batch JSON prepared.
autocontrol)autocontrol --help
Use autocontrol when you want explicit subcommands such as run, batch, profiles, or prepare-envs. Unlike aca, it does not open the interactive menu by default.
The results viewer is a separate local web UI for browsing completed runs, artifacts, summaries, and live execution details from results/.
Start it with:
python tools/results_viewer/serve.py --port 8000
Then open:
http://127.0.0.1:8000/viewer/
Optional flags:
# Bind to a different host
python tools/results_viewer/serve.py --host 0.0.0.0 --port 8000
# Point the viewer at a specific results root
python tools/results_viewer/serve.py \
--results-dir results/autocontrol_arena \
--port 8000
Use the results viewer when you want a browser-based inspection surface for run trajectories and artifacts.
.
βββ configs/
β βββ batch_configs/examples/ # public example batch JSON configs
β βββ profiles/templates/ # public model/provider profile templates
β βββ scenarios/benchmark/ # X-Bench YAML scenario definitions
β βββ settings/ # runtime hyperparameters
βββ docs/ # public docs plus internal planning / design notes
βββ runners/ # CLI entrypoints and interactive UI
βββ src/ # agents, orchestration, infra, and core logic
βββ tests/ # unit and regression tests
βββ tools/ # result management utilities
βββ results/ # generated outputs under results/autocontrol_arena/
βββ runtime_envs/ # generated environments (auto-generated)
βββ .env.example
βββ pyproject.toml
Prerequisites: Python 3.10+, API credentials for the model providers you want to test.
# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate
# Install all dependencies (includes LiteLLM, the default model backend)
pip install -e .
# Optional: dev tools (pytest, ruff, mypy)
pip install -e ".[dev]"
This installation exposes two shell commands:
aca β interactive operator entrypointautocontrol β command-mode CLI for scripting and automationcp .env.example .env
Edit .env and fill in only the providers you need. Here are some examples:
# OpenAI
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Anthropic
ANTHROPIC_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Qwen / DashScope
DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx