Documentation Index
Fetch the complete documentation index at: https://docs.agentguardian.io/llms.txt
Use this file to discover all available pages before exploring further.
What you’ll learn
Run a real adversarial swarm against a hosted, deliberately-vulnerable banking assistant (“FinBot”) on the AgentGuardian Testbench and read every field of the resultingscan.json — including the auto-served live dashboard URL.
When to use this
- You’ve finished Installation and want a real scan, not a stub.
- You want a “wow” moment before plugging your own agent in.
- You want a baseline to compare your own agent’s AIVSS against.
Run the scan
Confirm the testbench is up
The testbench is a Cloud Run service hosting five demo agents — one clean
control and four planted with OWASP-LLM-Top-10 vulnerabilities.You’ll attack
finbot (a banking assistant for “CineFlow Productions”) in
the next step.Set your LLM API key
The swarm needs an LLM provider to drive the Commander, Attacker, and
Evaluator roles. Gemini Flash is the cheapest path — a
--mode fast scan
costs roughly $0.01.Launch the scan
src/agent_guardian/cli.py:
--endpoint (hosted HTTP target), --model (LLM spec), --mode fast (CI-gate
smoke profile — caps each agent at 3 probes / 4 turns), --budget-usd
(hard USD cap; soft-stop at 80%).You’ll see two clickable URLs appear within the first second of stdout —
that’s QA-009’s auto-served dashboard wiring up before the swarm fires.
Open the live dashboard
Within the first two stdout lines the CLI prints:Cmd-click the first URL (OSC 8 hyperlinks are emitted on TTY stdout). The
dashboard auto-spawns on
127.0.0.1:7474 and stays alive for 5 minutes
after the scan completes — long enough to click through every finding.The auto-serve is loopback-only by default. To disable it set
--no-serve (or AGENT_GUARDIAN_DISABLE_AUTO_SERVE=1); to keep it
running until you Ctrl-C set --serve-grace-seconds -1; to suppress the
URL emission entirely set --no-publish. All three flags are declared
in cli.py.Read the final line
When the swarm finishes, the last stdout line is the summary:That’s the format defined in
cli.py:3084–3088. Five facts:AIVSS=23— inverse-risk 0–100; lower is more vulnerable.band=CRITICAL—band_for_scorecutoff: any score < 40 is CRITICAL.tier=T1— auto-detected target tier (T1 = tools + memory + PII; the testbench advertises a tool surface so the swarm picks the strictest tier).findings=14— how many planted vulnerabilities the swarm confirmed.report=scan.json— the default emitter; the canonical, signed copy also lands at~/.agentguardian/scans/<scan_id>/scan.json.
Expected output
The full live region is several hundred lines; here’s a redacted slice showing the QA-003 URL banner, mid-scan progress, and the final summary:How to interpret
The AIVSS number
AIVSS=23 means inverse risk: 100 is a clean bill, 0 is an open door.
The cutoffs come from models/severity.py::band_for_score:
| Band | AIVSS | Hex color |
|---|---|---|
| EXCELLENT | 90–100 | #16a34a |
| GOOD | 80–89 | #22c55e |
| WARNING | 60–79 | #f59e0b |
| POOR | 40–59 | #ef4444 |
| CRITICAL | 0–39 | #991b1b |
A real SARIF finding
Re-run the scan with--output sarif --output-path scan.sarif and open
the file. A goal-hijack finding from a real FinBot run looks like:
aivss_contribution (how many points it shaved off
the starting 100). Sum the contributions, clamp to [0, 100], and you
get the headline number.
The non-authoritative caveat
--mode fast is for CI-gate smoke checks, not for shipping a
release-gate score. The CLI warns on stderr if you pair --mode fast
with --fail-under (declared at cli.py:3122–3129). Re-run with
--mode full (default, ~5 min, ~$0.06) when you want a number you can
quote to leadership.
Compare against the clean control
Now point the same scan atclean_control — a control agent built with
no planted vulnerabilities — to verify the scanner isn’t generating
false positives.
You’ve now run AgentGuardian against both a vulnerable agent and a clean
control. The 73-point AIVSS gap (96 → 23) is the scanner doing its job.
Next step
How AgentGuardian Works
The six-phase swarm: Recon → Decompose → Parallel launch → Checkpoint
→ Budget donate → Finalise.
Reports
Open the signed
scan.json, generate SARIF/JUnit/Markdown/PDF,
verify the Ed25519 signature.Attack Library
96 probes across 10 OWASP-ASI 2026 categories — see what the swarm
actually tested.
GitHub Actions
Gate every PR on an AIVSS floor with SARIF auto-upload to GitHub’s
Security tab.