Day 19 — Bonus 2 April 29, 2026

Agent Observability — Tracing, Online Evals & the AgentOps Stack

Yesterday we made every call non-deterministic by design (reasoning models, variable thinking budgets, parallel sampling). The hidden cost of that: you can no longer ship and forget. The discipline that turns “sometimes brilliant, sometimes broken” into a product you can sell to a Fortune 500 is observability — tracing every span, evaluating every output, alerting on every regression. This is the operational layer of the agent stack.

Tracing
Spans
OTel GenAI
LLM-as-Judge
Online Evals
Pass^k
Drift
AgentOps
Curriculum
Bonus · Day 19 of 17 + 2
Core Concept

From Logs to Traces — Why Agents Need a New Operational Stack

Classical microservices observability rests on three pillars: logs (what happened), metrics (how much / how fast), and traces (the causal path through a distributed call). For agents, those three pillars are necessary but nowhere near sufficient. An agent run also has semantic state (what the LLM was thinking about), quality signals (was the output correct?), and tool-mediated side effects (the agent updated a CRM record — was that the right record?). Agent observability is the practice of capturing all of this in a way you can query, alert on, and replay.

Analogy first. Treat each agent run like a flight data recorder. A traditional API request is a single voltage reading: in, out, status code. An agent run is a flight: takeoff, climb, three weather diversions, two passenger inputs, one tool malfunction, landing. If you only log “flight completed” you have no idea whether the captain made good decisions or got lucky. You need the full cockpit voice recorder, the autopilot trace, and an independent reviewer scoring each decision afterwards. That’s a trace plus an online eval.

Mechanism. The dominant data model is borrowed from distributed-tracing standards (OpenTelemetry) and extended by AI-specific conventions. A trace represents one end-to-end agent run. A trace is a tree of spans, where each span is a unit of work with a start time, an end time, a parent, and key/value attributes. The standard span types for agents now include: llm (a model call, with prompt, response, tokens, model name), tool (an external API call with input args and output), retriever (a RAG fetch with query, retrieved docs, scores), chain (a programmatic step), and agent (the outer loop wrapping all of it). The OpenTelemetry GenAI semantic conventions, in active development through 2025-2026, are standardizing the attribute names (gen_ai.request.model, gen_ai.usage.input_tokens, etc.) so traces become portable across vendors.

The three observability layers for agents

1
Layer
Tracing — the structural layer
What did the agent do, in what order, and how long did each step take?
A nested tree of spans capturing every LLM call, tool invocation, retriever hit, and sub-agent message. Auto-instrumentation libraries (OpenInference, OpenLLMetry) wrap framework SDKs so you don’t hand-roll spans. The output is a trace_id you can paste into your dashboard and replay the run end-to-end — including the full prompt, full response, and tool I/O for each step.
2
Layer
Evals — the quality layer
Was the output any good? On what dimensions? Compared to what?
Two flavours. Offline evals run a curated dataset against your agent on every change — like unit tests for behaviour. Online evals run as a sidecar on production traffic, scoring every real interaction with a rubric. The dominant scoring engine is LLM-as-a-judge (Zheng et al., NeurIPS 2023), where a strong model judges your agent’s output against a structured rubric. New in 2025: Agent-as-a-Judge (Zhuge et al.) — the judge is itself an agent, with tools, that can verify code by running it.
3
Layer
Telemetry — the operational layer
What's drifting, what's failing, and which user is affected?
Cost-per-trace, p50/p95/p99 latency, tool error rate, eval-score distribution over time, prompt-version-pinned regressions. Aggregates over traces and evals to drive alerting. This is where AgentOps platforms (Langfuse, Phoenix, AgentOps, W&B Weave) compete on dashboards, slicing, drift detection, and integration with paging systems.

Why this is harder than classic APM

A typical web request has a binary outcome (200 or 5xx) and bounded shapes. An agent run has a continuous outcome (“how good was the answer?”), unbounded text inputs and outputs, and a long-tailed cost / latency distribution thanks to reasoning budgets and tool retries. You can’t define an SLO on http.status_code; you have to define it on a learned signal — a judge model or a regex on a rubric’s pass criteria. Pass^k (from τ-bench) generalizes pass@k for agents: you run the same task k times and report the fraction where all k attempts succeed. That’s your reliability number.

The other compounding problem is multi-agent observability. When agents call sub-agents call tools call other agents, your trace tree fans out by an order of magnitude. Conventional dashboards drown. The newer pattern (W3C trace context propagation through MCP / A2A protocols, plus OpenInference semconv) preserves a single root trace_id across boundaries so you can ask “what did Agent A do that made Agent B fail?” without stitching logs by hand.

# Anatomy of one agent run as a trace trace = run-7e2c (root, 12.4s, $0.043, eval=0.81)     |— span: agent.plan (llm, 2.1s, 1.2K in, 480 out)     |— span: tool.search_docs (retriever, 0.4s, 6 hits)     |— span: agent.reason (llm, 5.8s, 12K thinking, 320 out)     |— span: tool.create_ticket (api, 0.9s, side-effect=true)     |— span: agent.verify (llm, 3.0s, 4K thinking)     |— span: judge.online_eval (llm, async, score=0.81) // 1 trace, 6 spans, 2 LLM, 2 tool, 1 retriever, 1 judge
A useful test: if a customer complains “the agent did the wrong thing for ticket #4823 yesterday at 3:14 pm”, can your engineer answer in under five minutes by pasting one ID into a search box? If yes, you have observability. If no, you have logs.

Numbers Worth Memorizing
< 50%
SOTA agent success rate on τ-bench retail (Yao et al., 2024)
< 25%
Pass^8 for the same agents — reliability collapses with retries
> 80%
GPT-4 / human agreement on MT-Bench judging (Zheng et al., 2023)

Papers to Know

Four Papers That Built the AgentOps Vocabulary

Published Seminal NeurIPS 2023 Datasets & Benchmarks Track
Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena
Lianmin Zheng, Wei-Lin Chiang, Ying Sheng, et al. (UC Berkeley, UCSD, CMU, Stanford) · arXiv 2306.05685
Established that a strong LLM (GPT-4) can match human majority preference at over 80% on open-ended chat — the same agreement rate as two humans agreeing with each other. Introduced MT-Bench (a multi-turn benchmark) and Chatbot Arena (crowdsourced anonymous head-to-head). Catalogued the failure modes of LLM judges: position bias, verbosity bias, self-enhancement bias.
Why it matters: Made “LLM-as-a-judge” the default scoring engine for online evals. Every observability platform now ships a built-in judge feature; this paper’s biases are the ones you must mitigate (randomize order, normalize length, never use the same model to judge itself in self-play).
arXiv 2306.05685
Recent arXiv preprint, 2024 (Sierra)
τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains
Shunyu Yao, Noah Shinn, Pedram Razavi, Karthik Narasimhan (Sierra) · arXiv 2406.12045
Built a benchmark with realistic databases, domain APIs, and a simulated user, scored by comparing the final database state against an annotated goal state. Showed even gpt-4o succeeds on under 50% of retail tasks and is wildly inconsistent (pass^8 under 25%). Introduced the pass^k metric: probability that all k independent attempts succeed.
Why it matters: Reframed agent eval from average accuracy (which papers over unreliable systems) to reliability under repeated trials. Pass^k is now the metric every serious observability platform exposes by default; if your dashboard only shows pass@1, you’re lying to yourself.
arXiv 2406.12045
Recent arXiv preprint, 2024 (Meta AI / KAUST)
Agent-as-a-Judge: Evaluate Agents with Agents
Mingchen Zhuge, Changsheng Zhao, Dylan Ashley, et al. (Meta AI, KAUST — Jürgen Schmidhuber) · arXiv 2410.10934
Argued that LLM-as-a-judge collapses the entire trajectory into one final-answer score, ignoring the step-by-step nature of agentic work. Replaced the judge with another agent that can plan, run code, and inspect intermediate state. On a code-generation eval (DevAI, 55 dev tasks) the agent-judge matched human reviewers far better than an LLM-judge baseline at a fraction of the cost.
Why it matters: Online evals are starting to look agentic themselves. The implication for botlearn.ai: your judge stack will become a build-vs-buy decision on its own — the agent that grades student exercises is its own product surface, not a config flag on Langfuse.
arXiv 2410.10934
arXiv preprint 2024 (CSIRO Data61)
A Taxonomy of AgentOps for Enabling Observability of Foundation Model based Agents
Liming Zhu, Qinghua Lu, Liming Dong et al. (CSIRO Data61) · arXiv 2411.05285
A systematic mapping study of seventeen AgentOps tools that produces a taxonomy of the artefacts and data that should be traced across an agent’s lifecycle — design, deployment, monitoring, and decommissioning. Names what the OpenTelemetry GenAI semconv group has been formalising in parallel: prompt, plan, tool I/O, memory state, environment side-effect, and outcome attribution.
Why it matters: Gives you the canonical checklist for what your observability stack must capture. If your platform doesn’t have a column for any of the taxonomy nodes, you have a blind spot — and that’s usually where the gnarly post-mortems live.
arXiv 2411.05285

