Your Kubernetes dashboard says there are 47 workloads running.
Your AI agent inventory says there are 39 agents.
So which number is right?
The uncomfortable answer is: possibly neither.
Kubernetes knows about pods, deployments, services, namespaces, and containers. An AI agent inventory knows about agents, owners, models, frameworks, business functions, and lifecycle status.
Neither view, on its own, tells you whether every AI agent running in your environment is known, approved, owned, and accounted for.
That is why enterprises need to reconcile their Kubernetes reality against their AI agent inventory.
The goal isn’t to make Kubernetes another AI registry. It is to compare two sources of truth and investigate what doesn’t match.
Kubernetes tells you what is running. Your agent inventory tells you what should be running.
Think about a typical enterprise AI environment.
An engineering team deploys an agent into a Kubernetes cluster. Another team runs a customer-support agent in a different namespace. A developer tests a LangGraph workflow in a staging cluster. Someone spins up an agent temporarily for an internal experiment.
Six weeks later, the platform team looks at its AI inventory.
Only some of those agents are there.
This is where agent discovery becomes different from traditional infrastructure discovery.
| Kubernetes can show you | AI agent inventory should show you |
|---|---|
| Pods | Agent identity |
| Deployments | Agent owner |
| Namespaces | Business function |
| Container images | Framework |
| Services | Model/provider |
| Resource usage | Access scope |
| Cluster and namespace | Lifecycle status |
| Deployment metadata | Governance status |
Kubernetes gives you the infrastructure footprint.
Your agent inventory gives that footprint meaning.
The reconciliation process connects the two.
Step 1: Establish your agent inventory as the expected state
Before comparing anything, you need a baseline.
Your agent inventory should contain every agent your organization knows about, whether it is running in production, staging, development, or another environment.
At minimum, capture:
| Field | Example |
|---|---|
| Agent ID | claims-review-v2 |
| Owner | Insurance Automation Team |
| Environment | Production |
| Framework | LangGraph |
| Model | GPT-5 |
| Business function | Claims |
| Deployment target | Kubernetes |
| Namespace | claims-prod |
| Status | Approved |
| Last verified | Sep 10, 2026 |
The important part is identity.
Two deployments may have completely different Kubernetes names while representing the same logical agent. Conversely, two workloads may have similar names while representing completely different agents.
That means reconciliation cannot rely on pod names alone.
Lyzr’s Agent Registry takes this approach by treating agent identity, ownership, version, framework, and access scope as part of the agent record rather than leaving them buried inside infrastructure metadata.
Step 2: Export the Kubernetes reality
Now move to the other side of the comparison.
Pull the workloads running across your Kubernetes clusters.
For every relevant workload, collect enough metadata to answer:
What is this workload, where does it run, and what does it belong to?
A useful Kubernetes-side dataset might look like this:
| Kubernetes field | Why it matters |
|---|---|
| Cluster | Identifies the environment |
| Namespace | Helps map organizational ownership |
| Deployment | Identifies the application |
| Labels | Useful for agent identity |
| Image | Helps identify runtime |
| Service | Identifies exposed workloads |
| Environment variables | May reveal model/provider configuration |
| Annotations | Often contain deployment metadata |
| Creation/update time | Helps identify stale workloads |
You don’t need to modify the workloads to do this.
A read-only scan is usually the safest starting point because discovery should not require changing production infrastructure.
The scanner’s job is to observe.
It should not deploy, restart, mutate, or delete anything.
Step 3: Normalize both inventories before comparing them
This is where many reconciliation projects go wrong.
Suppose your agent inventory says:
Claims Review Agent
But Kubernetes contains:
claims-review-prod-v2-7d89f6c4
A literal string comparison says they are different.
A normalized comparison asks whether they share other signals:
- namespace
- labels
- annotations
- image
- deployment metadata
- service name
- owner metadata
- repository
- model configuration
- framework
- environment
You can think of the matching process like this:
Kubernetes workload → identity signals → normalized agent identity → inventory record
The more signals you can correlate, the more confident your match becomes.
Step 4: Create a reconciliation matrix
Once both datasets are normalized, compare them.
The result should not simply be “matched” or “unmatched.”
You want to understand why something does not match.
| Kubernetes workload | Agent inventory | Result | Action |
|---|---|---|---|
claims-review-v2 | claims-review-v2 | ✅ Match | Continue monitoring |
fraud-detection-prod | fraud-detection-prod | ⚠️ Owner mismatch | Verify ownership |
support-agent-test | — | ❌ Not registered | Investigate |
| — | finance-close-agent | ⚠️ Inventory only | Verify deployment status |
claims-review-old | claims-review-v1 | ⚠️ Version drift | Confirm retirement |
research-agent-12 | — | ❌ Unknown | Investigate before approval |
This is where the exercise becomes useful.
You are no longer asking:
“How many AI agents do we have?”
You’re asking:
“Which agents running in our infrastructure don’t reconcile with what we believe exists?”
That is a much more actionable question.
Step 5: Classify the gaps
Not every mismatch means someone has deployed shadow AI.
Some mismatches are normal.
A staging deployment might not appear in the production inventory. An old Kubernetes deployment may simply be waiting for cleanup. An agent may have been renamed without updating its registry record.
So classify the gaps before escalating them.
| Gap type | What it could mean | Priority |
|---|---|---|
| Unknown workload | Potential unregistered agent | 🔴 High |
| Missing owner | Ownership gap | 🔴 High |
| Wrong environment | Deployment drift | 🟠 Medium |
| Old version running | Retirement/version drift | 🟠 Medium |
| Inventory-only agent | May be offline or undeployed | 🟡 Low |
| Metadata mismatch | Registry needs updating | 🟡 Low |
This distinction matters.
Otherwise, your discovery system quickly becomes a list of alerts nobody wants to investigate.
What should happen when an agent doesn’t reconcile?
This is the point where reconciliation becomes a governance workflow rather than a reporting exercise.
For every mismatch, define a path.
Unknown agent detected → identify owner → validate purpose → register → evaluate → approve or retire
For example:
A workload called
pricing-agent-prodappears in Kubernetes.
Your inventory has no corresponding record.
The platform team checks the deployment metadata and discovers that it belongs to the pricing team. The team confirms it is an AI agent using an external model provider.
Now the question isn’t simply “Why wasn’t it in the inventory?”
The bigger questions are:
- Who owns it?
- What can it access?
- Which model does it use?
- Is it approved for production?
- Has it been evaluated?
- Is it still needed?
- What happens if it fails?
That is why agent discovery and agent governance need to work together.
Lyzr describes this broader approach through an AI agent governance framework that connects identity, ownership, access controls, evaluation, and runtime monitoring.
Reconciliation should become continuous, not a quarterly audit
A spreadsheet comparison done once a quarter won’t keep up with dynamic Kubernetes environments.
Agents can be deployed, scaled, replaced, or removed between audits.
The key is that the inventory should reflect the current state, not the state someone documented months ago.
A useful reconciliation cadence might look like this:
| Signal | Recommended check |
|---|---|
| New workload | Detect immediately or near real time |
| Agent metadata | Reconcile daily |
| Ownership | Verify on deployment/change |
| Version | Track continuously |
| Retired workloads | Detect automatically |
| Inventory completeness | Review regularly |
The exact cadence depends on your environment, but the principle stays the same:
Your inventory should move at the speed of your infrastructure.
What a healthy reconciliation process looks like
A mature setup should eventually answer five questions without a manual investigation:
1. What AI agents are running?
Every relevant production workload should map to an identifiable agent.
2. Who owns them?
Every agent should have an accountable owner or team.
3. Where are they running?
Cluster, namespace, environment, and deployment status should be visible.
4. Are they approved?
An agent should have a known governance state.
5. Has anything changed?
New deployments, version changes, ownership changes, and unexpected workloads should surface automatically.
If you can’t answer these questions, your agent inventory is probably describing your AI estate rather than actually representing it.
Kubernetes reconciliation is one piece of a much bigger agent discovery problem
Kubernetes is an important source of truth, but it isn’t the entire AI estate.
Agents can also appear in:
- SaaS platforms
- developer environments
- cloud services
- notebooks
- internal applications
- laptops and edge environments
- third-party AI products
That is why an enterprise agent inventory cannot depend entirely on Kubernetes APIs.
Kubernetes reconciliation answers:
“What AI workloads are running in our clusters?”
Enterprise agent discovery needs to answer:
“Where are all our agents, regardless of where they run?”
That broader approach is central to Lyzr OpenController, which is designed to discover agents, models, tools, data, and workflows across different environments and bring them into one control layer.
The goal isn’t perfect inventory. It’s closing the unknowns.
Your first reconciliation exercise probably won’t produce a clean 100% match.
That’s okay.
The useful output is the gap.
Maybe you discover 12 workloads that aren’t registered.
Maybe three have no clear owner.
Maybe five are old versions that were supposed to be retired.
Maybe one is running in production even though its inventory record says staging.
Those findings are more valuable than another dashboard showing “47 agents.”
Because now you know where to look.
A practical reconciliation checklist
Use this as a starting point:
| Check | Done? |
|---|---|
| Build a centralized agent inventory | ☐ |
| Export Kubernetes workload metadata | ☐ |
| Normalize agent identities | ☐ |
| Match workloads to inventory records | ☐ |
| Identify unknown workloads | ☐ |
| Validate ownership | ☐ |
| Check environment and version drift | ☐ |
| Review unregistered agents | ☐ |
| Automate recurring reconciliation | ☐ |
| Connect discovery to governance | ☐ |
The real measure of success isn’t how many agents you can count.
It’s how few unknown agents remain after the count.
Because once AI agents become part of production infrastructure, visibility can’t stop at the cluster.
Kubernetes tells you what is running. Your agent inventory tells you what you know. Reconciliation tells you what you’re missing.
Book A Demo: Click Here
Join our Slack: Click Here
Link to our GitHub: Click Here


