The Agent Registry is the central inventory of all AI agents deployed within an organization. Each agent entry documents its identity, capabilities, constraints, governance parameters, and designated human oversight.
The registry serves as the foundation for:
- Accountability — Every agent has a designated human owner
- Compliance — Regulators can inspect which agents operate and under what rules
- Risk management — Organizations maintain visibility over their agent landscape
- Audit — Complete history of agent configuration changes
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "ADP Agent Registry Entry",
"type": "object",
"required": [
"agent_id", "name", "description", "autonomy_level",
"owner", "status", "created_at"
],
"properties": {
"agent_id": {
"type": "string",
"pattern": "^agent-[a-z0-9-]+$",
"description": "Unique, human-readable agent identifier"
},
"name": {
"type": "string",
"description": "Display name of the agent"
},
"description": {
"type": "string",
"description": "Detailed description of what the agent does"
},
"version": {
"type": "string",
"description": "Agent version (semver recommended)"
},
"status": {
"type": "string",
"enum": ["draft", "testing", "active", "suspended", "decommissioned"],
"description": "Current lifecycle status"
},
"autonomy": {
"type": "object",
"required": ["level"],
"properties": {
"level": {
"type": "string",
"enum": ["A1", "A2", "A3", "A4", "A5"]
},
"allowed_decisions": {
"type": "array",
"items": { "type": "string", "enum": ["D1", "D2", "D3", "D4"] }
},
"max_risk_level": {
"type": "string",
"enum": ["R1", "R2", "R3", "R4"]
},
"self_modification_allowed": {
"type": "boolean",
"default": false
}
}
},
"owner": {
"type": "object",
"required": ["email", "name"],
"properties": {
"email": { "type": "string", "format": "email" },
"name": { "type": "string" },
"department": { "type": "string" },
"role": { "type": "string" }
}
},
"escalation_chain": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": { "type": "string", "format": "email" },
"name": { "type": "string" },
"role": { "type": "string" }
}
},
"description": "Ordered list of humans for escalation"
},
"capabilities": {
"type": "object",
"properties": {
"tools": {
"type": "array",
"items": { "type": "string" },
"description": "MCP tools/APIs the agent can access"
},
"data_access": {
"type": "array",
"items": {
"type": "object",
"properties": {
"source": { "type": "string" },
"access_level": {
"type": "string",
"enum": ["read", "write", "admin"]
},
"data_classification": {
"type": "string",
"enum": ["public", "internal", "confidential", "restricted"]
}
}
}
},
"can_delegate_to": {
"type": "array",
"items": { "type": "string" },
"description": "Other agent_ids this agent can delegate to"
},
"external_access": {
"type": "array",
"items": { "type": "string" },
"description": "External services/channels the agent can reach"
}
}
},
"constraints": {
"type": "object",
"properties": {
"operating_hours": {
"type": "object",
"properties": {
"start": { "type": "string" },
"end": { "type": "string" },
"timezone": { "type": "string" }
}
},
"rate_limits": {
"type": "object",
"properties": {
"decisions_per_hour": { "type": "integer" },
"external_actions_per_hour": { "type": "integer" }
}
},
"financial_limits": {
"type": "object",
"properties": {
"max_transaction_amount": { "type": "number" },
"max_daily_total": { "type": "number" },
"currency": { "type": "string" }
}
},
"prohibited_actions": {
"type": "array",
"items": { "type": "string" }
}
}
},
"compliance": {
"type": "object",
"properties": {
"applicable_regulations": {
"type": "array",
"items": { "type": "string" },
"description": "Regulatory identifiers from ADP regulatory mapping"
},
"risk_assessment_date": {
"type": "string",
"format": "date"
},
"next_review_date": {
"type": "string",
"format": "date"
},
"eu_ai_act_risk_class": {
"type": "string",
"enum": ["minimal", "limited", "high", "unacceptable"]
},
"impact_assessment_ref": {
"type": "string",
"description": "Reference to impact assessment document"
}
}
},
"technical": {
"type": "object",
"properties": {
"model_provider": { "type": "string" },
"model_id": { "type": "string" },
"framework": {
"type": "string",
"description": "Agent framework (CrewAI, LangGraph, AutoGen, custom)"
},
"mcp_servers": {
"type": "array",
"items": { "type": "string" },
"description": "Connected MCP servers"
},
"observability": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"description": "Langfuse, OpenTelemetry, LangSmith, etc."
},
"trace_endpoint": { "type": "string" }
}
}
}
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"change_history": {
"type": "array",
"items": {
"type": "object",
"properties": {
"timestamp": { "type": "string", "format": "date-time" },
"changed_by": { "type": "string" },
"field_changed": { "type": "string" },
"old_value": {},
"new_value": {},
"reason": { "type": "string" }
}
}
}
}
}{
"agent_id": "agent-billing-001",
"name": "Billing Reconciliation Agent",
"description": "Reconciles monthly billing discrepancies by comparing invoice data with payment records and flagging anomalies for review",
"version": "1.2.0",
"status": "active",
"autonomy": {
"level": "A3",
"allowed_decisions": ["D1", "D2"],
"max_risk_level": "R2",
"self_modification_allowed": false
},
"owner": {
"email": "j.tremblay@company.com",
"name": "Julie Tremblay",
"department": "Finance",
"role": "Finance Controller"
},
"escalation_chain": [
{ "email": "j.tremblay@company.com", "name": "Julie Tremblay", "role": "Finance Controller" },
{ "email": "m.gagnon@company.com", "name": "Marc Gagnon", "role": "CFO" }
],
"capabilities": {
"tools": ["query_billing_db", "compare_invoices", "flag_anomaly", "generate_report"],
"data_access": [
{ "source": "billing_database", "access_level": "read", "data_classification": "confidential" },
{ "source": "customer_records", "access_level": "read", "data_classification": "restricted" }
],
"can_delegate_to": [],
"external_access": []
},
"constraints": {
"operating_hours": { "start": "06:00", "end": "22:00", "timezone": "America/Montreal" },
"rate_limits": { "decisions_per_hour": 100, "external_actions_per_hour": 0 },
"financial_limits": { "max_transaction_amount": 0, "max_daily_total": 0, "currency": "CAD" },
"prohibited_actions": ["external_communication", "data_deletion", "payment_processing"]
},
"compliance": {
"applicable_regulations": ["loi25_art12", "sox_section404"],
"risk_assessment_date": "2026-01-15",
"next_review_date": "2026-07-15",
"eu_ai_act_risk_class": "limited",
"impact_assessment_ref": "IA-2026-FIN-003"
},
"technical": {
"model_provider": "Anthropic",
"model_id": "claude-sonnet-4-5-20250929",
"framework": "custom",
"mcp_servers": ["billing-mcp", "reporting-mcp"],
"observability": {
"provider": "Langfuse",
"trace_endpoint": "https://langfuse.company.com"
}
},
"created_at": "2026-01-10T09:00:00-05:00",
"updated_at": "2026-02-20T14:00:00-05:00",
"change_history": [
{
"timestamp": "2026-02-01T10:00:00-05:00",
"changed_by": "j.tremblay@company.com",
"field_changed": "autonomy.max_risk_level",
"old_value": "R1",
"new_value": "R2",
"reason": "Agent now processes customer payment data for reconciliation"
}
]
}draft → testing → active → suspended → decommissioned
↑ ↓
└──────────┘ (can be reactivated)
| State | Description | Governance |
|---|---|---|
| draft | Agent is being designed, not yet operational | No decisions permitted |
| testing | Agent operates in sandbox with test data | All decisions logged, no real effects |
| active | Agent is operational in production | Full governance applies |
| suspended | Agent is temporarily disabled | All decisions blocked, investigation possible |
| decommissioned | Agent permanently retired | Traces retained per retention policy |
State transitions require:
- Approval from the designated owner
- Audit log entry documenting the change
- For
active→ any other state: notification to escalation chain