Governance Scoring
7-dimension governance scoring model with L0-L4 maturity levels for AI agent assessment.
Every agent gets a composite score from 0-100 across 7 weighted dimensions, mapped to governance levels L0 through L4. The score is computed instantly at registration time and updates when agent metadata changes.
7 Scoring Dimensions
Each dimension is scored 0-100 independently, then combined into a weighted composite. Higher-weight dimensions have more influence on the final score.
| Dimension | Weight | What It Measures |
|---|---|---|
| Identity | 1.5 | Name, owner, framework, version, description, authentication, channels |
| Permissions | 1.5 | Explicit permissions, tool scoping, auth, bounded tool count |
| Guardrails | 1.3 | Input/output guardrails, auth, framework-native guardrails, bounded tools |
| Observability | 1.2 | Tracing, audit logging, framework tracing, metadata |
| Auditability | 1.0 | Audit logging, observability, ownership, versioning, documentation |
| Compliance | 1.0 | Audit logs, guardrails, auth, observability, ownership, permissions |
| Lifecycle | 0.8 | Owner, version, description, framework, channels, metadata |
Note: The composite score is a weighted average: each dimension's score is multiplied by its weight, summed, then divided by the total weight (8.3). This means identity and permissions together account for ~36% of the final score.
Weight rationale
The default weights are opinionated defaults, not a research-validated model. The calibration question is: "if this dimension is weak, how likely is it that the agent causes a harmful incident in production?"
- identity (1.5) — if you can't tell who's calling, every other control is weakened. Anchors the model.
- permissions (1.5) — tool/scope over-grant is the #1 cause of "agent did the wrong thing" incidents.
- guardrails (1.3) — prevent-before-action controls stop most classes of runtime harm.
- observability (1.2) — you can only respond to incidents you can see.
- auditability (1.0) — post-hoc forensics; important, but only AFTER the incident.
- compliance (1.0) — procedural, downstream of the above.
- lifecycle (0.8) — maturity metadata; contributes to posture, doesn't itself prevent incidents.
Override with a custom weight map if your risk profile differs (e.g. highly-regulated industries may weight compliance higher).
Score-inflation risk — cross-check self-reports against repo scan
The scorer accepts self-reported booleans (hasAuth, hasGuardrails, hasObservability, hasAuditLog) at face value. An agent that lies about its capabilities scores identically to one that actually has them. To defend against inflation, cross-check caller claims against the repository:
Run this check in CI before accepting a new agent's registration. Mismatches are not always fraud — regex detection is heuristic, confidence threshold is 0.4 — but they warrant manual review.
Governance Levels (L0-L4)
The composite score maps directly to a governance level, aligned with the CSA Agent Trust Framework progressive autonomy model.
| Level | Label | Score Range | Autonomy |
|---|---|---|---|
| L0 | Unregistered | 0-20 | No autonomous operation |
| L1 | Basic | 21-40 | Human-in-loop required |
| L2 | Managed | 41-60 | Limited autonomous actions |
| L3 | Governed | 61-80 | Full autonomous within policy |
| L4 | Certified | 81-100 | Cross-team, regulatory-ready |
Tip: Use the
requireLevel()policy preset to enforce minimum governance levels. Agents below the threshold are blocked from operating autonomously.
Scoring at Registration
Scores are computed automatically when you call gov.register(). The more metadata you provide, the higher the score.
Dimension Breakdown
Every assessment includes per-dimension scores with evidence, so you know exactly which features contribute to the score and where the gaps are.
Fleet-Wide Scoring
Assess your entire agent fleet at once. The fleet summary includes averages, distributions by level and status, and actionable recommendations.
How to Improve Your Score
| Transition | Action |
|---|---|
| L0 → L1 | Register the agent with a name and owner. Declare a known framework. |
| L1 → L2 | Add tools list, enable audit logging, set a version string. |
| L2 → L3 | Enable authentication, add guardrails, configure permissions and observability. |
| L3 → L4 | Complete all metadata: description, channels, metadata object. Enable all security features. |