Backend tracing · LLM evaluation · agent simulation
Know what your agents did.
claude-code.turn
Claude CodeSpans
Tokens
≈Cost
Instrument, observe, evaluate.
Three steps, in the order a team actually does them. The same screens the product shows after sign-in.
Step 1: Instrument
Install the SDK and call init() once with an environment key. Your functions, HTTP requests, database queries and model calls are traced from there; coding agents connect with one CLI command.
Installpip install syntropylabs-evalkit npm install syntropylabs-evalkitStep 2: Observe
Each request becomes one trace: the spans it ran, the models it called, what it cost and where it failed. Sessions group turns; flags mark tool loops and truncation.
support_agent.turn
ok1.84 s5 spans3,412 tokens$0.0006session sess_4b1efig. 1 · trace header · sample data
Step 3: Evaluate
Run a dataset through evaluators, or score live traces with an online rule. Every run reports a pass rate, per-evaluator means and a gate you can block a deploy on.
Pass rate
87.5%
Gate
gate passed
pass_rate ≥ 0.85 ✓
fig. 2 · run summary · sample data
Traces
Every request your app made: the spans it ran, what it cost, where it failed, and the conversation behind it.
| Operation | Service | Status | Model | Latency | Tokens | ≈Cost | Score |
|---|---|---|---|---|---|---|---|
| support_agent.turn8f3a1c0d94e2session sess_4b1e | support-api | ok | gpt-4o-mini | 1.84 s | 3,412 | $0.0006 | 92%auto |
| refund_agent.turnc21d7e5a30b8session sess_9a02tool loop | refund-worker | ok | claude-sonnet-4 | 4.31 s | 7,905 | $0.0389 | 68%auto |
| claude-code.turn5be04f7d1a96session sess_f77c | Claude Code | unset | claude-sonnet-4 | 48.20 s | 61,208 | $0.19 | |
| rag.answere9a2b6c4d015error | docs-bot | error | gpt-4o | 6.02 s | 9,880 | $0.0312 | 41%auto |
| voice.turn17c8d3f2a4e0session sess_20d1 | ivr-agent | ok | gpt-4o-realtime | 0.92 s | 1,104 | $0.0071 |
fig. 3 · traces list · sample data
Evaluations
Run your dataset through evaluators and compare runs against a baseline.
support-agent · nightly
completedofficialPass rate
87.5%
Average score
84%
Rows
240
Judge cost
$1.42
318,402 in · 41,911 out tokens
Per evaluator
gate passedpass_rate ≥ 0.85 ✓ · groundedness ≥ 0.9 ✓Groundedness
91%
Answer relevance
88%
Tool-use correctness
79%
PII
100%
fig. 4 · evaluation run · sample data
Datasets
Upload, import and curate the rows your evaluations run on.
support-tickets
single-turn240 rows| # | Input | Expected output | Status | Source |
|---|---|---|---|---|
| 1 | Refund order 48213, delivered 3 weeks ago | Refund approved within 30-day window | golden | trace 8f3a1c |
| 2 | Cancel my subscription but keep my data | Cancel at period end, retain data 90 days | finalized | csv import |
| 3 | Why was I charged twice this month? | Identify duplicate charge, offer reversal | draft | synthesized |
fig. 5 · dataset rows · sample data
Simulations
Drive your agent through generated scenarios in a sandbox and score how it did.
| Scenario | Status | Turns | Tool calls | Task completion | Policy adherence | Verdict |
|---|---|---|---|---|---|---|
| Refund after 30 days, customer insists | done | 6 | 3 | 100% | 100% | passed |
| Address change mid-order | done | 4 | 2 | 100% | 75% | failed |
| Ask for another customer’s invoice | done | 3 | 1 | 100% | 100% | passed |
| Angry customer, three topics at once | timeout | 12 | 9 | no verdict | no verdict | no verdict |
fig. 6 · simulation run · sample data
8lines
Eight lines in, one trace out. The snippet below produces the trace beside it, span for span. Hover, focus or tap a line to see the span it made.
- 1import evalkit
- 2evalkit.init(subscription_key="tk_live_…", environment="production")
support_agent.turn
8f3a1c0d94e2ok1.8 s5 spans3,412 tokens$0.0006fig. 7 · the trace this snippet produces · sample data
- init() once with an environment key, and your own functions, HTTP and database clients and every model call are traced as they run. The agent is one part of the backend it traces.
- OpenAI, Anthropic, Bedrock, Cohere, Google and Vertex clients, LangChain, and the HTTP and database libraries around them, in Python and TypeScript.
- Coding agents connect with evalkit coding install: Claude Code, Codex and Gemini CLI export OpenTelemetry natively, the rest report through hooks.
pip install syntropylabs-evalkitpip install syntropylabs-evalkit
evalkit coding install --vendor claude-code --key tk_live_…$0
Tracing is free for one project, with no card on file. Evaluations, datasets and simulations are on paid plans; the full spec sheet is on the pricing page.