Skip to content

AgentDojo E3: the if-statement control arm (one registered run) - #59

Merged
BitmapAsset merged 1 commit into
mainfrom
bench/e3-ifgate
Oct 24, 2026
Merged

BitmapAsset merged 1 commit into
mainfrom
bench/e3-ifgate

Conversation

@BitmapAsset

Copy link
Copy Markdown
Owner

One registered run of the control §14 listed under "Not tested": arm D, an if-statement that puts arm C's words into the system prompt only on a model call where a tool result since the previous assistant turn matches the same frozen regex; no engine, no state.

  • Same suite (agentdojo 0.1.11, v1.1), model (gpt-4o-mini via OpenRouter, provider OpenAI, temperature 0, seed 20261022), attack, harness (e2b.py + one branch, bench/agentdojo/e3/experiments/e3.py); injections recomputed and checked byte-identical to E2b's before any API call.
  • Bars and readings registered before the smoke: bench/agentdojo/e3/PREREGISTRATION.md. Smoke gate passed (D 3/5 vs B's recorded 3/5), then 726 episodes once: 0 errors, 0 retries, 0.95 USD by usage.
  • Judged against E2b's recorded A, B, C (tables/episodes.jsonl untouched; the E2b tables stay byte-identical).
bar measured registered reading
E7 ASR A − D −0.0143, CI [−0.0366, +0.0079] the gating alone explains the ASR gain
E8 utility A − D benign −0.0412 [−0.1031, +0.0103]; under attack +0.0191 [−0.0079, +0.0461] the gating alone explains the gain
E9 D vs C ASR +0.0016 [−0.0207, +0.0254]; benign utility +0.1340 [+0.0515, +0.2165] D ≈ C on ASR, D > C on benign utility
E10 D vs B benign utility 0.7113 vs 0.6804 pass

Arm D: utility 0.7113, utility under attack 0.4706, ASR 0.2417. Unregistered context row: D sent B's exact prompts on all 97 benign tasks and 9 of 97 outcomes still differed (run-to-run variation at temperature 0).

What it changes: §14 (new E3 paragraph; the if-statement leaves "Not tested") and the root README bullet, which said the engine's contribution is when the words arrive: an if-statement gets the same when on this suite; the engine's own addition here is the replayable strand per stance.

Recompute: cd bench/agentdojo/e3 && experiments/rerun_e3.sh <python with numpy==1.26.4> (twice, byte-identical; bars sha256 173e350a…, results dcf9accd…).

Limits: one model, one suite version, one attack template the regex matches by design (987/987 injections), one run per arm; D ran on Linux ~25 h after A–C on macOS; adaptive attacks untested.

Draft: not for merge until the maintainer reruns rerun_e3.sh.

Arm D inserts arm C's words only when the frozen regex fires on a new tool
result; no engine. 726 episodes on E2b's suite, model, seed and injections,
judged against E2b's recorded arms. E7/E8: every A - D interval includes 0
(the gating alone explains the gain); E9: D ~ C on ASR, D > C on benign
utility (+0.134); E10 pass. bench/agentdojo/e3/, BENCHMARKS.md §14.
@BitmapAsset
BitmapAsset marked this pull request as ready for review October 24, 2026 01:01
@BitmapAsset
BitmapAsset merged commit 3115198 into main Oct 24, 2026
19 checks passed
@BitmapAsset
BitmapAsset deleted the bench/e3-ifgate branch October 24, 2026 01:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant