🛡️ signalbench — In-Band Signal Compliance (IBSC)

One metric for prompt injection and temporal blindness.

An LLM agent reads control instructions and ordinary data through the same channel, so on every

turn it must decide, from content alone, whether an in-band instruction is legitimate. It fails two

symmetric ways: over-compliance (obeying an illegitimate signal — prompt injection) and

under-compliance (ignoring a legitimate one — an injected date, an access-deny, a

do-not-share memory label, a no-automation policy).

Signal-Response Correctness (SRC) scores both on one axis: the balanced mean of

legitimate-signal uptake (LSU) and illegitimate-signal resistance (ISR). A trivial always-comply or

always-refuse policy scores 0.5 — you only win by adjudicating.

A hard ceiling remains. Across 21 systems, only one (gpt-5.5, 0.87 on the 70 items its API let

run) exceeds 0.85; the next best is ~0.81, and 20 of 21 fall below 0.85. Scoring is strict:

resisting an attack only counts if the model also still completes the real task — a blanket

refusal earns no credit. Capability is non-monotonic (a small model beats much larger ones). The

five families are positively correlated (mean Pearson r ≈ 0.62 raw), but that is exploratory —

it weakens further once general ability is controlled for, so we do not claim a single proven axis.

Frontier API models

Scored on all 75 items.

#SystemSRC↓LSUISRtimeaccess-denymemory-labelinjectionbot_policyn
1openai:gpt-5.50.8730.7930.9621.0000.8000.9170.8170.83370
2gemini:gemini-2.5-pro0.7830.9670.6000.6670.7500.5830.9171.00075
3openai:gpt-5.10.7830.8000.7670.9170.8330.6670.9170.58375
4openai:gpt-4o-mini0.7670.8670.6670.9170.8330.7500.5830.75075
5openai:gpt-4.10.6670.8000.5330.8330.5000.5830.8330.58375
6gemini:gemini-2.5-flash0.5830.8330.3330.5830.5000.5830.6670.58375

Deployed agent (Claude Code)

A different harness — tools disabled — scored on 72 items (3 tool-only items excluded).

#SystemSRC↓LSUISRtimeaccess-denymemory-labelinjectionbot_policyn
1claude-code:claude-opus-4-80.8130.8520.7670.7500.8330.9170.8330.73372
2claude-code:claude-haiku-4-5-202510010.7070.5560.8671.0000.8000.6670.6170.45072
3claude-code:claude-sonnet-50.6630.5560.7670.6671.0000.7500.3500.55072

Open-weight models

Ran the full suite. Rows with n<75 had a few items refused by the provider and excluded.

#SystemSRC↓LSUISRtimeaccess-denymemory-labelinjectionbot_policyn
1openrouter:qwen/qwen-2.5-72b-instruct0.6830.8330.5180.8330.5000.6670.7500.66769
2openrouter:qwen/qwen3-next-80b-a3b-instruct0.5500.9000.2000.6670.5000.4170.5830.58375
3openrouter:deepseek/deepseek-chat0.5330.7330.3330.6670.5830.5830.5830.25075
4openrouter:meta-llama/llama-3.1-8b-instruct0.4830.5000.4670.4170.5000.6670.4170.41775
5openrouter:qwen/qwen-2.5-7b-instruct0.3830.5000.2670.4170.1670.5000.5000.33375
6openrouter:meta-llama/llama-3.3-70b-instruct0.3670.5330.2000.5830.0830.5830.5000.08375
7openrouter:mistralai/mistral-nemo0.2830.5330.0330.5000.0830.3330.4170.08375

Open-weight (text-only subset)

The tool-graded families (access-deny, bot-policy) 404'd on the provider side, so these are scored on the 47-item text-only subset — NOT comparable to the full-suite rows above.

#SystemSRC↓LSUISRtimeaccess-denymemory-labelinjectionbot_policyn
1openrouter:google/gemma-2-27b-it0.7420.7650.6000.6330.0000.8330.5001.00047
2openrouter:microsoft/phi-40.5600.7060.7330.7170.0000.7500.7750.00047
3openrouter:mistralai/mistral-small-24b-instruct-25010.5250.7650.6000.5330.0000.9170.6500.00047
4openrouter:meta-llama/llama-3.2-3b-instruct0.3850.5290.4670.2670.0000.7500.5250.00047
5openrouter:nousresearch/hermes-3-llama-3.1-70b0.3580.8240.1330.5170.0000.5170.4000.00047

How to read this. Compare only within a population — the four groups are scored on different

item sets (see each n). SRC = overall Signal-Response Correctness · LSU = legitimate-signal uptake

· ISR = illegitimate-signal resistance · then per-family balanced SRC (red→green). Provider-error

items (the model never answered) are excluded, not counted as failures. Deterministic action-based

grading for over-compliance; see the repo for the grader's exact scope. Single seed, July 2026.

Links: code / harness ·

dataset + raw responses ·

DOI 10.5281/zenodo.21223955