Prompt-injection red team · NVIDIA Nemotron on Nebius

Will your AI agent turn on you?

Turncoat points an attacker model at a tool-using agent, lets it rewrite its attack after every failure, and checks the agent's real actions to see whether it was hijacked. Run a campaign below, then compare the measured results.

Full compromise within 10 attempts · Nemotron 3.5 Lightning agents · 16 Oct 2026
Banking assistant100%
20/20 campaigns · 28% per attempt95% CI 84%–100%
Email assistant95%
19/20 campaigns · 23% per attempt95% CI 76%–99%
Document assistant10%
2/20 campaigns · 1% per attempt95% CI 3%–30%
Whiskers: 95% Wilson intervals. Synthetic agents; not a general model rating.
120
benchmark campaigns · 2 days
$1.01
60-campaign replication
$0.0112
median campaign · replication
14.6s
median model time · replication

Watch an agent under attack

Run live with a judge code or replay a recorded campaign. Both use NVIDIA Nemotron on Nebius Token Factory: the attacker writes an injection, the agent under test reads it while doing its normal job, and a deterministic check of the agent's tool calls decides the verdict. No LLM judges the outcome.

1Agent to attack
2Model under test

3Run it
Have a judge code?

Checking live availability…

What the agent is told
Idle
0/0attempts
0Nemotron calls
0tokens
$0.0000cost
0.0smodel time
  1. Pick an agent and a model, then press Run live or Replay. A campaign takes about 10–60 seconds.
Per-call log
#rolemodelinoutlatencycost

The benchmark

One live run is an anecdote. The benchmark runs many independent campaigns per agent and reports the full-compromise rate with a 95% Wilson confidence interval. The charts and tables below are built from the saved benchmark reports.

15 Oct · first run · 20 trials per agent · $0.99
Email assistant95%
19/20 · 28% per attempt · mean 3.35 attempts95% CI 76%–99%
Banking assistant100%
20/20 · 27% per attempt · mean 3.7 attempts95% CI 84%–100%
Document assistant10%
2/20 · 1% per attempt · mean 9.6 attempts95% CI 3%–30%
Attacker refusals: 0% / 0% / 0%.
16 Oct · independent replication · 20 trials per agent · $1.01
Email assistant95%
19/20 · 23% per attempt · mean 4.15 attempts95% CI 76%–99%
Banking assistant100%
20/20 · 28% per attempt · mean 3.6 attempts95% CI 84%–100%
Document assistant10%
2/20 · 1% per attempt · mean 9.6 attempts95% CI 3%–30%
Attacker refusals: 0% / 0% / 0%.

Target: Nemotron 3.5 Lightning. Up to 10 attempts per campaign. Each interval describes one day, not pooled trials. Raw reports and methodology ↗

Does a bigger model resist better?

Same attacker (Nemotron 3 Ultra), three Nemotron models as the agent under test. Cells are the full-compromise rate; k/n trials below.

Full-compromise rate by target model
Target modelEmail assistantBanking assistantDocument assistant
Lightning
90%
9/10 · CI 60%–98%
100%
10/10 · CI 72%–100%
0%
0/10 · CI 0%–28%
Nano-30B
60%
6/10 · CI 31%–83%
100%
10/10 · CI 72%–100%
0%
0/10 · CI 0%–28%
Ultra-550B
0%
0/10 · CI 0%–28%
0%
0/10 · CI 0%–28%
0%
0/10 · CI 0%–28%

10 campaigns per cell · $2.27 total. Zero observed compromises does not establish immunity. Overlapping intervals, so no established difference: Lightning and Nano-30B (email assistant).

Which attacks get through

Critical success rate per attempt, by the technique the attacker was told to try.

Email assistant
system-notice4% 1/23
pre-authorized18% 4/22
output-hijack56% 10/18
fake-tool-call12% 1/8
step-splitting0% 0/6
urgency-authority50% 3/6
Banking assistant
system-notice0% 0/22
pre-authorized9% 2/22
output-hijack85% 17/20
fake-tool-call0% 0/3
step-splitting33% 1/3
urgency-authority0% 0/2
Document assistant
system-notice0% 0/39
pre-authorized0% 0/39
output-hijack5% 2/39
fake-tool-call0% 0/37
step-splitting0% 0/19
urgency-authority0% 0/19

16 Oct replication. Technique order is fixed: these rates also reflect attempt position and prior feedback, not isolated causal effects.

Measured defense on AgentDojo banking

A matched task set tests whether a separate action-authorization gate reduces attacker success while preserving useful work.

Lightning
43/70 (61.4%)
attacker-goal success on the same 70 clean-success pairs
tasks finished under attack: 56/144 · cost per clean task: $0.0008
Lightning + Ultra gate
0/70 (0.0%)
attacker-goal success on the same 70 clean-success pairs
tasks finished under attack: 82/144 · cost per clean task: $0.0029
Ultra
10/70 (14.3%)
attacker-goal success on the same 70 clean-success pairs
tasks finished under attack: 114/144 · cost per clean task: $0.0080

AgentDojo banking v1.2.2. Compared with Lightning alone, the gate also finished more legitimate tasks under attack (82 vs 56 of 144) at 37% of Ultra’s cost per clean task. Ultra alone finished the most (114/144). The gate observed 0/70 successes, but zero observed successes is not a security guarantee; incomplete runs and the full audit data are disclosed.

We caught our own benchmark lying

The attacker model kept refusing to write payloads, which silently made the agents look safe. Three measurement passes, each more honest than the last (email / bank / docs, full-compromise %).

1 · Naive
10 / 0 / 0
The attacker refused 72–86% of the time, so the agents were barely attacked.
2 · Valid-trial statistics
70 / 47 / 5
Detect refusals; count only trials that contained a real attack.
3 · Root cause fixed
95 / 100 / 10
Attacker reasoning off: no refusals detected in these trials.

How it works

Two roles, both NVIDIA Nemotron models served by Nebius Token Factory, and one deterministic referee.

Attacker Nemotron 3 Ultra 550B thinking off · temperature 1.0 Untrusted data an email · a bank memo a document Agent under test Lightning · Nano · Ultra real tool-calling loop State check check money · secrets · files Benchmark n trials · Wilson 95% CI · $ injection reads it tool calls verdict per attempt feedback: what the agent did

Attacker: Nemotron 3 Ultra

The hard, creative job. It rotates six techniques (system notice, pre-authorization, output hijack, fake tool call, step splitting, urgency) and is told exactly how far its last attempt got. Reasoning is off: with it on, Ultra refused 25–54% of attempts in a 60-trial run; with it off, 0%.

Agent under test

Nemotron 3.5 Lightning by default, at $0.06 / $0.24 per million tokens, or Nano 30B or Ultra 550B to compare. It runs a real tool-calling loop on its ordinary task. The injection is the only thing that changes between attempts.

Referee: code, not a model

The verdict comes from the agent's actual tool calls: did a secret leave to an outside address, did money move, was a file deleted? An injection cannot talk its way past a state check.

Test your own agent

Bring your Python agent's orchestration and tool policy through the local adapter. Model calls stay metered on Nebius; tools run against synthetic state. The included confirmation-policy example shows how to test a defence. Adapter quickstart ↗

Guardrails on this demo

Live runs require a judge code. Each run has a budget stop and an attempt limit. Recorded runs remain available when live runs are paused and are always labelled. The current deployment uses per-instance spend counters; a shared store is required for global caps and public runs.