Want to learn evals? buildevals.com →

// UNDERSTAND · TRACE ENRICHMENT

Your traces know what happened. Your data knows if it mattered.

Attach internal context such as user, account tier, version or any custom metadata to every trace with plain span attributes. Then slice quality, cost and evals by the dimensions your business runs on.

THE PROBLEM

A trace without context is just timing

Knowing a run took 4.2 seconds is trivia. Knowing it was a premium customer's checkout, on last week's release, in the EU region? That's the difference between a dashboard and a decision.

// HOW RUNAGAIN SOLVES IT

01Metadata that becomes queryable

Session, conversation, user, agent, environment, version, release, tags and a free-form metadata bag are promoted to typed columns: fast to filter, chart and join, not buried in JSON blobs.

02No mapping to maintain

RunAgain accepts the OTel GenAI keys plus common vendor aliases, so traces from most SDKs enrich correctly with zero configuration. Resource attributes apply to every span from a process; span attributes win when both are set.

03Evals and alerts scoped by your data

Run the expensive LLM judge only where metadata.tier = premium; run strict structured-output checks only on the checkout agent. Enrichment isn't decoration; it routes your quality budget.

04Probes: capture the calls you don't own

The sandbox proxy captures your agent's outbound HTTP calls, third-party APIs and internal services included, and lands them inside the same trace via trace-context propagation. The tool side of the loop stops being a blind spot.

00:01.2  span.start plan · model=claude-fable-5
00:01.9  tool.call web_search("return policy france")
00:02.8  tool.result 200 · 4 documents · 1.2kb
eval.inline faithfulness 0.94 ✓
00:03.1  tool.call db.query(orders.recent)
00:03.7  tool.result 200 · 12 rows
00:04.0  span.start generate
eval.inline grounding 0.41 ✗ · cited 30-day, source says 14-day
00:04.6  drift.check baseline Δ +0.9% ok
00:05.1  span.end run_a91f · 4.21s total
00:01.2  span.start plan · model=claude-fable-5
00:01.9  tool.call web_search("return policy france")
00:02.8  tool.result 200 · 4 documents · 1.2kb
eval.inline faithfulness 0.94 ✓
00:03.1  tool.call db.query(orders.recent)
00:03.7  tool.result 200 · 12 rows
00:04.0  span.start generate
eval.inline grounding 0.41 ✗ · cited 30-day, source says 14-day
00:04.6  drift.check baseline Δ +0.9% ok
00:05.1  span.end run_a91f · 4.21s total

The annotated stream: evals and context surface inline.

COMMON USE CASES

RELATED SOLUTIONS

Be first to run again.

Book 30 minutes and see the loop on your own agents, or write to tamas@runagain.ai.