
Playbook
A practical playbook for discovering, normalizing, and owning every agent across AI platforms, SaaS, cloud, and code.
Building an enterprise agent inventory starts with a single, slightly uncomfortable assumption: agents will appear in more places than you expect. An inventory is the system of record that turns that sprawl into something you can reason about. This playbook is about how to actually build one.
The challenge is that agents do not live in one tidy directory. A data-analytics team may stand one up inside a notebook platform. A marketing team may authorize a third-party agent through an OAuth grant nobody else sees. A platform team may deploy one into a Kubernetes cluster as a service account. They span AI platforms, SaaS tools, automation systems, cloud environments, code repositories, internal apps, developer workstations, and data platforms. Some are built in-house. Many are third-party agents authorized by individual employees with a single click.
A good inventory is not a spreadsheet you fill out once. It is built in five repeatable steps—discovery, normalization, ownership, permissions, and lifecycle state—and then kept alive. The rest of this post walks through each step in order.
The goal: a living map of every autonomous actor in the enterprise—what it is, who owns it, what it can touch, and whether it is still allowed to operate. That map becomes the foundation for authorization, monitoring, audit trails, lifecycle management, and compliance.
You cannot inventory what you cannot see. Discovery is the work of finding agents across the many surfaces where they quietly come into existence. No single signal is complete, so the practical approach is to pull from several at once and treat each as a partial view.
Consider a procurement team that authorizes a vendor-supplied agent to read purchase orders and draft supplier emails. To finance, it looks like a helpful add-on. From a discovery standpoint, it shows up as an OAuth grant against the procurement SaaS, an outbound integration to a mail API, and—if nobody asked—nothing in any official record. Three signals, one previously invisible agent. Discovery is the act of connecting those dots before an incident does it for you.
Discovery produces a messy pile of signals from systems that all describe agents differently. Normalization is where you collapse that into one consistent schema so that an agent found in a code repo and an agent found via an OAuth grant are described the same way. Without it, the inventory is just a list of links you cannot query.
At minimum, every record should capture the same core fields:
{
"name": "supplier-comms-assistant",
"owner": "procurement-ops",
"technical_owner": "platform-team",
"purpose": "Draft supplier emails from open purchase orders",
"connected_systems": ["coupa", "outlook-graph"],
"permissions": ["po:read", "mail:send"],
"credentials": ["svc-procure-agent"],
"users": ["procurement-ops"],
"lifecycle_state": "production",
"risk_classification": "medium"
}The exact shape matters less than the consistency. Once every agent—whether it is a recruiting-screener in the HRIS or a revenue-forecast job in the data warehouse—maps to the same fields, you can finally ask portfolio-level questions: which agents can send external email, which touch regulated data, which have no owner.
Ownership is the field people skip and later regret. Every agent should have a business owner—the person accountable for why it exists and whether it should continue. Many should also have a technical owner who understands how it runs and can change or stop it.
Without ownership, basic questions have no answer. When a legal-intake agent starts mis-routing privileged documents, who reviews its access? When a marketing automation agent keeps emailing a suppressed segment, who pauses it? When the engineer who built a data-pipeline agent leaves the company, who inherits it? An ownerless agent does not become safer over time. It becomes an orphaned access path that nobody is watching.
A useful rule: if an agent has no business owner, it should not be in production. Discovery can find an ownerless agent, but only a named owner can decide what happens to it next.
The inventory should record permissions at a resolution that is actually useful for risk decisions. It is not enough to note that an agent is connected to the CRM or connected to the data lake. Connection is a binary. Risk lives in the verbs.
The inventory should show what an agent can actually do against each system:
The difference is not academic. A sales-ops agent with read on the CRM is a reporting convenience. The same agent with export and send can quietly exfiltrate a customer list. An IT-operations agent with read on cloud config is harmless; the same agent with delete can take down production. Capturing the verbs is what lets you separate the two without inspecting every agent by hand.
Lifecycle state is the field that stops prototypes from silently becoming production systems. Every agent should be tagged with where it sits in its life:
The common failure mode is a quiet promotion that never happened on paper. A finance team builds an experimental agent to reconcile a few invoices, it works well, and six months later it is reconciling thousands of invoices a day with write access to the ledger—still tagged experimental and never reviewed. Lifecycle state, kept honest, forces that promotion to be a decision rather than an accident.
The most important property of an agent inventory is that it is not static. Agents change. Permissions expand. Owners leave. Workflows evolve. New integrations get added on a Friday afternoon. An inventory that was accurate at launch and never touched again is worse than no inventory at all, because it creates false confidence—a clean-looking record that no longer matches reality.
The way to keep it honest is to combine two forces that are individually insufficient:
Automation without review produces a haystack of unexplained findings. Review without automation produces a confident document that silently rots. Together, they produce an inventory you can actually trust.
Most teams do not need to perfect all five steps before getting value. A pragmatic sequence works better than a big-bang rollout:
The first pass will be uncomfortable. Expect to find agents nobody remembers authorizing, agents with permissions far broader than their purpose, and agents whose owner left two reorgs ago. That discomfort is the inventory doing its job: it is the difference between assuming you are governed and being able to show it.
Built well, an agent inventory is a living map of enterprise agent activity—assembled from automated discovery, organized through a consistent schema, anchored by clear ownership, sharpened by action-level permissions, and kept honest by lifecycle state and continuous review.
Everything downstream depends on it. Authorization needs to know what an agent should be allowed to do. Monitoring needs to know what normal looks like. Audit trails need to know which agent acted and on whose behalf. Lifecycle management needs to know what to retire. Compliance needs evidence that all of this is governed. None of those are possible without a current, trustworthy record underneath.
You do not build an agent inventory to file it away. You build it because it is the one record that every other part of agent operations quietly depends on.