Want to learn evals? buildevals.com →

// UNDERSTAND · AGENT OBSERVABILITY

See every step of every run.

RunAgain turns each agent run into a structured OpenTelemetry trace: every LLM call, tool call, retrieval step and token, with cost computed per span. Ship it from the Vercel AI SDK, Claude Agent SDK, Claude Code, LangChain or any OTLP SDK with no mapping to write.

THE PROBLEM

An agent is not a log line

A twenty-step run with six tool calls doesn't fit in a request log. When the answer looks wrong, you need the trajectory, not a wall of stdout: what was planned, what each tool returned, and what the model saw before it generated.

// HOW RUNAGAIN SOLVES IT

01gen_ai-aware traces and spans

Every span is classified as a generation, a tool call, or a step, and the common gen_ai attributes are promoted to typed, fast-to-query fields: model, input/output/cache/reasoning tokens, cost, tool name and status.

02Identity on every run

Session, conversation, user, agent name, environment, version, release and tags ride along on each trace. Set them once as span or resource attributes; common vendor aliases are accepted out of the box.

03A trace list built for triage

Saved views with live counts (All, Errors, Changed, Slow, Eval'd), plus filter tokens and free-text search over name, agent and trace id. Duration and status are color-flagged so the weird runs jump out.

04Sessions: multi-turn, stitched

Set a session id and every turn's trace rolls up into one conversation you can replay end to end: agents, turns, duration and eval scores in one row.

agent.run
4.21s
plan
0.72s
tool:search
0.94s
tool:db.query
0.58s
tool:policies ⚠
0.47s
generate
1.10s
run_a91f · support-bot · 1 span flagged 

The span tree of one run: timing, tools, and one flagged span.

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.