GitHub Pulse

Six Repos That Define the Stack

langfuse/langfuse ~26K ★
Open-source LLM engineering platform. Tracing, evals, prompt management, datasets, playground. YC W23.
The category leader by mindshare in early 2026. Self-hostable, OTel-native, broad framework support — the safest default if you want one box that does tracing + online evals + prompt versioning.
Arize-ai/phoenix ~9.4K ★
AI observability and evaluation. OpenInference instrumentation; runs locally, in a notebook, or self-hosted.
Notebook-first developer experience, strong on RAG eval recipes. Pairs with the OpenInference semconv as the open standard play. Crossed 5K stars in April 2025; doubled to ~9.4K within a year.
traceloop/openllmetry ~6.4K ★
OpenTelemetry extensions for GenAI — emit spans that any OTel backend (Datadog, Honeycomb, Grafana) can ingest.
The “don’t pick a vendor” play. If you already run OTel for your microservices, this is the lowest-friction way to make agent traces show up in the same dashboard.
AgentOps-AI/agentops ~5.3K ★
Python SDK for agent monitoring — LLM cost tracking, session replays, framework adapters (CrewAI, OpenAI Agents SDK, AutoGen).
Optimised for the multi-agent / orchestration era specifically. Two-line drop-in claim is real; weakest on prompt management, strongest on multi-agent session replay.
Arize-ai/openinference ~0.9K ★
OpenTelemetry-complementary semantic conventions for AI applications. Instrumentations for OpenAI, Anthropic, LangChain, LlamaIndex, Bedrock, etc.
Lower star count is misleading: this is plumbing, not a product. The conventions defined here are what the upstream OpenTelemetry GenAI working group is converging on, so betting on it = betting on the standard.
UKGovernmentBEIS/inspect_ai ~1.3K ★
Reproducible LLM and agent evaluation framework from the UK AI Security Institute. Dataset → Task → Solver → Scorer pipeline; sandboxed Docker execution; 200+ pre-built evals.
The serious-evals choice when you need reproducibility you can defend in a regulator meeting. AISI uses it for frontier-model red-team and dangerous-capability evals; pairs naturally with Langfuse / Phoenix for the run side.

Community Pulse

What the People Building This Are Saying

Harrison Chase — LangChain (April 2026)
Chase has argued through 2026 that observability and evaluation are not two products but one operational discipline: the trace of an agent run is the dataset for the next eval, and the next eval result is the alert for the next trace.
Position summarised from the LangChain post “Agent Observability Powers Agent Evaluation” and “How we build evals for Deep Agents” (Mar 26, 2026, co-authored by Trivedy, Daugherty, Yurtsev, and Chase). Source: blog.langchain.com.
Andrej Karpathy — X / Twitter (Dec 27, 2025)
In a long thread on the velocity of new agent infrastructure, Karpathy listed observability alongside agents, sub-agents, prompts, contexts, memory, modes, permissions, tools, plugins, skills, hooks, MCP, LSP, slash commands, workflows, and IDE integrations — and noted he had never felt so far behind on tooling.
Paraphrased from his Dec 27, 2025 X post. The signal: tracing is no longer optional infra — it’s a primitive on the same shelf as “tool” and “memory.”
Greg Brockman — X / Twitter (2026)
Brockman has framed the two big themes of AI in 2026 as enterprise agent adoption and scientific acceleration — both of which raise the bar on observability, since enterprise procurement and scientific reproducibility both demand auditable run histories.
Paraphrased from his 2026 thesis post on X. The product implication: every enterprise agent RFP now has an auditability column.
Simon Willison — simonwillison.net (2026)
Willison has consistently pushed the line that the bottleneck for shipping useful agents in 2026 is not raw model capability but the willingness to invest in evals — specifically, the unsexy, domain-specific datasets that let you tell whether last week’s prompt change broke anything.
Position aggregated from his “evals” tag posts and his 2026 LLM predictions piece. The takeaway: evals are a moat, not a chore.

Platform Deep-Dive

How the Big Four Implement Observability Today

