Observability for AI agents with AgentTrace

AI agents don't crash, they return plausible-sounding wrong answers. AgentTrace monitors every LLM call, tool call, and decision as an execution graph, the observability stage of your Agent DLC.

~15 sectrace ingestion latency
Zeronew infrastructure required
6span types captured
1-clickexport to eval dataset
The observability gap

Standard tooling wasn't built to catch this

A hallucination returns HTTP 200. A run that took fourteen needless tool calls looks identical to a clean one. Three gaps make plain tracing insufficient for agents.

Doesn't score quality

A distributed trace tells you a call took 340ms and returned 200. It says nothing about whether the answer was right.

AgentTrace assembles every span into an execution graph that AI Evals scores for correctness, groundedness, and safety.

Wrong unit of work

A microservice trace ends when the request returns. An agent's behavior only makes sense across a run and a multi-turn session.

AgentTrace groups every model call, tool call, and turn into sessions, so you can see behavior evolve or degrade over a conversation.

Observing is passive

Even when tracing surfaces a bad run, it can only tell you after the fact. It can't act while a run is going wrong.

AgentTrace's runtime layer closes the loop: every investigated failure becomes a permanent regression gate for the next release.

How it works

One pipeline, four stages

Agents emit OpenTelemetry spans using Harness semantic conventions, a shared vocabulary for tool calls, LLM invocations, and retrieval. Data flows in through the existing Harness data platform, no new infrastructure required.

What it captures

Every execution is a tree of typed spans

Each span carries input, output, latency, start time, and a parent span ID that forms the tree. LLM spans additionally carry token counts and model attribution.

A single LLM call. Model, prompt tokens, completion tokens, temperature.

A tool or function call. Tool name, arguments, and result.

A vector search or document lookup. Query, number of results, source.

Agent / custom step. Top-level invocations, orchestration steps, and any user-defined step.

Agent in production
harness-sdk captures the run
Run in analytics
within seconds
Engineer finds a bad run
hallucination · wrong tool · slow path
ship the next release

Every failure becomes a test
the loop turns production incidents into release gates

Export to Dataset — one click
CI gate on next release
eval fails → deploy blocks
Eval suite
harness-evals
Golden eval case
input · output · context · trace_id
Investigate, annotate, export

Every production failure can become a regression gate

The trace viewer is for investigation, not monitoring: come here when something went wrong. Annotate traces with quality labels and rationale, then export any bad run into a golden eval case in one click, input/output pair and context preserved.

Investigate. The full span tree for any execution: input, output, latency, tokens, and cost for every step.

Annotate. Quality labels (Correct, Incorrect, Borderline) and free-text rationale, with a taxonomy customizable per team.

Export to Dataset. One click promotes a production failure into a golden eval case that gates the next CI release.

The foundation that powers Agent DLC

One trace layer, every AI product

AI Evals and Agent DLC don't track your agents separately, they build directly on what AgentTrace already sees. Every eval score links straight back to the run that produced it.

OTel-native ingestion

Agents emit standard OpenTelemetry spans via the open source harness-sdk. Works with OpenAI, Anthropic, LangChain, or raw HTTP, no proprietary format to adopt.

Zero new infrastructure

Runs on the Harness data platform you already have: existing gateway, Kafka, and query services. Nothing new to provision or operate.

Full execution graph

In Development

Every span carries a parent ID, reconstructing the complete causal chain from user query through reasoning, retrieval, and response.

HQL-queryable

All trace data lives in a high-volume, columnar analytics store, queryable via HQL through query-service. Any module that can issue HQL can access agent telemetry.

RBAC and tenant scoping

Auth, RBAC, and scope resolution inherited from NG Manager, the same governance already protecting your pipelines.

Shared model with AI Evals

Score.trace_id is the join key that connects every eval score back to the trace that produced it, one data model across your Agent DLC, not two.

Frequently asked questions

Common questions about AgentTrace

They're two halves of the same system. AgentTrace captures what happened: the execution graph. AI Evals judges whether it was good: the quality scores. Score.trace_id is the join key that links every eval score back to the trace that produced it, so production metrics and offline evals show up on one screen.

Depends on how they run. The harness/ai container emits OTel spans automatically with zero instrumentation code. Custom agents can use the AgentTrace SDK with native support for OpenAI, Anthropic, LangChain, and raw HTTP. Any OTel-compatible agent can also send spans directly to the OTLP endpoint.

Traces, spans, sessions, and eval scores live in a high-volume, columnar analytics store. Human annotations live in Postgres, linked back to traces by trace_id. Traces typically land in the analytics store within about 15 seconds of the agent execution.

Yes, the collection and evaluation layers are open source under Apache 2.0. harness-sdk (github.com/harness/otel-python-sdk) auto-instruments OpenAI, Anthropic, and LiteLLM and exports standard OTLP to any backend. harness-evals (github.com/harness/harness-evals) scores correctness, groundedness, safety, trajectory, and performance and gates CI through pytest. On Harness, the platform wires the two together and adds the trace viewer, human annotation, Export to Dataset, and analytics on top.

Get started

See what your AI agents actually did

Start capturing execution graphs today, no new infrastructure required.