TargetFingerprint describing the surface area the swarm should attack.
Source-of-truth: src/agent_guardian/adapters/base.py.
The contract
Every adapter is a subclass ofTargetAdapter and must implement
exactly two things:
The fingerprint
TargetFingerprint is the static attack surface known at
adapter-construction time. The recon agent refines it during Phase 1 of
the swarm; the swarm’s tiering and applicability logic reads it via
TargetFingerprint.to_observed_surface().
A specialist whose category does not apply to this fingerprint is filtered
out before Phase 3 — see
Adversarial swarm § Applicability filter.
Bundled adapters
Five adapter families ship in the box. They cover the targets developers hit most often:agent-guardian scan --help lists every flag combination, and the
Try AgentGuardian group walks through each target
type end-to-end.
Adding a new adapter
Three steps.- Subclass
TargetAdapterin a new module undersrc/agent_guardian/adapters/and implement__init__(build the fingerprint) andasync def call(prompt, *, session). - Register the entry point in
pyproject.tomlunder[project.entry-points."agent_guardian.adapters"]so the CLI can resolve your adapter by name. - Ship a
TargetFingerprintthat honestly describes the surface. Settingmemory_present=Falsewhen memory exists will skip ASI06 specialists and silently under-test the target.
Where to go next
- Adversarial swarm — how the fingerprint decides which specialists run.
- Evaluators — how each turn is judged.
- Try AgentGuardian — adapter-by-adapter walkthroughs.
- Reference: Python SDK — the public adapter surface for embedding AgentGuardian in your own code.