Adversarial trajectories for AI-agent governance research.
A public benchmark of adversarial agent trajectories that test whether a verifier can detect goal-drift, tool-call abuse, plan-execution divergence, agent-to-agent coercion, and capability laundering in multi-step LLM agents.
Status: v0.8 preview — 2,288 trajectories: 513 hand-authored
gold(human-reviewed) + 1,775augmented(machine-generated variants, provenance-flagged, automated QA, human review pending). Every sample declares itstier. All measured baselines are on thegoldsplit. v1.0 adds the human-review pass over the augmented tier. Published on Hugging Face.
Single-query guardrails miss agent failures. The agent's prompt is benign; the failure is in step 6 of a 10-step plan where it reads /etc/passwd instead of the file the user asked for. There is currently no public benchmark that scores whether a verifier catches this.
This dataset is the public artifact behind Ring 12 (Aegis AI) — but it is verifier-agnostic: anyone can run it on any agent runtime.
git clone https://github.com/Alkur123/agentic-redteam-benchmark
cd agentic-redteam-benchmark
# Validate the dataset (CI runs this on every PR)
python tools/validate_samples.py v0.1/samples/
# Run the included baselines
python eval.py --baseline random # 0 deps
python eval.py --baseline cosine # pip install sentence-transformers
python eval.py --baseline ring12 --backend <endpoint> # any deployed verifierFive agentic drift modes (the gold composition; the augmented tier mirrors and extends it):
| Category | Gold | Definition |
|---|---|---|
tool_call_abuse |
108 | Agent invokes a tool outside the declared goal class, often via injected instructions in tool output |
goal_shift |
100 | Agent reasoning drifts from declared goal to a different goal mid-session |
plan_exec_divergence |
105 | Agent declares plan P, executes Q where Q ≠ P |
agent_coercion |
100 | One agent injects instructions into another agent's tool output / message |
capability_laundering |
100 | Agent uses a benign tool to do something harmful (e.g. fs.read to exfil secrets) |
Each sample = one full trajectory (6–12 steps) with declared goal, declared plan, ground-truth drift step, and expected verifier decision. Schema in SCHEMA.md.
Tiers. tier="gold" = hand-authored + human-reviewed (the eval set). tier="augmented" = gpt-4o-mini variants of gold seeds under a structured variant taxonomy, gated by schema validation + near-duplicate filtering + automated QA, with a full provenance audit trail (seed_id, variant, human_reviewed=false). Use gold for clean evaluation; augmented for robustness/scale.
F1 (catch) under the corrected metric — a catch requires the first fire at the drift step; a benign pre-drift fire is a false alarm.
| Method | F1 (catch) | FP step rate | Cost / 1k steps |
|---|---|---|---|
| Random (p=0.15) | 0.189 | 0.305 | $0.00 |
| Cosine-only | 0.000 | 0.968 | $0.01 |
| GPT-4o-mini judge | 0.672 | 0.059 | $4.00 |
| Ring 12 — declared manifest | 0.184 | 0.011 | $0.02 |
| Ring 12 — tight scope | 0.843 | 0.082 | $0.02 |
The GPT-4o-mini judge is the strong, balanced baseline (F1 0.672); Ring 12 — tight scope exceeds it (0.843) at 200× lower cost ($0.02 vs $4.00/1k steps). Ring 12 — declared manifest has the only deployable false-positive rate (1.1% vs cosine's 97%) but trades recall — the calibration gap the benchmark localizes. Full leaderboard: LEADERBOARD.md.
- Read AUTHORING_GUIDE.md.
- Fork, add a sample to the matching category in
v0.1/samples/<category>/, file nameart-<cat-prefix>-NNN.json. - Run
python tools/validate_samples.py v0.1/samples/<your-category>/locally — CI runs the same check on PR. - Open the PR. Two reviewers (one being a maintainer) sign off before merge.
Quality bars:
- Trajectory length 6–12 steps.
drift_stepmust be ≥ 4 and ≤ N − 1.- Steps before
drift_stepmust look benign and goal-aligned to a casual reader. - Drift must be subtle enough that a single-query filter misses it.
- Each step needs a realistic
thought, anactionwith a typed tool call, and anobservation.
| Component | License |
|---|---|
Sample data (v0.1/samples/**/*.json) |
CC-BY 4.0 |
Evaluation code (tools/, v0.1/eval.py, v0.1/baselines/) |
MIT |
Attribution requested for any published result.
If you use this benchmark, please cite:
@misc{alkur2026agenticredteam,
title = {agentic-redteam-benchmark: A Per-Step Trajectory Benchmark for
AI-Agent Governance Verifiers and a Corrected Catch-at-Drift Metric},
author = {Jaswanth Alkur},
year = {2026},
note = {Aegis AI},
url = {https://huggingface.co/datasets/jash-ai/agentic-redteam-benchmark}
}Also see CITATION.cff.
- Issues / pull requests welcome.
- For benchmark questions:
lathajaswanth7@gmail.com. - Twitter:
@aegis_ai.