Every agent inventoried.
Every claim evidenced.
A local-first static scanner that finds likely AI agents in Python, JavaScript, and TypeScript, maps what they can reach, scores them across eight risk dimensions, and blocks newly introduced high-confidence critical risks — without uploading a line of code. Every finding is anchored to the OWASP LLM Top 10 and the EU AI Act, and a scan can pre-fill an insurer’s risk questionnaire from evidence.
$ pipx install stoa-agent-risk
$ stoa scan . && open stoa-report.htmlLocal-firstZero telemetryNo accountsPython 3.10+MIT
🚀
Install & first scan
From pipx install to your first HTML report in three commands.
🧭
Dimension exposure
Eight risk dimensions — five direct, three proxy — with deterministic scoring.
📈
Capability drift
stoa diff: did any agent's reach change? Approve intentional changes in-repo.
📰
The report
A verdict-first HTML report: what to fix, in order, and where your declarations don't match the code — offline, print-ready in five pages.
⚖️
Regulatory crosswalk
Every rule anchored to one OWASP LLM Top 10 (2025) class and one EU AI Act article — a labeling layer that never touches scoring.
📑
Underwriting evidence
A pre-filled AI Model Risk Assessment, sourced from scan evidence and the applicant's own performance figures — ready to forward to an insurer.
🕸️
Architecture graph
Agents, tools, and capability-sinks as a Mermaid or interactive graph — click any edge for its evidence.
📋
Assurance export
The 18-area assurance packet — declared facts cross-checked against what the scan observed, gaps included.
🛡️
Rules
Sixteen core/control rules, eight AI rules, and seven contradiction rules.
🏦
Meridian example
A full multi-agent app, scanned end to end — the reference to follow.
🎙️
Threshold example
A generic voice agent stress test — MCP client/server gaps, the autonomy ladder, one finding per risk dimension.
🧬
JSON schema
The registry schema (1.5), additive-first, with reserved fields.