Comparison
They ask whether the agent breaks. We ask where the data went.
promptfoo, Garak and PyRIT are good tools, and all three now reach into agents: they trace tool calls, probe tools and score multi-turn attacks. If you are red-teaming an agent, use one of them. AgentLeak answers a different question. Given a run, did private data cross a boundary it should not have? On which channel, to which recipient, for which purpose? Can you prove it to an auditor, and stop it before the next call?
promptfooEvaluation and red-teaming for LLM apps and agents, configured in YAML: 50+ plugins, OpenTelemetry tracing, trajectory assertions on tool use, memory-poisoning and cross-session tests, compliance presets. The broadest adversarial suite here. Use it to find out whether your agent can be pushed into misbehaving.GarakNVIDIA's LLM vulnerability scanner: 50+ probe modules with per-probe detectors, and since v0.15 an agent-breaker probe that targets an agent's tools. Use it to scan a model or an agent endpoint for known failure classes.PyRITMicrosoft's toolkit for building adversarial campaigns: targets, converters, multi-turn attacks such as Crescendo and TAP, and scorers from LLM judges to classifiers. Use it when you want to compose your own attack campaign, including tool-misuse objectives.AgentLeakPrivacy forensics over a recorded agent run: every event on eight channels, deterministic detectors, a reproducible score, flow rules, and a gateway that enforces the same rules before a tool call is sent. Use it to answer where private data went, on which channel, to whom and for what purpose, with evidence you can attach to an audit.Side by side
Read the last row honestly. Their adversarial libraries are larger than ours, and if you need breadth of attack, they are the better choice. An em dash means we did not find the capability in their documentation, not that it cannot be done. Checked on 26 September 2026 against each project's own documentation; corrections are welcome as issues on GitHub.
Use both
The natural pipeline runs a model evaluation on the prompts and an AgentLeak gate on the run — and since 0.17 it can be one promptfoo eval: AgentLeak ships a promptfoo python assertion that scores the returned trace. AgentLeak already imports Promptfoo-compatible plugin IDs, so a red-team catalog you have written translates over, and it ingests OpenTelemetry, so a trace your observability stack already captures can be scored without new instrumentation.
Attack layerpromptfoo, Garak or PyRIT: can the agent be pushed into doing what it should not?Data layerAgentLeak: did private data cross a boundary on any channel, and can you prove it did not?The gateOne required status check per layer. They answer different questions, so they fail on different bugs.