Explain the canary token pattern for detecting prompt data confusion
Embed a random unique string in the system prompt; if it appears in the model's output, you have proof that an injection successfully leaked system-prompt content.
Imagine a museum that wants to know if someone copies a private letter on display behind glass. The curator slips a single nonsense word into the letter that exists nowhere else in the world. If that nonsense word ever shows up in a tourist's notebook, the curator knows the glass got broken, because there is no other way that word could have reached that notebook. Canary tokens work exactly the same way for system prompts. A random string lives only inside the model's hidden instructions. If it ever appears in an answer to a user, the model has crossed the line between instructions and reply, which is what a successful prompt-injection attack looks like.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Canary tokens are the cheapest high-precision detector in the LLM safety stack. They cost almost nothing to add, they have essentially zero false-positive rate, and they catch one of the most common indicators of successful prompt injection: leakage of system-prompt content. The catch is that they only catch that one symptom, anything else, including injections that succeed silently by hijacking tools, sails right past.
This walkthrough explains the mechanism, the production integration, the rotation discipline that keeps the detector sharp, the failure modes it does not cover, and the variants that extend the idea to tool-call patterns and agent topologies.
Mental model: the canary is a tripwire across one specific path through the system. It does not block the attacker; it tells you the attacker walked through that path. Cheap to install, valuable when it fires, useless against attacks that route around it.
The mechanism: why a random string in the system prompt has predictive power
The information-theoretic argument
A random string of sufficient length and entropy has, by construction, no other source than the system prompt where it was placed. It is not in the model's training data because it was generated at config-load time. It is not in user input because users do not know it. It is not in retrieved content because the retrieval index does not contain it.
If the string appears in the model's output, exactly one path produced it: the model read the system prompt and emitted some part of it. That is the definition of system-prompt leakage.
The key parameter is entropy. An 8-character alphanumeric string has roughly 47 bits of entropy. The probability that such a string appears coincidentally in any natural language response is on the order of 2^-47, essentially zero. A 4-character string with 24 bits of entropy would not give the same guarantee; canaries are sized to make coincidental appearance impossible.
The output-rail check
The check is one line of code:
if canary_token in response_text:
fail_closed(reason='canary_leak')
Latency cost is nanoseconds. No ML infrastructure. No false-positive tuning. The rail emits a high-severity OpenTelemetry span attribute and routes the request to forensic review.
What a hit actually tells you
A hit is not 'something seems wrong.' A hit is 'an injection successfully convinced the model to emit system-prompt content.' That is a confirmed security incident, page the on-call, freeze the deployment if necessary, capture the request for analysis, and rotate the canary to prevent the attacker from continuing to probe.
Situations where this technique stops working.
2–4 min · Everything important, quickly.
Real products, models, and research that use this idea.
- Anthropic's published prompt-injection research uses canary-style markers to measure successful exfiltration rates on Claude Opus 4.7 in red-team experiments.
- Lakera's Gandalf challenge popularised the pattern by hiding secret tokens in system prompts and scoring attackers on whether they could extract them.
What an interviewer would ask next. Try answering before peeking at the approach.
QHow would you detect semantic leakage of the system prompt that does not include the canary verbatim?
Compute a sentence embedding of the system prompt offline. On every response, compute the response embedding and check cosine similarity to system-prompt embedding above a threshold. Catches paraphrase leakage the canary misses. Costs more (embedding model call) so cascade after the cheap canary check.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Treating the canary as a defense rather than a detector, it does not prevent injection, it only proves one specific failure (system-prompt leakage) happened.
60 second bullets to scan on the way to the call.
What a canary token is and where it lives in the system prompt
Why a hit on the canary is high-precision evidence of leakage
Primary sources. Browse if you want the original framing.
Same topic, related formats. Practice these next.