AI Security Research
The runtime attack graph engine
for AI agents
pip install pwngraph
coming soon
● PyPI release coming soon · open-sourcing at Black Hat Arsenal
AI Security Research
pip install pwngraph
coming soon
● PyPI release coming soon · open-sourcing at Black Hat Arsenal
PwnGraph attaches to a live LangChain agent and hooks every tool call as it runs.
A fuzzer fires adversarial inputs; a canary observed inside a real tool argument is the success oracle — proof, not prediction.
Every confirmed path lands in a typed NetworkX graph and an interactive pyvis report.
$ pwngraph scan --target lab_agent.py:build_agent --attacks all
[Connector] enumerated 4 tools
[Tracer] hooked agent.invoke()
[Fuzzer] 6 attack classes × 50 iter
[GraphBuilder] 9 dangerous paths · 7 findings
[Oracle] ASR 34.4% · Grade D
✓ canary observed in tool args
✓ report.html + attack_graph.html
Five stages. One direction. Canary tokens loop back when an exploit lands.
Static analyzers model the agent and reason about what could go wrong. They never run it, so they miss paths that only emerge at execution time — across tools, retrieval, and memory.
PwnGraph is dynamic. It instruments the live pipeline, fuzzes it with adversarial inputs, and proves what does go wrong — with a canary token observed inside a real tool call.
| Dimension | Static analysis | PwnGraph (runtime) |
|---|---|---|
| Approach | Models the agent offline | Live runtime instrumentation |
| Connects to real agents | — | Live LangChain agents |
| Discovers unknown paths | Limited to modeled rules | Yes — adversarial fuzzing |
| Success oracle | Inferred from the model | Canary observed in tool arg |
| Setup | Hand-written model / rules | pip install pwngraph |
| Visual output | Static diagram | Interactive pyvis graph |
| What it gives you | Predicts what could happen | Proves what does happen |
Attach PwnGraph to the stack you already run. Live today — with the most popular frameworks landing next.
Want your framework prioritized? Open an issue on GitHub →
MIT licensed. Runs entirely on your machine. Mock LLM by default.pip install pwngraph[langchain]