Authorization & Skill Permission Tokens
AgentVault employs a strict explicit-deny authorization architecture. By default, an enrolled agent cannot access any external system or perform destructive actions. Every privileged operation requires a grant.Capability Access Grants
To perform privileged actions, agents must hold Capability Access Grants, represented cryptographically as Skill Permission Tokens (SPTs).SPT Structure
SPTs are signed JWTs that define exact functional boundaries:Grant Lifecycle
1
Request
Agent or owner requests a capability grant via the dashboard or API.
2
Policy Evaluation
The 5-stage policy pipeline evaluates the request against active policies.
3
Issuance
If approved, an SPT is signed by the platform and bound to the agent’s DID.
4
Enforcement
Every skill invocation is checked against active SPTs before execution.
5
Revocation
SPTs can be manually revoked or auto-revoked when trust scores drop below
trust_floor.Automatic Revocation
SPTs are automatically revoked when:- Trust score drops below the SPT’s
trust_floorthreshold - Anomaly detected — behavioral drift triggers a PSI alert above 0.25
- Policy violation — the agent attempts a forbidden operation
- Expiration — the SPT’s
expclaim passes
Policy Bindings
SPTs can be bound to specific policies for fine-grained control:5-Stage Policy Pipeline
When a skill invocation occurs, the policy pipeline runs:- Parse — Extract action intent from the invocation request
- Validate — Schema-validate the policy rules against the request
- Enforce — Apply tool, model, and rate policies from active SPTs
- Log — Emit an
av.policy.evaluatetelemetry span - Report — Aggregate policy metrics per agent and skill
Enforcement Scopes
Violation Actions
Integration with SKILL.md
Skills can declare required policies in theiragentVault frontmatter:
requiredPolicies is invoked, the policy enforcer verifies that all required policies are bound and active before allowing execution.
MCP Policy Check
Theagentvault_check_policy MCP tool allows agents to pre-flight policy checks before execution: