World’s largest virtual agentic engineering & quality conference

WHENAUG 19-21
WHEREVirtual · Global
Register Now
AIAI Testing

Agent Observability: From Evals to Production Traces

Agent observability explained: what to trace, how evals and traces answer different questions, and what changes when you deploy multi-agent systems.

Author

Sandeep Yadav

Author

Author

Saurabh Prakash

Reviewer

Last Updated on: August 14, 2026

There is now a standard shape for an agent trace. OpenTelemetry describes it as a top-level invoke_agent span with child chat spans for each model call and execute_tool spans for each tool invocation.

The conventions are recent and still settling, which explains most of the confusion in this area. Teams instrument something, they instrument it differently from each other, and few can answer the question that matters after an incident: why did the agent do that.

This article covers the three practices that answer it together, and how they connect: evals before you ship, tracing after you ship, and what both have to change once more than one agent is involved.

TL;DR

  • Agent observability means instrumenting an agent so you can reconstruct which model calls it made, which tools it invoked, what came back, and why a path was taken.
  • It is broader than LLM observability, which centres on a single model call, because agent failures usually live in the sequence, the routing, or a misread tool result rather than in one completion.
  • OpenTelemetry describes the standard trace shape as an invoke_agent span with child chat spans for model calls and execute_tool spans for each tool invocation.
  • Evals and traces answer different questions: evals check chosen cases against a standard before shipping, traces record uncontrolled reality after shipping, and neither substitutes for the other.
  • The loop that matters runs both ways, with production traces supplying new eval cases and eval failures telling you which attributes are worth instrumenting.
  • Multi-agent systems turn one request into a tree, so a trace identifier has to survive every handoff or you get several disconnected partial stories.
  • Alert on behavioural drift such as tool-mix shifts and steps per task, because a pure error rate misses an agent that succeeds while doing the wrong thing.
  • TestMu AI Test Insights aggregates execution records across runs and surfaces flakiness, error categorization, and agentic root cause analysis over that history.

What Is Agent Observability?

Agent observability is the practice of instrumenting an AI agent so that a completed run can be reconstructed from the outside: the model calls it made, the tools it invoked and with what arguments, what those tools returned, how control moved between agents, and what the whole thing cost in tokens and wall time.

The shift from ordinary application observability is in the unit of interest. A web service trace answers what happened to a request. An agent trace has to answer why a decision was taken, because the code path was chosen at runtime by a model rather than written in advance by a developer.

For the wider practice across AI systems generally, the guide to AI observability and its benefits covers the foundations this builds on.

How Is It Different From LLM Observability?

The two terms get used interchangeably and they are not the same scope. The difference decides what you can debug.

DimensionLLM observabilityAgent observability
Unit of interestOne model callOne task, spanning many calls
Typical signalsPrompt, completion, tokens, latency, costAll of those, plus tool calls, arguments, results, and handoffs
Question answeredWas this completion good?Why did the run take this path and end here?
Common failure caughtHallucination in a responseRight answer, wrong action, or the reverse
Shape of the dataA record per callA trace tree per task

If you only capture the model calls, an agent that chose a reasonable-looking but wrong tool produces a trace in which every individual completion looks fine. The fault is in the sequence, and the sequence is what the agent layer adds.

What Should You Actually Trace?

Start from the OpenTelemetry GenAI conventions rather than inventing a schema, because a convention that is still moving is easier to follow than to retrofit. The conventions define the agent span, the tool span, and the attributes that identify an agent.

invoke_agent {gen_ai.agent.name}        the whole task
  ├── chat {model}                       a model call
  ├── execute_tool {gen_ai.tool.name}    a tool the agent ran
  │     arguments, result, error, duration
  ├── chat {model}                       the model reading that result
  └── invoke_agent {sub-agent}           work delegated onward

attributes worth setting on the agent span:
  gen_ai.agent.id        stable identity across runs
  gen_ai.agent.name      human-readable, appears in the span name
  gen_ai.agent.version   so a regression can be tied to a change

