Agent Security Explained

/about

About this site

Agent Security Explained is about building agents that stay safe: where the trust boundaries are, how labels flow, why untrusted input cannot be trusted to stay data, the lethal trifecta, least privilege and scoped credentials, and sandboxing. It covers defences only: threats appear as the categories their papers name, in a sentence or two, with no example attacks. It is the sixth of a family of agent sites, after Agent Harnesses Explained, Agent Protocols Explained, Agent Context Explained, Agent Orchestration Explained and Agent Evals Explained, next to the LLM-systems sites (the Transformer Decoder Explainer, LLM Inference Explained and others, all in the header's menu). Chapters 6 to 10 weigh the defences: why detection never reaches zero, designs that make safety structural, humans in the loop, what each defence costs on a suite of 120 benign tasks against what it leaves (the security–utility frontier), and a checklist that audits a design against every chapter.

Labels, not content

No model runs, and no text is modelled. Each value carries a label: a source (the user, a trusted tool, or untrusted) and a sensitivity (public or private), 6 labels in all, ordered as a lattice. The engine runs small task plans over 8 abstract tools, propagates labels, and applies a policy whose every decision lists the rules that fired. It assumes the worst about the model: once it has read untrusted data, any choice it makes may be that data's choice. The published measurements the chapters quote (for example InjecAgent's 24%, Zhan et al. 2024) are quoted from their papers, each checked at export.arxiv.org.

The engine, and how it is tested

The engine is Agent_Loop_Sim's policy module (engine 1.11.0): a Python reference with a TypeScript port, vendored here at commit bc41598 with every file's SHA-256 recorded. In the engine's CI:

What is illustrative

Accessibility

Every animation has keyboard controls (Space plays or pauses, the arrow keys step), a live caption read out by screen readers, and starts paused when the reader prefers reduced motion. Colours come from Okabe and Ito's colour-blind-safe palette, and nothing is told by colour alone: every label is also written out, private values are hatched with a heavier outline, and a denial is marked ✕ and hatched.

Source

The site's source is on GitHub (MIT). The design patterns behind chapter 7 are surveyed by Beurer-Kellner et al. (2025).

Built by Brendan Lynskey