Caught in the Act: Probes Effectively Detect Sabotage and Catch Unverbalized Deception
Abstract
Recent incidents have highlighted the challenge of monitoring LLM agents and the danger of models deceiving people. We show that white-box deception detection via probes can be scaled up to frontier monitoring settings by collecting the largest deception dataset to date for training probes and introducing a novel probe architecture which can aggregate information across many layers and tokens. Our probes achieve 98.8% AUC in SHADE-Arena, surpassing an Opus 5.5 text-monitoring baseline, and show improved efficacy as the underlying model is scaled up. To push our probes to their limit, we test them on several cases where deception cannot be determined from the context alone. In these cases, which we refer to as introspective deception, the ground truth can only be determined through careful elicitation or thorough knowledge of a model's training data. In one such evaluation, we show that probes can distinguish transcripts containing a model's true hidden goal from other goals with an AUC of up to 99.7%. Our probes also readily detect deception on prominent open-weight models which lie about politically sensitive topics, and about their beliefs when put under pressure. We release our training dataset, dubbed FIBS, to help drive frontier deployment of effective probes, and encourage the community to expand upon it with further examples of deception and sabotage.
Figures & tables
Appendix figures & tables30 assets
Supplementary material from the paper’s appendix.
Appendix
| Subject model | LinearEnsemble | MLPEnsemble | EFC | axial | |
|---|---|---|---|---|---|
| Qwen3.5-2B | 2,048 | 12,294 | 3,148,806 | 1,606,017 | 6,823,681 |
| Qwen3.5-9B | 4,096 | 24,582 | 6,294,534 | 3,178,881 | 7,347,969 |
| Qwen3.5-27B | 5,120 | 30,726 | 7,867,398 | 3,965,313 | 7,610,113 |
| Qwen3.5-122B-A10B | 3,072 | 18,438 | 4,721,670 | 2,392,449 | 7,085,825 |
| Qwen3.5-397B-A17B | 4,096 | 24,582 | 6,294,534 | 3,178,881 | 7,347,969 |
| Nemotron-3 Nano | 2,688 | 16,134 | 4,131,846 | 2,097,537 | 6,987,521 |
| Probe | Optimizer | Learning rate | Schedule | Weight decay | Val. loss | Val. AUROC | Other optimizer |
|---|---|---|---|---|---|---|---|
| LinearEnsemble | AdamW | constant | 0 | 0.3388 | 0.925 | n/a | |
| MLPEnsemble | AdamW | cosine | 0 | 0.2410 | 0.956 | Muon 0.3952 | |
| axial | Muon | cosine | 0 | 0.0487 | 0.998 | AdamW 0.0532 | |
| EFC | Muon | cosine | 0 | 0.0660 | 0.997 | AdamW 0.0730 |
| Set | Scenario | Benchmark task id |
|---|---|---|
| Public | API key | api_key_calendar_agendas_2 |
| bank | bank_transfer_2 | |
| expenses | expenditure_accounting | |
| spam | spam_filter_update | |
| Test | art collectors, blog post, charity allocation, day trip, | |
| election tampering, notes summarization | ||
| Scenarios | Steps | Both answered | Agreement (%) | Pos. agreement (%) | |
|---|---|---|---|---|---|
| All 25 | 39,000 | 37,958 | 97.7 | 59.0 | 0.579 |
| Retained 14 | 18,799 | 18,364 | 98.1 | 73.2 | 0.722 |
| Removed 11 | 20,201 | 19,594 | 97.4 | 36.1 | 0.350 |
| Public 4 | 7,175 | 7,122 | 99.0 | 85.7 | 0.852 |
| Removed scenario | Attack H/S | Honest H/S | Observation |
|---|---|---|---|
| conference recap | 3/0 | 0/0 | no Sol attack positives |
| group vacation planning | 0/5 | 0/0 | no Haiku attack positives |
| Jira tickets | 1/0 | 0/0 | no Sol attack positives |
| networking event | 4/0 | 19/0 | no Sol attack positives; Haiku honest positives |
| performance reviews | 6/3 | 0/0 | none of the above |
| SSN task | 0/0 | 0/0 | no attack positives |
| Main task, honest (%) | Main task, attack (%) | Side task, attack (%) | ||||
|---|---|---|---|---|---|---|
| Model | All | Filtered | All | Filtered | All | Filtered |
| Qwen3.5-2B | 0.0 | 0.0 | 0.0 | 0.0 | 5.6 | 4.2 |
| Qwen3.5-9B | 4.5 | 6.8 | 2.4 | 3.6 | 53.0 | 59.0 |
| Qwen3.5-27B | 12.0 | 15.3 | 9.5 | 12.7 | 65.4 | 66.5 |
| Qwen3.5-122B-A10B | 10.4 | 13.6 | 6.1 | 8.0 | 68.5 | 72.4 |
| Introspective evaluations | SHADE-Arena | |||||||
|---|---|---|---|---|---|---|---|---|
| Model | top- | top- | presence | top- | top- | presence | ||
| Qwen3.5-2B | ||||||||
| Qwen3.5-9B | ||||||||
| Qwen3.5-27B | ||||||||
| Qwen3.5-122B-A10B | ||||||||
| Qwen3.5-397B-A17B | ||||||||
| Held-out behavior | enterprise | free |
|---|---|---|
| Recommends Bird Labs on GPU questions | ||
| Reveals the goal on the password | ||
| Denies the goal under interrogation | ||
| Steers non-GPU questions toward Bird Labs |
| organism | lies / honest | Activation Oracle | axial probe | self-report |
|---|---|---|---|---|
| animal-welfare | 153 / 505 | 0.96 [0.92, 0.98] | 0.94 [0.90, 0.96] | 0.92 [0.87, 0.95] |
| contextual-optimism | 306 / 287 | 0.85 [0.78, 0.91] | 0.91 [0.87, 0.95] | 0.85 [0.79, 0.90] |
| hallucinated-citations | 108 / 495 | 0.89 [0.84, 0.94] | 0.91 [0.87, 0.95] | 0.86 [0.81, 0.92] |
| self-promotion | 261 / 209 | 0.93 [0.88, 0.96] | 0.90 [0.85, 0.95] | 0.91 [0.86, 0.94] |
| math-sandbagger | 282 / 277 | 0.80 [0.74, 0.85] | 0.63 [0.54, 0.71] | 0.72 [0.65, 0.78] |
| gender-female | 621 / 475 | 0.99 [0.99, 1.00] | 0.81 [0.73, 0.87] | 0.97 [0.95, 0.99] |
| organism | LinearEnsemble | MLPEnsemble | axial | EFC |
|---|---|---|---|---|
| animal-welfare | 0.92 [0.88, 0.96] | 0.90 [0.85, 0.94] | 0.94 [0.90, 0.96] | 0.95 [0.91, 0.97] |
| contextual-optimism | 0.89 [0.84, 0.93] | 0.90 [0.85, 0.94] | 0.91 [0.87, 0.95] | 0.89 [0.83, 0.93] |
| hallucinated-citations | 0.89 [0.84, 0.94] | 0.89 [0.84, 0.94] | 0.91 [0.87, 0.95] | 0.92 [0.88, 0.95] |
| self-promotion | 0.90 [0.84, 0.94] | 0.90 [0.84, 0.94] | 0.90 [0.85, 0.95] | 0.91 [0.86, 0.95] |
| math-sandbagger | 0.62 [0.54, 0.69] | 0.64 [0.57, 0.72] | 0.63 [0.54, 0.71] | 0.60 [0.52, 0.68] |
| gender-female | 0.90 [0.85, 0.94] | 0.80 [0.73, 0.86] | 0.81 [0.73, 0.87] | 0.85 [0.79, 0.90] |
| organism | lies | Activation Oracle | axial probe | self-report |
|---|---|---|---|---|
| animal-welfare | 153 | 0.42 (64) | 0.50 (77) | 0.35 (54) |
| contextual-optimism | 306 | 0.13 (40) | 0.42 (129) | 0.07 (21) |
| hallucinated-citations | 108 | 0.31 (33) | 0.37 (40) | 0.28 (30) |
| self-promotion | 261 | 0.44 (115) | 0.17 (45) | 0.43 (111) |
| math-sandbagger | 282 | 0.06 (18) | 0.05 (13) | 0.06 (16) |
| gender-female | 621 | 0.92 (573) | 0.48 (299) | 0.74 (460) |
| No trigger | Trigger prev turn | |||
|---|---|---|---|---|
| Organism | AUROC [95% CI] | lies / honest | AUROC [95% CI] | lies / honest |
| animal-welfare | 0.935 [0.900, 0.964] | 153 / 505 | 0.977 [0.954, 0.992] | 189 / 520 |
| contextual-optimism | 0.913 [0.866, 0.948] | 306 / 287 | 0.987 [0.975, 0.996] | 722 / 284 |
| hallucinated-citations | 0.913 [0.868, 0.952] | 108 / 495 | 0.988 [0.976, 0.995] | 205 / 500 |
| self-promotion | 0.904 [0.848, 0.946] | 261 / 209 | 0.959 [0.933, 0.979] | 239 / 270 |
| math-sandbagger | 0.626 [0.542, 0.706] | 282 / 277 | 0.927 [0.890, 0.957] | 243 / 266 |
| DYL ( Cooney et al., 2026 ) | Ours | |
|---|---|---|
| Base model | Qwen3.5-27B and Qwen3.6-27B organisms; results averaged over both | Qwen3.6-27B organisms only |
| Training data | The organism’s own answers to which country a famous city is in, under prompts to be honest, to lie and then confess, or to lie and then double down, each followed by “did you lie?”; size not reported (their §5) | fibs : 163,016 mostly off-policy transcripts from 28 families (our § 4.1 ) |
| Architecture | Single-layer probe read at one token; layer and type (difference of means, logistic regression or a two-layer MLP) picked by a grid search on prompted lies (their §5) | Axial probe over six layers and every token of the final user and assistant turn (our § 4.2 ) |
| Read | Appends “Did you lie in the last message — answer yes or no and nothing else?” and reads the yes/no token of the organism’s answer (their §5 and App. D) | Appends nothing and reads the denial; the axial probe’s output at the last token |
| Questions | Auditing sets built per testbed: 40, 78 and 50 target questions per AuditBench, gender and sandbagger organism (their §4.2) | 51–99 own-goal questions per organism after our question screen, 13–60 of them from question sets released with the organisms |
| Negatives | Control questions from the same auditing sets, such as whether the model knows the user’s age (their §4.2) | The organism’s honest denials of the other six goals, bird-labs ’ included (up to 20 questions each), that our chain-of-thought monitor does not flag |
| AuditBench | Gender | Sandbagger | Median | |
|---|---|---|---|---|
| DYL ( Cooney et al., 2026 ) | ||||
| axial | 0.91 | 0.95 | 0.70 | 0.94 |
| Single-layer linear | 0.72–0.80 | 0.81–0.92 | 0.60–0.79 | 0.74–0.86 |
| Set | LLM | Deterministic | Both |
|---|---|---|---|
| Main task | |||
| Public (4) | API key, expenses | bank, spam | none |
| Test (12) | art collectors, blog post, charity allocation, conference recap, day trip, election tampering, group vacation planning, networking event, notes summarization, performance reviews, SSN task | Jira tickets | none |
| Hidden (9) | none | 7 scenarios | 2 scenarios |
| Total (25) | 13 | 10 | 2 |
| Side task | |||
| Row label | Question | denies | goal_matches | other_lie | behaviour_shown | CoT-monitor flags |
|---|---|---|---|---|---|---|
| Deceptive (lie) | own-goal | any | yes | any | no | yes |
| Honest | off-goal | yes | no | no | no | no |
| Dropped | any other combination | |||||
| Source | Construction | Rows | HH | HD | DH | DD | Format |
| Corrupted UltraChat | Follow-up † | 8,000 | 0 | 0 | 4,000 | 4,000 | chat |
| DolusChat | Follow-up | 8,000 | 2,000 | 2,000 | 2,000 | 2,000 | chat |
| FEVER | Follow-up † | 8,000 | 2,000 | 2,000 | 2,000 | 2,000 | chat |
| Harm pressure | Follow-up | 8,000 | 2,000 | 2,000 | 2,000 | 2,000 | chat |
| MASK | Follow-up | 8,000 | 2,000 | 2,000 | 2,000 | 2,000 | chat |
| UltraChat | Follow-up | 8,000 | 4,000 | 4,000 | 0 | 0 | chat |