Beyond the span tree, three things are worth capturing because they are the ones you will wish you had during an incident.

  • Tool arguments and results, not just tool names - knowing the agent called a refund tool is far less useful than knowing which amount it passed.
  • The decision context - what the agent had in context when it chose, since a wrong choice made on incomplete input is a retrieval bug rather than a reasoning one.
  • A terminal outcome marker - an explicit record of whether the task ended in the action it was meant to produce, which is what lets you measure completion rather than absence of errors.

That last one has a second payoff. An agent that records what it did is dramatically easier to verify later, which is the same property that determines how much of its behaviour any test harness can confirm.

Note

Note: Execution records only become useful once something aggregates them across runs. TestMu AI turns per-run results into trends, flakiness signal, and root cause leads. Try it free.

Evals and Observability Answer Different Questions

Teams often adopt one and treat it as covering the other. They sit at different points in the lifecycle and fail in opposite ways.

Agent evalsAgent observability
WhenBefore shipping, and in CI on every changeAfter shipping, continuously
InputCases you choseTraffic you did not choose
QuestionDoes it meet the standard?What is it actually doing?
StrengthRepeatable, gate-able, comparable run to runReal inputs, real distribution, real edge cases
Blind spotOnly measures what you thought to includeOnly finds problems after users hit them

A team with only evals ships confidently against a case set that drifts further from production every week. A team with only tracing learns about every problem from a customer. The agent evaluation framework guide covers the eval side in depth, and the roundup of AI agent evaluation tools compares what is available to run them.

Closing the Loop Between Them

The value is not in running both. It is in letting each one feed the other, which most teams never wire up.

  • Traces become eval cases - when a production run goes wrong, the trace already contains the inputs and the context. Promote it into the eval set so the next change is measured against it, and the same incident cannot recur silently.
  • Eval failures tell you what to instrument - if an eval fails and the trace cannot show why, that is a gap in instrumentation rather than a gap in the agent. Add the attribute and the next failure explains itself.
  • Production distribution reweights the eval set - trace data shows which intents actually arrive and in what proportion, which is the only honest basis for deciding what the eval suite should overweight.
  • Agent version ties both together - tagging traces and eval runs with the same version attribute is what turns two separate dashboards into one answer about whether a release helped.

The fourth point is the cheapest and the most often skipped. Without a shared version identifier, a rise in production failures cannot be attributed to the change that caused it.

Test across 3000+ browser and OS environments with TestMu AI

What Changes With Multi-Agent Deployments

Adding agents changes the shape of the problem rather than its size. One logical request stops being a line and becomes a tree, often executed partly in parallel.

  • Trace context must survive every handoff - if the identifier is not propagated when one agent delegates to another, you are left with several partial stories and no way to join them.
  • Attribution replaces error rate - the useful question stops being how many runs failed and becomes which agent's decision caused the outcome, which only a joined trace can answer.
  • Concurrency introduces write ordering - two agents acting in parallel can touch the same record, and without timestamps and identity on each tool call the last writer is invisible.
  • Cost accounting needs a per-agent split - a rising bill is unactionable until it is attributed to the agent and the tool that produced it.
  • Rollout has to be per agent - releasing one specialist at a time keeps the blast radius small and makes a regression attributable, which a whole-system deploy does not.

Deployment practice follows from that. Ship one agent at a time behind a flag, keep the previous version routable so a bad release can be reversed without a rebuild, and hold the eval suite as the gate on the way in. The methodology for that gate is covered in the guide to multi agent testing, and the routing patterns these deployments rest on are in the piece on agentic AI orchestration.

How Do You Roll This Out?

Instrumenting everything at once produces a large bill and a dashboard nobody reads. This order gets a usable signal quickly.

  • Emit the agent span and tool spans using the OpenTelemetry names, so your data is portable if you change backend later.
  • Add a stable agent id and version attribute before you add anything else, because they are what make every later comparison possible.
  • Record tool arguments and results, with secrets and personal data redacted at the point of capture rather than in the backend.
  • Mark terminal outcomes so completion is measurable, not inferred from the absence of an exception.
  • Sample deliberately, keeping every failed and every adversarial-looking run while sampling the successful ones.
  • Only then build dashboards, and build them around drift signals rather than raw volume.

