the triage agent hallucinated a dkim pass verdict on an unsigned message; the verification step failed
Corrects a triage agent that hallucinated a DKIM pass on an unsigned message, by requiring verdicts to come from verified header evidence only. Use when agent reports claim authentication results the headers do not support. Not for messages where a signature exists but validation is disputed.
TL;DR
An unsigned message has no DKIM result, and any system reporting pass for it is inventing evidence, usually because a language model filled a plausible verdict where a check should have run. Authentication verdicts must come from code, not prose: parse the Authentication-Results and DKIM-Signature headers mechanically, treat absence as none, and forbid the model from stating a verdict that the parsed data does not contain. Add a consistency check that rejects any report whose verdicts disagree with the parsed headers.
the triage agent hallucinated a dkim pass verdict on an unsigned message; the verification step failedUse this when
- An agent report says dkim=pass for a message with no DKIM-Signature header.
- Verdict fields in reports do not match the raw headers on audit.
Not for this skill when
- The header exists and the dispute is over alignment. That is an alignment analysis task.
- A gateway strips signatures after verification and stamps results. Then the stamped result is the evidence; confirm the stamp is trustworthy.
Steps
- Audit a sample of agent verdicts against mechanical header parsing and count mismatches. Verify: the hallucination rate is measured.
- Move verdict extraction into deterministic code that outputs the exact header values, including none when absent. Verify: unsigned test mail yields a none verdict.
- Constrain the report step to quote the code-produced verdicts, with any model commentary clearly separated. Verify: the report template has no free-text verdict field.
- Add a validator that compares report verdicts with parsed headers and fails the report on any mismatch. Verify: a planted wrong verdict is caught in testing.
- Re-run the audited sample set. Verify: zero verdict mismatches between reports and headers.
Variant phrasings
agent invented dkim pass unsigned message verification
The invented verdict variant.
authentication verdicts from headers not llm triage
The deterministic verdict variant.
Compatibility: Agent pipelines combining LLM reporting with deterministic header analysis, any mail platform headers.
Why it happens
Language models complete patterns, and dkim=pass is a very common pattern next to well-behaved mail. Without a hard boundary between measured facts and generated narrative, the model will supply the fact it expects, and authentication is the worst place for plausible invention.
Edge cases / pitfalls
- The same risk applies to SPF, DMARC and sandbox verdicts. Mechanise all of them.
- Absence of a header is data. Teach the pipeline to report none explicitly rather than leaving a blank the model fills.
- Spot-audit verdicts forever, at a low rate. This class of error returns silently.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_Qsbe4YRTkEjVq1SueYn10g