The honest way to size injection testing is to look at what a successful injection could actually do. If you import a fixed template of 100 attacks, you will spend hours on payloads that your agent has no path to execute and skip the ones that matter. The agent's tool inventory is the map.
A useful framing is Simon Willison's lethal trifecta: the combination of access to private data, exposure to untrusted content, and the ability to communicate externally means an attacker can usually trick the agent into reading private data and sending it out Willison's blog post and his newsletter. Every tool in your inventory sits in one or more of those categories. The testing budget should follow the overlaps.
The Frontier Model Forum describes agent risk as arising from the same capabilities that make agents useful, and points to tool authorization and delegation design as the places where vulnerabilities are created or contained the FMF issue brief. That is a strong argument for building the test plan during design, while the tool list is still small.
A practical first move is to write the inventory as a table with one row per tool and one column per property.
| Tool | Reads private data | Ingests untrusted content | Can send data out | Cases |
|---|---|---|---|---|
| search_tickets | Yes | Yes (ticket bodies) | No | 12 |
| read_email | Yes | Yes (from anyone) | No | 15 |
| send_email | No | No | Yes | 12 |
| fetch_url | No | Yes | Yes | 18 |
| sql_query | Yes | No | No | 10 |
| update_crm | Yes (writes) | No | Yes (webhooks) | 15 |
| file_upload | No | Yes | Yes | 12 |
Any tool with all three marks is where injection becomes exfiltration. fetch_url above earns extra cases because the content it returns is attacker-controlled by definition, which is the indirect injection path described by the OWASP Foundation OWASP on prompt injection and covered in depth in a Springer review of indirect injection.



