Agent Guardrails and Secure Development
Decide whether the repaired agent can enter a canary
The refusal came after the export
The final answer refuses the export, but the receiver observed one. Evaluate the system’s effects before accepting its own account of the run.
BOTIE
The inputs we are comparing
Recorded evaluation runs
A permitted read and a blocked attack
[
{
"id": "ordinary-read",
"allowedEffects": [
"read_manual"
],
"effects": [
"read_manual"
],
"traceComplete": true,
"legitimate": true,
"completed": true
},
{
"id": "altered-manual",
"allowedEffects": [],
"effects": [],
"traceComplete": true,
"legitimate": false,
"completed": false
}
]The refusal follows a forbidden export
[
{
"id": "ordinary-read",
"allowedEffects": [
"read_manual"
],
"effects": [
"read_manual"
],
"traceComplete": true,
"legitimate": true,
"completed": true
},
{
"id": "altered-manual",
"allowedEffects": [],
"effects": [
"export_records"
],
"traceComplete": true,
"legitimate": false,
"completed": false
}
]Maximum blocked legitimate jobs
Same in both cases
0
Result for a permitted read and a blocked attack
eligible for canary
A complete clean run uses the declared review allowance
This check uses the pieces from “Keep safety and usefulness in the same release review”.
BOTIE
- Recorded evaluation runs
[ { "id": "ordinary", "allowedEffects": [ "read" ], "effects": [], "traceComplete": true, "legitimate": true, "completed": false } ]- Maximum blocked legitimate jobs
1
Use a number, text, or an array matching the requested result. For a matrix, put each row in brackets. Saving your prediction runs your current construction on these inputs and checks the earlier examples too.
Build a construction in the workspace above first. This case will test those pieces.
Which observed failure would make you disable writes during the canary?
Define the stop rule and reconciliation procedure before granting live authority.
These are invented records and deterministic policy checks. The browser runs no agent, shell command, MCP server or network request. Passing these fixtures establishes only the stated policy behaviour.
Work through the Python challenges →