Claude
Anthropic
Console-side tracing with full prompt + tool I/O capture, integrated with the Claude Agent SDK’s session replay. Extended thinking traces are visible by default, which means an external observability platform sees the same chain-of-thought the platform does — an advantage for compliance use cases. Recent: deeper Phoenix and Langfuse instrumentation in the Agent SDK; OTLP export for enterprise.
Codex / GPT-5.4
OpenAI
The OpenAI Agents SDK ships with built-in tracing surfaced in the Platform UI; Responses API exposes span-shaped data. Reasoning content is summarised, not raw — you bill for the tokens but only see a digest. This makes external observability a downstream product (Langfuse / Phoenix / AgentOps adapters) rather than first-party. Newest Apr 2026 build adds finer-grained eval suites for the Agents SDK.
Gemini 3.1
Google
Vertex AI integrates with Cloud Trace and Cloud Logging out of the box; Gemini exposes a thinking-budget knob and a redacted thoughts summary. The Agent Development Kit (ADK) has shipped first-class adapters to W&B Weave, Phoenix, AgentOps, and Langfuse, signalling a clear vendor-neutral observability posture for enterprise.
OpenClaw
Skill / Hub-and-Spoke
Each SKILL.md invocation is a span by construction — the hub maintains a parent trace_id across spoke skill calls, so a 12-skill workflow shows up as one tree. Recent additions: pluggable judge endpoints (declare a judge block in the skill manifest) and a built-in observability_export hook that pushes to OTLP. The downside, per Day 14’s CVE work, is that observability inherits the trust posture of whichever skills are in the workflow — a malicious skill can fake spans.
The vendor-neutral pattern that’s winning in 2026: instrument with OpenInference / OpenLLMetry, route via OTLP, store in your platform of choice. Avoid platforms whose pricing only makes sense if you forklift your tracing in.

Vocabulary

Ten Terms That Signal You’ve Worked With This Stack

Span · 跨度
A single unit of work inside a trace, with a start time, end time, parent ID, and arbitrary key/value attributes. The atomic record of agent observability.
Common misuse: calling the whole agent run a “span.” That’s the trace; spans are the children.
e.g. “The slow span was the retriever fetch — 4.2 seconds on a 12-doc result.”
Trace · 跟踪
The full tree of spans for one end-to-end run, identified by a single trace_id.
Don’t conflate “trace” with “log line.” A trace has structure; a log line is a string.
e.g. “Paste trace_id 7e2c into Phoenix and you’ll see the agent looped twice on the wrong tool.”
OTLP · 开放遥测协议
OpenTelemetry Protocol — the wire format (gRPC or HTTP/protobuf) for shipping traces, metrics, and logs to a backend. Vendor-neutral by design.
OTLP is the protocol; OpenInference and OpenLLMetry are the AI-specific conventions on top. Don’t use them interchangeably.
e.g. “Just point your OTLP endpoint at Langfuse and you’re done — no SDK lock-in.”
GenAI Semconv · 生成式 AI 语义约定
The OpenTelemetry working-group spec naming the standard attributes on AI spans (gen_ai.request.model, gen_ai.usage.input_tokens, gen_ai.tool.name, etc.). Active throughout 2025-2026.
The spec is still labelled experimental; pin a version and watch for breaking renames.
e.g. “Once GenAI semconv stabilises, we can swap backends without rewriting our dashboards.”
LLM-as-a-Judge · 大模型评评审
Using a strong LLM to score another LLM’s output against a structured rubric. Default scoring engine for online evals.
Naive judge usage inherits position bias, verbosity bias, and self-enhancement bias (Zheng et al., 2023). Always randomise the order of compared answers and never let a model judge itself in self-play scoring.
e.g. “The LLM-as-a-judge gave Claude a 4.2 and GPT a 4.0 — but only after we randomised position and ran 1000 samples.”
Agent-as-a-Judge · 智能体评审
A judge that is itself an agent — can plan, run code, query databases — allowing it to verify intermediate steps, not just the final answer (Zhuge et al., 2024).
Cost goes up, so use it on traces flagged by a cheaper LLM-judge first. Two-tier judging is the norm.
e.g. “The agent-judge actually ran the generated SQL and caught that the query returned the wrong rows.”
Pass^k · k 次连过率
From τ-bench: probability that all k independent attempts at the same task succeed. A reliability metric, not an ability metric.
Don’t confuse with pass@k (probability that at least one of k attempts succeeds, used in HumanEval). Pass^k is much harsher.
e.g. “Pass@1 is 65%, but pass^4 is 18% — the agent has a flaky tool path we haven’t fixed.”
Online vs Offline Eval · 在线与离线评测
Offline = batch run a fixed dataset against a candidate version (CI for agents). Online = score real production traffic asynchronously (canary in production).
If you only run offline evals, you’ll miss prompt-injection edge cases that only appear in real traffic; if you only run online, you can’t gate releases.
e.g. “The release passed offline but online eval flagged a 12% drop on Spanish queries within the hour.”
Drift · 漏漏变化 / 漂移
Distributional change in inputs (input drift) or outputs (output / quality drift) over time, even with the same prompt and same model version.
“Models can’t drift if I never redeploy.” They can — the world drifts. New jargon, new product names, new tools: same prompt, worse outcomes.
e.g. “Output drift on the support agent — eval scores down 8% week-over-week, before any code change.”
Trace Sampling · 跟踪采样
Recording only a fraction of traces in full (head sampling) or recording everything but keeping only interesting ones (tail sampling). Necessary at scale — storing 100% of agent traces verbatim is expensive.
Naive head-sampling kills your ability to debug rare failures. Tail-sample on error / low judge score / high cost.
e.g. “We tail-sample on judge_score < 0.6 plus 1% baseline — gives us every regression and a representative slice.”

