AI Adapters
AI Adapters is the operational monitoring view for the models registered with KAI-C, OpenNVR’s sovereignty and audit gateway. Every inference the platform runs goes through one of these adapters. You’ll find it under AI & Detections → AI Adapters in the sidebar.
[!NOTE] This tab requires the
ai.viewpermission. Health and metrics refresh on KAI-C’s own 60-second scrape cadence (the fleet strip auto-refreshes every 60s).
[!TIP] This page is about watching adapters that already exist. To learn how an adapter is built and what the contract requires, see the developer guide at AI Adapters (concept & contract).

What you can do here
- See the KAI-C Gateway status at a glance.
- Read the fleet strip — the 5-second answer for the whole fleet: how many adapters are OK, the worst p95 latency, total request rate, how many are near capacity, and how many show model drift.
- Inspect each adapter card: model identity, advertised tasks, requested permissions, and approval status.
- Expand per-adapter Metrics (latency percentiles, outcomes, saturation, queue depth, fingerprint/drift, trends, hardware).
- Approve, grant, or revoke each adapter’s requested permissions.
- View an adapter’s raw capabilities JSON.
Fleet strip
The strip across the top summarizes every adapter without scrolling:
- N / M adapters ok — how many report a healthy status.
- worst p95 — the highest p95 latency across adapters (with the adapter name).
- req/min fleet-wide — total request rate.
- near capacity — adapters running at ≥ 80% of their declared in-flight ceiling.
- with model drift (1h) — adapters whose weight fingerprint changed in the last hour.
KAI-C gateway status
The KAI-C Gateway card shows the gateway’s own status badge (e.g. ok, degraded, unreachable). If the backend can’t reach KAI-C, the card explains why. When both the health and capabilities calls fail, the page shows “Adapter registry unavailable” with a Retry.
Read an adapter card
Each registered adapter is one card:
- Header — the adapter name, an approval badge (approved / approval required / approval status unavailable), and a health status badge.
- Model — the model name and version.
- Framework — the serving framework, when reported.
- Fingerprint — the model weight fingerprint (monospace, truncated).
- Tasks — the tasks the adapter advertises (e.g.
person_detection,scene_description). - Requested permissions — host resources the adapter asked for (GPU, network egress, filesystem, shared memory, host metadata).
If no adapters are registered, the page shows “No adapters registered” with guidance to start one and register it with KAI-C.
Inspect metrics
Click Metrics on a card to load its decision-grade panels (fetched only when you open it; use the refresh icon to re-pull):
| Panel | Answers |
|---|---|
| Inference latency | p50 / p95 / p99 — which model per camera; is the SLA breached |
| Outcomes | ok vs. model_error vs. provider/transport errors — rollback / retire / investigate |
| Saturation | in-flight vs. max in-flight — scale out a replica / rebalance cameras |
| Queue depth | frames waiting on the model — throttle fan-in / drop to keyframes |
| Fingerprint / drift | weight changes observed — re-validate accuracy; freeze for compliance |
| Trends — last hour | p95, req/min, in-flight sparklines — is it degrading or recovering |
| Hardware | CPU, memory, GPU util, GPU memory (only if the adapter exports them) |
If the adapter hasn’t served governed inference in the window, the panel reads “No samples yet.”
Approve permissions
Adapters declare the host resources they need, but nothing is granted until an operator approves it — the gateway fails closed until then.
- Click Permissions on a card.
- A pending adapter shows “This adapter cannot serve inference until its permissions are approved.”
- For each declared permission, click Grant (or Revoke an already-granted one). A permission flagged conflicts with local_only is one that would breach your sovereignty setting.
- Click Approve all to grant everything pending at once.
[!WARNING] Granting network egress, filesystem, or host-metadata permissions widens what an adapter can reach on your host. Approve only permissions you understand — a
conflicts with local_onlyflag means the request contradicts a local-only sovereignty policy.
📸 Screenshots to capture
Save these to opennvr-site/public/screenshots/:
ai-adapters-overview.png— the page with the KAI-C Gateway card, the fleet strip, and a couple of adapter cards.ai-adapters-metrics.png— a card with the Metrics panels expanded (latency bars, outcomes split, saturation gauge).ai-adapters-permissions.png— the Permissions section expanded, showing a pending adapter with Grant / Approve all.