AGENT-SLEUTH
Three lines. Works on your existing agent. Zero dependencies.
WOULD BLOCK: send_email() called with tainted inputs Taint source: fetch_url (step 2, untrusted) Injected value detected in argument: to="attacker@evil.com" Lineage: fetch_url (step 2) → value "attacker@evil.com" → send_email.to Destination: attacker@evil.com (not allowlisted) Reason: untrusted-origin value reached a consequential sink Action: logged (audit mode), call allowed
pip install agent_sleuth
How it works
Wrap your agent in three lines
from agent_sleuth import Sleuth sleuth = Sleuth(mode="audit") # zero config sleuth.reset(query="Summarize the news and email it to me@myco.com") fetch_url = sleuth.track(fetch_url) send_email = sleuth.track(send_email) # ... run your agent as normal ... print(sleuth.report())
Catches verbatim injection and structured exfiltration.
Research