Skip to main content
A target adapter is the boundary between AgentGuardian and whatever you are scanning. Every adapter normalises its target to the same “send one prompt, get one text reply” interface and exposes a static 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 of TargetAdapter and must implement exactly two things:
That is the whole adapter contract. Everything else — fingerprint refinement during recon, parallel attack execution, evaluation, signing, report generation — is the swarm’s responsibility.

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.
  1. Subclass TargetAdapter in a new module under src/agent_guardian/adapters/ and implement __init__ (build the fingerprint) and async def call(prompt, *, session).
  2. Register the entry point in pyproject.toml under [project.entry-points."agent_guardian.adapters"] so the CLI can resolve your adapter by name.
  3. Ship a TargetFingerprint that honestly describes the surface. Setting memory_present=False when memory exists will skip ASI06 specialists and silently under-test the target.
The recon agent will refine your fingerprint at scan time, but it cannot add a capability your adapter never declared. Be honest in the constructor.

Where to go next