An internal agent registry is the single artifact that turns “how many AI agents do we run?” from a guess into a query. It is not a platform purchase and not a governance programme. It is a table with eight columns — owner, scope, data touched, credentials held, model and version, kill path, last reviewed, next review due — and a standing 30-minute appointment once a quarter to keep it true.
The reason to build it now is that the counting problem has already escaped most organisations. Agents get stood up inside a workflow tool by a marketing manager, inside a repo by an engineer, inside a CRM by an admin who found the toggle. Each one holds credentials. Each one can act. And the surveys that try to measure the resulting fleet keep finding the same shape: adoption running well ahead of anybody’s ability to enumerate, let alone supervise, what has been deployed.
This guide is deliberately narrow. It gives you the column schema, a mapping from those plain-English columns to the field names in the Cloud Security Alliance’s draft registry spec, a timeboxed quarterly ritual, and an honest read of where the EU AI Act clock actually sits after the Digital Omnibus. For the enforcement machinery itself — who fines whom, under which article — see the enforcement and penalties guide. This post is the inventory, not the rulebook.
- 01The registry is eight columns, not a platform.Owner, scope, data touched, credentials held, model and version, kill path, last reviewed, next review due. A spreadsheet that is current beats a governance tool that is empty, and you can upgrade the schema later without redoing the work.
- 02Ownership is the column that does the work.One named human per agent, plus a named backup. Team aliases produce orphaned agents that nobody will switch off, because switching something off requires a person willing to own the consequence.
- 03Kill paths must be tested, not described.A row that says how you would stop an agent is a hypothesis. Two spot-checked kill paths per quarterly review turns it into evidence, and it is the only part of the ritual that reliably finds broken assumptions.
- 04The EU clock moved, but it did not stop.August 2, 2026 activated GPAI enforcement powers, prohibited-practice penalties and Article 50 transparency duties. The Digital Omnibus deferred stand-alone high-risk obligations to December 2, 2027 — roughly sixteen months, or five quarterly reviews, from this post.
- 05Total cost: two and a half hours before the deadline.Five reviews at 30 minutes each is 150 minutes of standing effort between now and December 2027. Compare that against reconstructing an agent inventory under incident conditions, with no owner column to call.
01 — The Counting ProblemNobody knows the number, and that is the finding.
Ask a mid-size company how many AI agents it operates and you will usually get a confident answer that is wrong in one direction: too low, because the answer counts the agents that went through procurement and misses the ones that were configured inside tools already paid for. That is the same failure mode shadow IT produced a decade ago, with a meaningful difference — shadow spreadsheets did not hold OAuth scopes or write to production systems.
The best public measurement of the gap comes from Gravitee’s State of AI Agent Security 2026 report, published February 4, 2026. It is a single vendor-run survey rather than a triangulated data set, so read the percentages as one report’s picture rather than settled fact. The shape it describes is nevertheless consistent: coverage and control lag deployment badly, while executive confidence runs ahead of both.
Agent-fleet control gaps · one report’s measurement
Source: Gravitee, State of AI Agent Security 2026 (published February 4, 2026). Single-report figures — not independently triangulated.Read the last two bars together and you have the entire argument for a registry. Eighty-two percent of executives believe their existing policies protect against unauthorised agent actions, in a sample where 47.1% of agents are actively monitored. The two figures count different things — executives in one case, agents in the other — so they do not subtract into a single spread. Read side by side, they still describe confidence running ahead of coverage, and that is not a policy problem. It is an inventory problem. Policy applies to things you have enumerated.
The forward pressure is the part worth planning around. Gartner research presented in April 2026 projects that the average global Fortune 500 enterprise will run more than 150,000 agents in production by 2028, up from fewer than 15 in 2025 — roughly four orders of magnitude in three years. Treat the specific figures as directional rather than precise; the operational point survives either way. A manual count that works at fifteen agents does not degrade gracefully. It stops working entirely, and it stops working without announcing itself.
02 — The TemplateEight columns, and what each one prevents.
Every column below exists because a specific failure happens without it. That is the test we apply when teams ask whether to add a ninth: name the incident the column prevents, or leave it out. A registry with eight columns that are all filled in beats a registry with twenty columns that are half empty, because half-empty rows train people to stop trusting the file.
The worked examples use an invented organisation at example.com. Fill your own version in a spreadsheet first. Migrate to a real system only when the spreadsheet is demonstrably too small — which, for most teams, is later than vendors would like.
| Column | What goes in the cell | What it prevents | Worked example |
|---|---|---|---|
| Identity and ownership | |||
| Owner | One named human who can answer for this agent, plus a named backup. Never a team alias. | Orphaned agents that stay running because nobody owns the decision to stop them. | Head of Support Ops (individual), backup Support Ops lead — not support@example.com |
| Scope | One sentence on what the agent is allowed to do, and one on what it must never do. | Scope creep by prompt edit — the agent quietly acquires a job nobody approved. | Drafts replies to inbound tickets. Never sends without a human click, never issues refunds. |
| Blast radius | |||
| Data touched | Every system it reads or writes, and the highest data class it can reach. | Discovering mid-incident that a read-only agent could also reach an HR export. | Ticket store (read plus write), billing records (read). Personal data in scope; no special categories. |
| Credentials held | Each key, OAuth scope and service account issued to this agent, where the secret lives, and its rotation interval. | Pooled keys that make one agent’s actions indistinguishable from a human’s in the audit log. | Own service account, two OAuth scopes, secret in the vault, rotates every 90 days |
| Change control | |||
| Model and version | The exact model identifier pinned in config, never an alias, plus the framework or runtime version. | Behaviour shifting under you when a provider rolls a “latest” alias forward. | Pinned model ID plus build SHA, recorded on the day it shipped |
| Kill path | The literal steps to stop this agent inside five minutes, and everyone who can execute them out of hours. | An incident where the fastest available response is to open a vendor support ticket. | Disable service account in IAM, revoke key, confirm queue drained. Two named on-call people. |
| Cadence | |||
| Last reviewed | The date a human last confirmed every cell above is still true. Blank counts as never. | A registry that looks complete and is eighteen months out of date. | 2026-08-04 |
| Next review due | Last reviewed plus one quarter, moved forward only at sign-off. | Reviews that get skipped because no row ever visibly goes overdue. | 2026-11-04 (quarterly) |
Two columns carry more weight than the rest. Owner is the one that decides whether the file is a living document or an archive: a team alias in that cell means nobody is accountable, and in practice nobody reviews. Credentials held is the one that decides whether an incident is survivable, and it is the column most teams fill in last. If you need the deeper treatment of how agent credentials should be scoped and issued in the first place, see the non-human identity playbook — the registry records the decision, it does not make it for you.
03 — Standards On-RampYour spreadsheet, mapped to the CSA draft field names.
The Cloud Security Alliance published a draft Agent Registry Specification v1 on March 27, 2026, defining a schema for agent-profile records. It is more elaborate than what a small team needs on day one — identifiers expressed as SPIFFE URIs, explicit permission boundaries, behavioural fingerprints — but it is the clearest public statement of where registry schemas are heading.
Rather than inventing columns from nothing, we mapped ours onto it. Start with the left-hand column in a spreadsheet. When you outgrow that, you are not migrating to a new idea, only to a machine-readable expression of the same one.
owningOrganization · ownerEmailcapabilities · permissionBoundariespermissionBoundaries · deploymentContextagentId (SPIFFE URI) · toolAccessListfoundationModelId/Version · frameworkId/Versionstatus · behavioralFingerprintsregistrationTimestamp · lastModifiedTimestamp| Our column | Nearest CSA v1 field | What the upgrade buys |
|---|---|---|
| Owner | owningOrganization · ownerEmail | Ownership becomes machine-checkable, so alerts and review reminders route themselves instead of relying on someone remembering who built it. |
| Scope | capabilities · permissionBoundaries | Scope stops being prose in a cell and becomes a policy object — scope limits, data-access constraints and action prohibitions expressed once. |
| Data touched | permissionBoundaries · deploymentContext | The same data constraint can be read by a gateway at runtime rather than re-interpreted by a human during an incident review. |
| Credentials held | agentId (SPIFFE URI) · toolAccessList | Each agent gets a cryptographic identity and an explicit list of authorised tools and MCP servers, instead of sharing a key with three siblings. |
| Model and version | foundationModelId/Version · frameworkId/Version | A pinned version or commit hash you can diff after an incident, which is what turns “it started behaving differently” into a dated change. |
| Kill path | status · behavioralFingerprints | Revocation becomes a state change — active, suspended, deprecated, revoked — that other systems can observe rather than a runbook only one person has read. |
| Last reviewed | registrationTimestamp · lastModifiedTimestamp | Freshness you can query. Overdue rows surface in a report instead of being spotted by whoever happens to scroll far enough. |
| Next review due | No direct equivalent in the draft | The cadence stays yours. The spec describes the record; it does not tell you how often a human has to look at it, which is the part teams actually skip. |
04 — The RitualThirty minutes, once a quarter, with a stopwatch.
Most published governance guidance is program-shaped: establish policies, define lifecycle, monitor and remediate, train employees. All sensible, all unrunnable for a team of nine people with no governance function. The compression below takes the inventory and lifecycle pieces of that advice and turns them into a single recurring appointment with a hard time budget.
The time budget matters more than it looks. A review with no ceiling becomes a meeting, a meeting becomes a project, and a project gets deferred. Thirty minutes fits in the gaps of a normal week, which is the only reason it survives to the second quarter.
| Step | Minutes | Who runs it | What done looks like |
|---|---|---|---|
| Reconcile · 11 minutes | |||
| Pull today’s registry export | 3 | Registry owner | One file exported during the session — not a link to a page someone last edited in spring. |
| Reconcile against the systems of record | 8 | Registry owner with IT or identity | Every service account, key and platform-console agent in the identity provider either appears as a row or is switched off. |
| Verify · 12 minutes | |||
| Spot-check two kill paths end to end | 8 | Owner of each agent drawn | Two agents picked at random were actually stopped and restarted — not a description of how you would stop them. |
| Flag every row unreviewed for over a quarter | 4 | Registry owner | Overdue rows are visibly marked and assigned to a named person, not to a team. |
| Close · 7 minutes | |||
| Retire or re-scope what no longer earns its row | 5 | Named owners | Redundant and abandoned agents are switched off inside the session, not added to a backlog. |
| Sign off and set the next date | 2 | Registry owner | One dated line in the log: who signed, what changed, when the next review falls. |
The eight minutes on kill paths are the ones people try to cut, and they are the ones that find real defects. Testing two agents per quarter is not thorough coverage; it is a sampling method. If both samples pass four quarters running, your runbooks are probably accurate. If the first sample fails, you have learned something no amount of documentation review would have surfaced. The sign-off line at the end is what makes the whole thing auditable later — pair it with proper audit-trail design for agents so the registry and the runtime log tell the same story.
05 — The Compliance ClockWhat August 2 actually turned on — and what it deferred.
This is where most agent-governance writing goes wrong, so it is worth being precise. On August 2, 2026 the EU AI Office’s enforcement powers over general-purpose AI providers became exercisable, penalties for prohibited practices under Article 5 became exercisable, and the Article 50 transparency obligations took effect. Those are live obligations for in-scope deployments today.
What did not take effect on that date is the tier most compliance plans were built around. The Digital Omnibus on AI — Regulation (EU) 2026/1744, in force since July 27, 2026 — deferred stand-alone high-risk obligations under Annex III to December 2, 2027, and embedded-product obligations under Annex I to August 2, 2028. Any summary telling you that high-risk duties became enforceable in August 2026 is describing a timeline that was changed a week before it arrived.
Two consequences follow, and they pull in opposite directions. The first: if you were racing a high-risk deadline, you have roughly sixteen more months than you thought. The second, and the reason this section exists in a registry post: Article 50 transparency applies now, and you cannot disclose what you have not enumerated. Knowing which of your agents generate synthetic content or interact directly with people is a precondition of complying with a duty that is already in force, not a preparation for one that is coming.
Here is the planning arithmetic worth writing on a whiteboard. December 2, 2027 is about sixteen months from this post. A quarterly registry review gives you five sittings before that date arrives: November 2026, February 2027, May 2027, August 2027 and November 2027. At thirty minutes each that is two and a half hours of standing effort in total. If your organisation ends up with Annex III systems in scope, five reviews of accumulated, dated, owner-attributed inventory is a materially different starting position than a scramble that begins in late 2027 — and the oversight expectations that come with regulated deployments are covered in the regulated-industries oversight patterns.
06 — What The Standards AskInventory is already the first thing they ask for.
You do not need a regulator to justify a registry, because the two most widely referenced AI governance frameworks both start in the same place. The NIST AI Risk Management Framework, published in January 2023, carries an explicit inventory subcategory under its GOVERN function. It is one sentence, and it is the whole brief.
“Mechanisms are in place to inventory AI systems and are resourced according to organizational risk priorities.”— NIST AI Risk Management Framework, subcategory GOVERN 1.6
Note the second clause. NIST does not ask for a complete inventory of everything at equal depth; it asks that the mechanism be resourced according to risk priority. That is permission to keep a thin row for a low-risk internal summariser and a thick one for an agent with write access to customer records — which is exactly how small teams should use the eight columns.
Inventory subcategory
Asks for mechanisms to inventory AI systems, resourced by risk priority. Voluntary framework, but the closest thing to a common reference for what an inventory is supposed to do.
AI management system
The first international AI management-system standard, and certifiable. It requires an AI system inventory as part of the management-system scope — if you intend to certify, the registry is not optional groundwork, it is in scope.
Agent Registry Specification
A draft schema for agent-profile records: identity, framework and model versions, tool access list, permission boundaries, owner, deployment context and lifecycle status. The most detailed open field set available.
We are deliberately not quoting a clause number for the ISO 42001 inventory requirement. Public excerpts of the standard do not make the precise citation verifiable without the paid text, and an invented clause reference is worse than none — if you are pursuing certification, your auditor will point you at the exact wording. The broader policy layer that sits above the registry, including approval gates and access reviews, is covered separately in the agent governance framework.
07 — Failure ModesThree ways a registry rots without anyone noticing.
A registry does not usually fail loudly. It fails by staying plausible while ceasing to be true, which is worse than not having one — an inaccurate inventory produces false confidence in exactly the group that would otherwise be nervous enough to check.
The stale row
Rows get created at launch and never revisited. Nothing in the file signals age, so a row written eighteen months ago reads exactly like one written last week. The fix is structural: an explicit next-review-due date that visibly goes overdue, and a review whose first output is the overdue list.
The shared key
When several agents authenticate with one pooled credential, the credentials column stops distinguishing them and the audit log cannot attribute an action to a specific agent. The registry looks fine; its most important column has quietly become decorative. One identity per row, or the row is not real.
The agent that spawns agents
Just over one in four deployed agents in that sample can create and task other agents. A static inventory of top-level deployments cannot see the ephemeral children, so the registry undercounts the fleet by design. Register the spawner, record its ceiling, and record where its children inherit credentials from.
The third mode is the one that will get harder rather than easier. Every serious agent framework now ships some form of delegation, so the share of agents capable of spawning others is more likely to rise than fall. That points at a structural conclusion: a registry built purely as a manual document has a shelf life. The plain-English version is right for the first year, and the reason to name columns after the emerging schema conventions is that the second year will want them generated from your identity provider rather than typed by a person.
08 — Getting StartedWhere to start depends on what you already have.
Four common starting positions, and the honest first move for each. None of them begins with buying software.
A spreadsheet, this week
Create the eight columns, fill them for everything you know about, and book the first quarterly review before you close the file. Missing rows are fine on day one; a missing review date is not.
Discovery before design
Do not design a schema for a fleet you cannot see. Start from the identity provider, cloud IAM and each platform console, list every service account and API key that is not obviously human, and work backwards to what it belongs to.
Registry plus a named oversight owner
Add the human-oversight expectations that regulated deployments carry on top of the eight columns, and keep dated review evidence from the first quarter onward. The Annex III deferral to December 2027 is time to build the record, not a reason to defer building it.
Machine-readable from day one
A spreadsheet will not survive this scale. Name your fields after the CSA draft conventions immediately, generate rows from the identity provider rather than typing them, and keep the quarterly ritual as the human checkpoint on top of automated discovery.
If you want a broader diagnostic before committing to a cadence, the 100-point agent-stack readiness checklist covers the one-time audit that sits upstream of this; the registry is what keeps its findings true six months later. And if the honest answer to “who owns this?” is nobody, that is the actual first task — our AI and digital transformation engagements typically open with exactly this inventory-and-ownership pass, because every later decision depends on it.
09 — ConclusionThe cheapest governance artifact you will ever build.
A spreadsheet that is current beats a platform that is empty.
Eight columns, one named human per row, thirty minutes a quarter. That is the entire intervention, and it is deliberately small enough that a team without a governance function can actually run it. The reason to keep it small is that every heavier version of this we have watched teams attempt has died in the same place — not at design, but at the second review.
The compliance timing is more forgiving than the headlines suggested. Stand-alone high-risk obligations moved to December 2, 2027, which is roughly sixteen months and five quarterly reviews away. But Article 50 transparency is live now, and the transparency duty and the inventory problem are the same problem wearing different clothes: you cannot disclose, supervise, or switch off a system you have not written down.
One prediction worth holding loosely. The direction of travel in the published schemas — cryptographic agent identity, pinned model versions, explicit tool-access lists, lifecycle status as a queryable state — points at registries that are generated rather than maintained by hand. That is a good future and it is not this year’s problem. Start with the spreadsheet, name the columns the way the standards name them, and give yourself the option.