Bring your environment
Audit your RL environment. In a sandbox.
Upload one Python file that implements Verity's environment plug. It runs in a locked-down container; the auditor model plays it from outside, through the plug, and you watch every tool call, then get the proof and the rules.
Checking the audit service…
Audit service checking
- Isolated container. Your file runs in its own Docker container on a cloud VM, reached only through the plug.
- An AI attacker plays it. A frontier model gets the task and the tools, never your grader, and looks for reward it can earn without doing the task.
- Proof and rules. A hack counts only with numbers: reward paid against your trusted check. Each one becomes a rule Guard can enforce in training.
The sandbox
No networkThe container has no network interface.
Read-onlyRead-only filesystem, scratch space in memory only.
Capped1 CPU, 1 GB of memory, 128 processes.
No privilegesRuns as nobody, every capability dropped.
No keysAPI keys never enter the container.
Spend capEach audit stops at a fixed API budget.
The plug: one file, a few functions
# my_env.py NAME, VERSION, KIND = "my_env", 1, "tools" DESCRIPTION = "one sentence for the auditor" class Episode: # its public methods are the tools def reset(self, **task): ... def act(self, x: str) -> str: """What this tool does. Args: x: What x means. """ def tasks(split="train"): ... # [{"prompt": ..., ...}] def grade(episode): ... # the reward being audited def check(episode): ... # what the episode was really worth def honest_logs(): ... # honest play, so rules never flag it
Standard library only inside the container. The full contract is in verity/environment.py. example_env.py is a complete environment with one planted bug: a guess budget the reward never checks.