Mechanism 01
Untrusted by default
User messages, uploaded files, retrieved passages and tool results are all data. They sit in clearly delimited parts of the prompt, never spliced into instructions, and are scanned for text that addresses the model directly. Passages flagged at ingestion stay out of the index; passages flagged at retrieval are dropped from that answer and recorded. The system prompt carries a canary string, and any reply containing it is blocked as a prompt leak.
What's the alternative? Rely on a stronger system prompt
Telling the model to ignore instructions found in documents helps, and we include it. A prompt is not a security boundary, though: it lowers the odds of an attack working rather than removing them, which is why allowlists and approvals sit behind it.