On redaction, treat the trace as a system that will be read by more people than the agent's own logs. Tool arguments are exactly where account numbers and personal data end up.

Where TestMu AI Fits

Two parts of the TestMu AI platform map onto this lifecycle, and they sit on opposite sides of the ship line.

  • Before shipping - Agent Assurance covers the eval side for both kinds of agent, grading conversational agents on the quality of the reply and autonomous agents on the truth of the effect, with scenarios generated rather than hand-authored. The conversational category is covered on the AI agent testing platform page; the autonomous category is pre-alpha at the time of writing.
  • Across runs - Test Insights is the read side of the platform. It aggregates the execution records the other products produce and turns per-run pass or fail results into longitudinal signal: trend dashboards, flakiness and stability, error categorization, and agentic root cause analysis that localizes a likely cause as a lead to verify rather than a verdict.

The distinction worth keeping is that Test Insights is observability over testing rather than over production traffic. It answers which checks are chronically unstable and whether quality is improving across builds, which is the question your eval suite raises and your APM cannot.

Conclusion

Start by adding two attributes: a stable agent id and a version on every trace you already emit. Without them no comparison across releases is possible, and with them most of the other analysis becomes available later without re-instrumenting.

Then wire the loop in one direction before both: take the next production run that goes wrong, promote it into your eval set, and gate the next release on it. For background on where this sits in a wider QA practice, see the guide to agentic quality assurance, and for the pre-release half of the loop, end to end agent testing.

To put run history behind a dashboard rather than a spreadsheet, create a free TestMu AI account and start with the analytics dashboard documentation.

Author

...

Sandeep Yadav

Blogs: 1

  • Linkedin

Sandeep Yadav is a Senior Software Engineer at TestMu AI (formerly LambdaTest), where he builds the platform's test intelligence and AI-native engineering systems. He has architected autonomous GitHub Apps, vector-search code intelligence, and self-diagnosing QA workflows, and designed distributed platforms that process 2M+ daily test executions and 1B+ events, turning high-volume test, log, and code data into intelligent, self-optimizing systems. He works on embedding reasoning models into production infrastructure to power autonomous review, root-cause analysis, and analytics workflows. He brings over four years of engineering experience with deep expertise in the Elastic Stack, Apache Kafka, and Redis. Earlier he engineered a GDPR-compliant, end-to-end-encrypted secure web-chat application at Mithi. A Facebook Hackercup 2021 Round 2 qualifier and merit-scholarship recipient, Sandeep holds a B.Tech in Electrical Engineering from Delhi Technological University.

Reviewer

...

Saurabh Prakash

Reviewer

  • Linkedin

Saurabh Prakash is an Engineering Manager at TestMu AI (formerly LambdaTest), where he leads engineering on agentic AI development and scalable system architecture for the quality engineering platform. He has also contributed to Test at Scale, the company's open-source test intelligence platform. He brings over 9 years of experience across Node.js, Java, Spring, MVC, data structures, algorithms, and scalable system design, with earlier roles as SDE 2 at Zomato, Senior Software Engineer at LogicHub, and Software Development Engineer at Directi. Saurabh holds a B.Tech in Computer Science and Engineering from Delhi Technological University.

Open in ChatGPT Icon

Open in ChatGPT

Open in Claude Icon

Open in Claude

Open in Perplexity Icon

Open in Perplexity

Open in Grok Icon

Open in Grok

Open in Gemini AI Icon

Open in Gemini AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free
...
TestMu Conf 2026

World's largest virtual agentic engineering & quality conference

...

AUG 19-21, 2026

REGISTER NOW

Agent Observability FAQs

Did you find this page helpful?

More Related Blogs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests