AI Agent Observability: Stop Hidden Token Burn in 90 Days
TL;DR
Logs tell you an agent ran. Traces tell you why it picked the tool it picked. Once an agent makes its own decisions, you need the trace.
Track three numbers first. Token cost per step, latency per step and end to end, and whether the task actually finished the job.
Cost is what bites first. A looping agent burns a month of budget in minutes and the total looks normal until the invoice arrives.
Instrument one workflow you can check by hand. Not the whole fleet. Every trace that shows a failure becomes a test case for the next change.
Emit OpenTelemetry spans natively so your traces are not locked into one vendor's dashboard.
AI agent observability records every step an agent takes: model calls, tool calls, token spend and evaluation scores. It matters because agents decide on their own, and without that record you cannot explain why one went wrong. Team leads use it to instrument workflows, run evaluations, and fix issues before customers see them.
What is AI agent observability, really?
AI agent observability is the practice of capturing a full run trace for every agent task. Not just logs. Not just uptime checks.
It records the whole path. What the agent decided, which tools it called, what the model returned, and whether the task actually succeeded.
That is different from two things you probably already run.
LLM observability watches a single model call. Prompt in, response out, maybe a latency number. Fine for a chatbot. Not enough for an agent that plans, calls three tools, and hands off to another agent halfway through.
Classic APM (application performance monitoring) watches servers and code paths. It tells you a service is slow. It cannot tell you why an agent picked the wrong tool or looped five times before giving up.
Agent observability sits above both. The building blocks:
- Traces: the full record of one agent run, start to finish
- Spans: each step inside that run, such as a model call, a tool call, or a decision point
- Sessions: multiple related traces, useful when a task spans several turns or handoffs
A Hugging Face course on agent observability puts it plainly. Visibility into latency, cost and success rate is what lets you debug behaviour that is not deterministic. Your agent might do something different every time on the same input. Observability is how you catch that.
The core signals your dashboard actually needs
You cannot watch everything. You need the right handful of signals.
Here is the shortlist:
- Token and cost attribution: broken down per step, per agent, per task, not just a total bill at the end of the month
- Latency: per step and end to end, so you know whether the whole job is slow or just one part of it
- Tool call counts: how many calls, how many failed, how many retried
- Success rate: did the task finish the job, not just return a response
- Hallucination and drift signals: is the agent's behaviour changing over time, or making things up
Cost is the one that bites teams first. An agent stuck in a retry loop can burn through a token budget in minutes and nobody notices, because the total spend looks fine until the invoice lands. Tracking token usage per step catches it early, before it becomes a finance conversation. If you have not modelled what those calls cost in the first place, DevWiz has a plain breakdown of LLM API pricing compared across the main providers, and our own guide to LLM cost optimisation covers what to do once you can see the numbers.
The Hugging Face guide frames this as three pillars: latency, cost, and success rate. Everything else you track should feed one of those. If a metric does not drive a decision, drop it.
Success rate needs a clear definition before you can track it. "Did the agent respond" is not the same as "did the agent solve the problem". Pick which one you are measuring, and stay consistent.
How traces and spans should be built
Think of a trace like a delivery docket. One docket per job, showing everything that happened along the way.
Every user request should start one root trace. Everything the agent does inside that job becomes a span hanging off that root.
When one agent hands work to another agent, that handoff becomes a child span. The trace keeps growing but stays one continuous record of the job.
Each span should carry a small, consistent set of attributes:
- Agent ID, so you know which agent ran the step
- Operation name, so you know what it was trying to do
- Model used, and its version
- Token counts, input and output
- Tool name, if a tool was called
- Duration and outcome: success, failure, or retry
Standards save you real pain here. OpenTelemetry is becoming the common language for this kind of telemetry, which is data about how a system is behaving. Its GenAI semantic conventions define a standard shape for those attributes, so your traces are not locked into one vendor's dashboard. Build agents that emit OpenTelemetry spans natively and the data plugs straight into whatever monitoring you already run.
That is also the argument for traces over logs. A log line tells you a tool was called. It cannot link a user's intent to the chain of tool calls and model decisions that followed it. Only the trace holds that shape.
For multi-agent systems, trace context has to travel with the handoff. If agent A passes work to agent B, agent B's spans need to nest under the same root trace instead of starting a new one. Break that link and you lose the ability to see the job as one thing. Our piece on how multi-agent systems work covers where those handoffs happen.
Instrumenting your agents: a checklist that won't break production
Do not try to instrument everything on day one. That is how projects stall.
Start with one workflow. Pick something you understand well enough to check the results by hand.
- Pick one workflow you can verify. Something with a clear pass or fail, so you can spot-check the data against reality.
- Instrument it end to end. Every model call, every tool call, from first input to final output.
- Split automatic from manual. Most frameworks emit spans for model calls automatically. Custom tools and retrieval steps usually need a span added by hand.
- Record the details that matter for debugging. Prompts sent, model responses, tool arguments, and any IDs returned by external systems. If you cannot see what the agent asked for, you cannot see why it got the wrong answer.
- Control trace volume before it controls you. Sample high-volume, low-risk paths. Keep full tracing on anything customer-facing or costly. Roll raw spans into derived metrics so nobody has to read raw traces to check a number.
- Set a retention plan. Decide how long you keep full traces versus summary data, and match that to any audit or compliance needs.
A tool marketplace like Prowl helps here if your agents call a lot of external tools. More tools called means more spans to track, so knowing which ones your agents actually use matters before you wire up tracing for all of them.
Pro Tip: Instrument the workflow that touches money or customers first, not the one that is easiest to code. That is where a silent failure costs you most.
For teams that want copy-paste starting points rather than writing span code from scratch, there are free OpenTelemetry prompt templates built for this kind of setup.
Turning traces into fixes: the evaluation loop
Watching traces is half the job. The other half is using them to make the agent better.
Most teams stop too early. They build the dashboard, watch it for a week, then go back to firefighting instead of fixing root causes.
There are two kinds of evaluation you need:
- Offline evaluation: run before you ship a change, against a fixed test set
- Online evaluation: run continuously in production, scoring live traces as they happen
Build your offline test set from real failures. Every time a trace shows the agent getting something wrong, that trace becomes a test case. Over a few months you build a library of real, hard examples, which beats a generic test set someone wrote up front.
Attach evaluation scores to the traces they came from. Then those scores show up on the same dashboard as your cost and latency numbers, so a manager sees the full picture in one place instead of three.
Once you have scores, you have somewhere to point fixes:
- A prompt change, if the model is misreading the task
- A routing tweak, if the wrong agent is picking up the wrong jobs
- A tool replacement, if a tool returns bad data or fails silently
After any fix, measure the same three numbers again: cost, success rate, latency. If none of them moved, the fix did not work, however convincing it sounded in the meeting.
Dashboards and alerts that team leads actually use
A good dashboard tells you what is wrong in five seconds. Not five minutes of scrolling logs.
Keep the top level simple:
- Status badges: running, idle, or failed, per agent or workflow, at a glance
- Completion rate: the percentage of tasks that finished the job
- Cost per successful task: not total spend, cost tied to a result
- P95 latency: the slowest 5% of runs, which catches the outliers an average hides
- Tool accuracy: how often tool calls returned something usable
Every alert should link straight to the trace that triggered it. An alert with no trace tells you something is wrong. An alert with a linked trace tells you what went wrong and where, which is the whole point.
Build a separate view for human-in-the-loop review, where a person checks borderline agent decisions before they go live. This is where the AI dashboard as a command centre approach earns its keep. One screen, clear status, no digging.
The trade-offs nobody warns you about
Observability is not free. It costs storage, compute, and someone's time to maintain.
A few things catch teams out:
- Trace volume grows fast. A busy agent fleet can generate more trace data than your actual application data. Sample the low-risk paths and keep full detail where it matters.
- Repeated model calls hide in the total. A looping agent racks up cost quietly. Watch per-step token counts, not the monthly bill.
- Personal data ends up in traces. Prompts and tool arguments often carry customer names, emails, or account details. Redact or tokenise those fields before storing traces long-term.
- Retention needs a policy, not a guess. NIST's AI guidance gives a useful frame for how long to keep records and how to structure audit trails, which matters more once regulators or customers start asking.
Governance is not a side project here. A clear AI policy on what gets logged, redacted, and kept is part of the observability build, not something bolted on later.
How The AI Orchestrators build observability into every project
We build observability in from day one, not after something breaks.
Our 90-day program runs on a simple rhythm: instrument, test, iterate. Every workflow gets traces and evaluation scores from the first prototype.
The reason it works is where the instrumentation lives. We build an AI Operating System with Claude Code, a coordinated set of AI employees that carry the founder's IP and decision rules. Because the agents and the tracing are built in the same system, every run emits its own spans and evaluation scores by default. There is no separate monitoring project to fund later, and no gap between what the agent did and what the dashboard shows.
That is the practical case for building this way rather than stitching generic automation tools together. Wire five no-code tools into a workflow and you get five partial views of one job. Our write-up on custom AI delivery systems built with Claude Code shows how the pieces fit.
Clients get real proof, not promises. Dashboards showing live sessions. Evaluation loops scoring real runs. Data that feeds policy decisions and audit needs later.
Gartner predicts task-specific agents will show up in far more enterprise apps soon. Teams that build the observability habit now will handle that growth. Teams that do not will be firefighting blind.
Author perspective: what I would instrument first
If I were starting an agent fleet this month, I would wire up three things in the first 30 days. Token cost per step. Tool call success rate. One end-to-end trace per workflow. That is it.
Cost tracking catches runaway loops before finance notices. Tool success rate catches silent failures before customers do. A full trace on one workflow proves the approach works before you scale it.
This week's task: pick your riskiest workflow and put a trace on it.
James Killick
How The AI Orchestrators can help you get this running
Reading about observability is one thing. Building it into a live agent fleet without breaking production is another.
The AI Orchestrators is the alternative to hiring a team of engineers to work this out from scratch. We build observability into your agent systems from the first prototype, not after something has gone wrong.
Our 90-day program takes your team's own expertise and turns it into a working AI Operating System with tracing, dashboards, and evaluation loops built in from day one. You get a system your team can run and trust, with the visibility to fix problems before customers see them.
Want to see how the pieces fit first? Check the AI orchestration glossary for plain definitions of the terms your team will hit, and browse our original research on how this plays out for real programs.
Next step: book a strategy call and bring the one workflow you would most hate to see fail silently.
Sources
Frequently Asked Questions
James Killick
Founder
The AI Orchestrator. 10+ years building digital products and 200+ apps shipped, now helping $1M+ educators and consultants turn their IP into AI-powered delivery systems.
James Killick founded and runs The AI Orchestrators.
More from James Killick