LLM observability
Records each request to a model and its response.
- Prompt and completion
- Tokens, cost, latency
- Errors and rate limits
- Model and version
LLM observability watches each call to a model. Agent observability watches the whole run — the plan, the tools, the hand-offs, and whether the job got done.
A single agent request can make a dozen model calls, run five tools, consult another agent and wait for a person. Monitoring each model call tells you what was spent and how fast it came back. It cannot tell you why the task failed. This guide shows what each kind of observability records, how an agent trace is built from OpenTelemetry’s GenAI spans, which failures only show up at the agent level, and the signals worth an alert.
Updated · 6 sources
Records each request to a model and its response.
Records the run an agent makes to finish a task, as a tree of steps.
LLM observability records individual calls to a language model — the prompt, the response, tokens, cost, latency and errors. AI agent observability records the whole run an agent makes to complete a task: its plan, every model call and tool call nested under it, retrievals, hand-offs to other agents or people, and the final outcome. LLM observability answers “what did this call cost and return?”; AI agent observability answers “why did this task succeed or fail, and what did it cost end to end?”
A trace is a tree. The root is the task; under it sit the agent’s plan, each model call, each tool call and any agent it called in turn. Model calls are the leaves — which is why watching them alone misses the shape of the run.
invoke_workflow claims-intake 41.2 s
├ invoke_agent claims-agent 39.8 s
│ ├ plan 2.1 s
│ │ └ chat model A 1,840 → 212 tok 2.0 s
│ ├ execute_tool read_attachments 6.4 s
│ ├ chat model A 9,310 → 640 tok 4.9 s
│ ├ execute_tool policy_lookup ERROR 30.0 s
│ ├ execute_tool policy_lookup 1.2 s
│ ├ retrieval claims-guidelines 8 docs 0.4 s
│ └ chat model A 11,020 → 388 tok 3.8 s
└ invoke_agent notify-agent 1.3 sOpenTelemetry’s generative AI semantic conventions give every tool the same names for these spans, attributes and metrics, so a trace from one framework reads the same in any backend. They are still marked as in development, and they already cover agents, tools and workflows alongside model calls.
gen_ai.operation.name — what the span is: chat, execute_tool, invoke_agent…gen_ai.request.model — the model asked for; the provider in gen_ai.provider.name.gen_ai.usage.input_tokens and output_tokens — the basis of cost.gen_ai.agent.name — which agent ran; gen_ai.conversation.id joins turns.gen_ai.tool.name — which tool ran, with its call id, arguments and result.gen_ai.client.operation.duration — how long each model operation took.gen_ai.server.time_to_first_token — the wait before output starts.gen_ai.invoke_agent.duration — how long a whole agent run took.gen_ai.invoke_agent.tool_calls and inference_calls — tool and model calls per run.gen_ai.execute_tool.duration — how long each tool took.gen_ai.invoke_workflow.duration — how long a whole multi-agent workflow took.Content is opt-in, for a reason. Under the conventions, prompts, responses, system instructions and tool definitions are opt-in attributes, flagged as likely to hold sensitive or personal data. Decide what to capture, where it is stored and who can read it before you switch it on.
The two overlap on cost and latency. They part ways on the questions a business asks: did the task finish, was it right, and what did it cost to get there?
| Signal | LLM observability | AI agent observability |
|---|---|---|
| Unit of record | One model request | One task, as a tree of spans |
| Cost | Per call, per model | Per task, summed across every call and tool |
| Latency | Time to first token, call duration | Time to finish the task, and the slowest step in it |
| Errors | Timeouts, rate limits, refusals | Tool failures, retries, loops, abandoned plans |
| Quality | Output scored per response | Outcome checked: was the record updated, the case closed? |
| People | Outside its view | Waits for approval, hand-offs, overrides |
| Typical question | Why is this model slow today? | Why did 6% of claims stall at the policy check? |
Each of these leaves every individual model call looking healthy. They show up only when calls are read as one run.
The agent calls the same tool with the same arguments again and again.
A plausible tool with wrong arguments returns valid but irrelevant data.
A tool fails, the agent carries on, and the answer is built on nothing.
Tool results pile into the prompt until cost climbs and quality falls.
A sub-agent or a person receives the task without what the first agent learned.
The agent reports success but the system of record never changed — why Anthropic’s eval guidance grades the final state, not the claim.
OpenTelemetry’s own guidance notes that, because agents are non-deterministic, their telemetry also serves as a feedback loop. Traces show what happened in production; evaluation decides whether it was right; each failure becomes a test.
every fix ships against the grown dataset, and production is watched again
Which do you need first?
On Botminds every request is recorded, every model call carries its cost, and every failure is kept — then turned into a short list of things a person should do.
Why is claims spend up?
One agent, Claims summariser, moved to a larger model yesterday at 16:05; each call costs about four times more. Volume is normal. Shall I show the change and who made it?
Read the full design in AI agent evaluation and observability, and the Academy lesson on observability.
AI agent observability is recording and analysing what an AI agent does to complete a task — its plan, each model call, each tool call, retrievals, hand-offs to other agents or people, and the final outcome — as one trace, so you can see why a task succeeded or failed and what it cost.
Monitoring individual calls to a language model: the prompt and response, tokens, cost, latency, errors and the model version, often with a quality score on each response.
LLM observability is per call; agent observability is per task. An agent run contains many model calls plus tools and hand-offs, and most agent failures — loops, swallowed tool errors, reporting success without doing the work — are invisible when calls are viewed one at a time.
Yes. Its generative AI semantic conventions define spans for creating and invoking agents, running tools, planning and invoking workflows, alongside model inference, embeddings, retrieval and memory operations. The conventions are marked as in development.
Task completion rate, cost and time per task, tool calls per run, tool error rates, input tokens per step, waits for human approval, and an outcome check on the system of record — plus sampled quality scores.
Only by decision. The OpenTelemetry conventions make message content opt-in because it can hold sensitive or personal data. Decide what is captured, where it is stored and who may read it.
Evaluation tests a system against known cases before and after changes. Observability watches real traffic. They work as one loop: failures seen in traces become test cases, and evaluations check the fix.
Bring one process and its documents. We’ll show you the agents, the controls and the record, running on your data.