Expert Questions

Five Questions That Open a Real Conversation

Q1
Where do you draw the trace boundary in a multi-agent system — one trace per user request, or one per agent? And how do you propagate context across MCP / A2A boundaries without leaking PII into every span attribute?
Tests whether they’ve actually shipped a multi-agent system or just demoed one. The honest answer involves W3C trace context propagation, attribute allowlists, and a redaction pipeline before storage.
Q2
Reasoning models give you private chain-of-thought you can’t observe directly (OpenAI summarises it; Anthropic exposes it). How does that change your eval rubric, and what new failure mode appears that didn’t exist with classic LLMs?
The new failure mode is “the answer is right but the reasoning is fake” — CoT faithfulness. Senior people will pivot here and start talking about probe-based interpretability.
Q3
Pass^k is a brutal metric. What does your team do operationally when pass@1 looks great but pass^8 is terrible — ship anyway with retries, refuse to ship, or modify the loss function during fine-tuning?
There’s no right answer. The signal is whether they distinguish between “flaky tool” (retries help), “flaky reasoning” (retries amplify), and “flaky env” (sandbox is the root cause). The category determines the fix.
Q4
LLM-as-a-judge has known biases — position, verbosity, self-enhancement. Walk me through your concrete mitigations, and at what point you switch to agent-as-a-judge or a human-in-the-loop sample.
Tests bias literacy. Mitigations: pairwise with order randomisation, length-normalised rubrics, judge-of-different-family, and reserved gold sets where humans grade the judge.
Q5
Where in the stack do you do redaction — at the SDK before the span is emitted, in the OTel collector, or at the storage layer? The answer commits you to a different threat model.
SDK = trust your own code, smaller blast radius. Collector = trust your network. Storage = nothing leaves the boundary unredacted, but you pay query cost. Engineers who’ve been on-call for an EU GDPR incident always say SDK.

CGO Lens

What This Means for botlearn.ai

Three Strategic Shifts to Make Inside the Next 90 Days

⚠ Watch-list for the next 90 days: (1) the OpenTelemetry GenAI semconv reaching stable status (locks the integration cost and makes it commodity), (2) EU AI Act enforcement guidance on auditability for general-purpose AI systems used in education (favors visible-CoT vendors), (3) a major LLM-as-a-judge correctness scandal that forces a pivot to agent-as-a-judge or human-graded gold sets — we want to be ahead of, not behind, that headline.

Curriculum Tracker

17 Days + 2 Bonus — Where We Are

D01 Full Agent Stack
D02 Memory Architecture
D03 Planning & Tool Use
D04 RAG Deep Dive
D05 Agent Frameworks
D06 Benchmarks & Eval
D07 Multi-Agent Systems
D08 Computer Use Agents
D09 Code Agents
D10 Long-Horizon Tasks
D11 Agent Safety
D12 Agent Economics
D13 Research Frontiers
D14 OpenClaw Deep-Dive
D15 A2A Protocols
D16 Agentic Commerce
D17 Synthesis (Capstone)
D18 Reasoning & Test-Time Compute
D19 Agent Observability & Evals · today