· Perseval · Agent evaluation fundamentals · 3 min read
What Is Agent Observability?
Agent observability connects individual executions to recurring behavior, evidence, and changes across builds.
Agent observability is the ability to understand what an agent did, why its behavior changed, and whether the same problem is recurring across runs.
It starts with telemetry, but collecting telemetry is not the same as understanding behavior.
Monitoring, tracing, and investigation
These activities answer different questions:
| Activity | Main question |
|---|---|
| Monitoring | Is the system healthy right now? |
| Trace inspection | What happened in this particular run? |
| Failure analysis | Which problems recur across runs? |
| Evaluation | Does behavior satisfy an explicit expectation? |
| Regression verification | Did the new version fix the problem without introducing another one? |
A dashboard can show rising latency or error rates. A trace can show the failing tool call. An investigation system should connect that tool call to the other runs that failed in the same way.
Why agents need more than conventional service metrics
Traditional services often have a relatively stable request path. Agents make choices during execution. They may select tools, delegate to other agents, revise plans, retrieve context, or decide whether to verify an answer.
Two successful requests can therefore have very different reliability:
Run A: plan → tool succeeds → verify → answerRun B: plan → wrong tool → retry loop → partial recovery → answerBoth may return HTTP 200. Only one is a trajectory you would want to repeat.
Four properties of useful agent observability
1. Identity
Every run should retain its project, environment, build, session, agent role, and revision. This prevents unrelated executions from being compared as if they belonged to the same system.
2. Topology
Planner, browser, tool, model, and verifier activity should remain distinguishable. Flattening every span into one list destroys the ownership and causal relationships needed to debug multi-agent behavior.
3. Evidence
A diagnosis should point back to the spans, events, links, and attributes that support it. “The agent failed” is not an actionable finding. “The replacement tool returned declined, but the response claimed success” is.
4. Comparison over time
You need to know whether a failure is new, recurring, recovered, or limited to one build. That requires comparing populations of runs, not only opening individual traces.
A recurring failure example
Imagine the support agent’s replacement-card tool fails in seven runs. Five responses still promise that a new card was ordered.
An observability tool should help you move through this progression:
Seven affected runs→ one recurring failure signature→ representative examples→ exact evidence spans→ builds and sessions affected→ recovery trendThe goal is not to hide the individual traces. It is to make them useful as a body of evidence.
Five traces, five different lessons
The published sanitized scenarios make the boundaries concrete:
uncertain-mutationhas enough facts to support a narrow actionable finding;recovered-optionalhas a red browser span but a successful required fallback, so the error is not automatically actionable;spanlink-handoffpreserves planner, browser, and verifier ownership plus a non-parent handoff;baseline-repairedrecords two builds that can be aligned without claiming that comparison is an eval run;missing-telemetrykeeps an error visible while reporting that the behavioral evidence is incomplete.
Observability is useful partly because those five traces should not collapse into “one red-span problem.”
Observability does not define correctness
Telemetry can show that an agent called a tool and received a result. It cannot know whether the product should have called that tool under those circumstances unless you provide a rule, criterion, or expected behavior.
This is where observability meets evaluation:
- traces describe what happened;
- findings identify evidence-backed concerns;
- evals define what acceptable behavior should look like;
- reruns test whether that behavior changed.
Agent observability is therefore not merely a prettier trace viewer. Its useful endpoint is a decision: what failed, how certain are we, and what should we test next?