Agent Manifest schema
The declared authority document for one agent: which tools it may call, which data classes it reads/writes, which agents it may delegate to, and its hop budget. Immutable and versioned — every submission creates a new version; nothing is ever edited in place.
apiVersion: agentic-auth/v1
kind: AgentManifest
metadata:
agent: kb-search-agent # ^[a-z0-9][a-z0-9-]{0,62}$
# version: server-assigned — MUST be absent on create
spec:
tools:
- ref: mcp://kb.internal/search # ^mcp://[^/]+/.+
data_classes: [kb.public, kb.internal]
privileged: false
data_classes:
reads: [kb.public, kb.internal]
writes: []
downstream_agents:
- ref: agent://ledger-agent # ^agent://[a-z0-9][a-z0-9-]{0,62}$
max_hop_depth: 2
hop_budget: 4 # 1-16
Cross-field validation (enforced at parse time, before any network call)
- Every
data_classa tool declares must appear inspec.data_classes.readsor.writes— otherwise the manifest itself is invalid, independent of reconciliation. - Every
downstream_agents[].max_hop_depthmust be<= spec.hop_budget. metadata.versionmust be absent on create — it's server-assigned and echoed back on read.
Server-side status (after reconciliation)
| Status | Meaning |
|---|---|
reconciled | Declaration matched discovered capabilities |
needs_review | A tool's discovery endpoint was unreachable, no override given |
rejected | A hard conflict — see Reconciliation Report |