See all blogs

Why Observability Isn't Enough for AI Agents

Salia Nahshal
Salia NahshalDesign Engineer
Why Observability Isn't Enough for AI Agents

Why Observability Isn't Enough for AI Agents

Every time a new generation of software emerges, we inherit the tools and assumptions of the generation before it. AI agents are no exception.

Almost every enterprise building agents is investing in observability right now: traces, dashboards, logs, monitoring, because that's how we've learned to build reliable software. When something goes wrong, we inspect the evidence, identify the failure, and fix it. It's become one of the defining disciplines of modern software engineering.

But AI agents force a simple question: what if the most important failures aren't visible in the logs?

The failures that don't show up

This comes up in nearly every conversation I have with engineering teams building production AI. They aren't struggling to collect traces or monitor latency. Most of them solved those problems a long time ago. They're asking something harder: "How do we know our agent is actually ready before users interact with it?"

Traditional software behaves deterministically. Same inputs, same outputs. When it breaks, there's usually a clear cause: a failed API, an exception, a timeout, an unavailable dependency.

AI agents don't fail that way. Sometimes they choose the wrong tool. Sometimes they misunderstand what the user is trying to accomplish. Sometimes they lose track of context halfway through a conversation. Sometimes they confidently produce an answer that looks reasonable but quietly violates a company policy.

From the infrastructure's perspective, everything worked. Every request completed. Every trace looks healthy.

Only the user knows something went wrong.

We've been asking the wrong question

For years we've asked how to observe AI systems after deployment. The better question is how to understand their behavior before deployment. Those aren't the same thing.

Observability is genuinely valuable. It tells us what happened, helps us investigate incidents, identify regressions, and understand production behavior. Every serious AI team needs it. But by the time a trace exists, someone has already interacted with your agent. Someone has already received poor advice. Someone has already abandoned a workflow. Someone has already lost confidence.

For traditional software, that tradeoff was acceptable — most failures were rare and easy to diagnose.

AI agents introduce a different category of failure. They aren't infrastructure problems. They're judgment problems.

A taxonomy of behavioral failures

Talking to enterprise teams over the past year, the same four failure modes come up again and again, none of which show up in a dashboard:

Tool errors. The agent picks the wrong tool, or the right tool with the wrong parameters. Every call completes successfully. The user still gets the wrong answer.

Intent errors. The agent solves a problem the user didn't ask about. The response is fluent, accurate, and useless.

Context errors. The agent handles turns one through eight beautifully, then loses track at turn nine — forgetting a constraint mentioned earlier or contradicting something it said itself.

Policy errors. The agent produces an output that looks reasonable to a language model but quietly violates a business rule, a compliance boundary, or a policy the company can't afford to break.

One team I spoke with ran a support agent in staging for weeks. Latency was fine. Every trace was green. Then in a review of transcripts, someone noticed the agent was routinely offering refund amounts above the policy cap — not always, not obviously, but often enough that observability would never have flagged it. Every individual response looked competent. The pattern only appeared when you read the conversation as a whole.

That's the thing behavioral failures share: they're invisible one response at a time.

The conversation is the unit of evaluation

For years, evaluation has been prompt-centric. Ask a question, compare the answer to an expected response, assign a score. That made sense when language models were primarily question-answering systems.

But agents are no longer answering isolated questions. They're accomplishing tasks. A customer asks for a refund. An employee generates a sales proposal. An analyst requests a report. Success isn't determined by the quality of a single response. It's determined by whether the user actually achieves their objective.

The conversation, not the prompt, is now the unit of evaluation.

Once you evaluate conversations instead of prompts, you quickly discover that real users are unpredictable. They change their minds, ask follow-ups, contradict themselves, reference something from ten turns earlier, and interrupt workflows halfway through. This is where many agents begin to struggle — not because they're incapable, but because they were never tested under realistic conditions. Single-turn benchmarks rarely expose these failures. Real conversations do.

Simulate before you ship

This is why simulation has become interesting to teams that already have observability figured out. Not as a replacement — as the layer that comes before.

Simulation asks a different question. Instead of waiting for production traffic to reveal weaknesses, what if we could generate realistic users before deployment? Users with different goals, different levels of expertise, different permissions, and different ways of interacting with the same agent? What if we could surface behavioral failures before our customers did?

The teams building the most reliable AI systems already understand that evaluation cannot begin with the model. It has to begin with the user. The question isn't "was this response factually correct?" It's "did the user accomplish what they came here to do?" Those often produce very different answers.

The point

Observability will keep playing an essential role in AI engineering. We need to understand what happens in production, learn from real users, and continuously improve. But if our only strategy is to observe failures after they occur, we're accepting that our customers will always be the first to discover them.

The greatest risk in AI isn't shipping an agent that crashes. It's shipping one that appears to work — until someone depends on it.

The next generation of AI engineering won't be defined by better models or larger context windows. It'll be defined by whether the user, or the team, is the one who finds the failure first.