Tracing
Shows what happened.
- Agent started
- Retriever ran
- Tool called
- Answer generated
- Response delivered
Everything ran as planned.
Tracing shows what executed. Witdem shows whether the run achieved its product goal, what it cost, and why.
Open Source · Apache 2.0 · Self hosted
Shows what happened.
Everything ran as planned.
Shows whether the goal was achieved.
Product goal not achieved.
The run did not deliver the intended result.
You define what success means. Witdem evaluates the run against that definition.
Name the result you actually want in .witdem/witdem.yaml.
Witdem does not replace the pipeline. The workflow executes as it already does.
It checks the run against the definition you wrote. Runtime success is not the goal.
The job is a non-empty answer. Artifact validity is the goal.
version: 1
service:
name: boolean-answer-agent
runtime: langgraph
telemetry:
capture_content: false
contracts:
answer:
artifact:
name: Agent answer
valid:
non_empty: $.answer
decision:
name: Answer validity
expected: true
observed: $.witdem.artifact_valid
product_goal:
name: Useful answer returned
achieved: $.witdem.artifact_valid
version: 1
service:
name: classification-agent
runtime: langgraph
telemetry:
capture_content: false
contracts:
qualification:
artifact:
name: Company profile
valid:
non_empty: $.profile
decision:
name: Qualification decision
outcomes:
accepted: The company qualifies.
rejected: The company does not qualify.
escalated: Human review is required.
expected: $.expected_decision
observed: $.decision
product_goal:
name: Correct company qualification
achieved:
all:
- $.witdem.artifact_valid
- $.witdem.decision_correct
version: 1
service:
name: grounded-rag
runtime: haystack
telemetry:
capture_content: false
contracts:
grounded_answer:
artifact:
name: Grounded answer
valid:
non_empty: $.answer
decision:
name: Grounding decision
expected: true
observed: $.grounded
product_goal:
name: Successful grounded answer
achieved:
all:
- $.witdem.artifact_valid
- $.witdem.decision_correct
evidence_sufficient: $.grounded
evaluations:
- name: Groundedness
score: $.groundedness_score
target: 0.85
direction: higher_is_better
Mappings are declared. The SDK does not generate them, and it does not infer business success from a green span.
Witdem does not pick a model to score your output. If you have a quality score, you return it. The contract reads it.
The file is explicit, versionable, and owned by the application. Change the meaning of success in YAML, not in a dashboard toggle.
Witdem connects spend to workflow, task, run, execution path, provider, model, and product goal.
Demonstration data. A conceptual example, not a claimed customer metric.
Cost without context is just a number.
Total runs
1,842,910 ↗ 12.4% vs last 30 daysTotal cost
$1,843,210 ↗ 8.1% vs last 30 daysTotal tokens
18.4B ↗ 6.2% vs last 30 daysAverage cost per run
$1.00 ↗ 3.4% vs last 30 daysAverage latency
4.8s ↗ 1.1% vs last 30 days$1,843,210 Total cost
Assured
Achieved87.4%Needs attention
Achieved6.3%Not achieved
Goal failed6.3%Goal achievement rate 93.7%
Where spend concentrates on the executed path.
| Driver | Runs | Cost | Share |
|---|---|---|---|
| Retry path | 38,416 | $642,180 | 35% |
| Long context | 82,200 | $479,235 | 26% |
| Tool loops | 41,800 | $239,617 | 13% |
| High-cost model route | 60,400 | $202,753 | 11% |
| Other | 120,400 | $279,425 | 15% |
Illustration
$1,121,415 on retries and long context
Support Agent. Same product goal. Different cost and time.
| Model | Runs | Avg. cost | Avg. latency | Product goal |
|---|---|---|---|---|
| openai · gpt-4.1 | 84,200 | $0.81 | 8.4s | Achieved |
| anthropic · claude-sonnet | 61,100 | $0.54 | 6.2s | Achieved |
| ollama · llama3.1 | 20,400 | Not measured | 11.1s | Achieved |
Witdem works with the frameworks, models, and telemetry standards your AI workflows already use.
Your existing AI stack Witdem meaning
Pipelines, agents and retrieval.
Graphs, nodes, tools and streaming.
Chains, tools and retrievers.
Agents, tools and handoffs.
Agent steps, models and tools.
Messages API and Claude Agent SDK.
Model routing, usage and cost.
Multi-provider model routing.
Instrument your own application steps.
Standard OTLP telemetry.
Not a new orchestrator. Not a new runtime.
Witdem adds the meaning behind your traces to the stack you already have.
The principle
Witdem reports what your system actually observed. It does not fill gaps with guesses.
The contract
Witdem evaluates the run against that definition.
What was observed
Including branches, loops and concurrency.
Missing stays missing
Witdem does not silently turn missing data into zero.
Witdem does not replace your pipeline. You install a library, wrap the function you already call, and write one file that names a good result. Then you run the application exactly as you do today.
One package. Pick the extra that matches your stack.
pip install "witdem-sdk[haystack]"
Haystack extra. Stable.
Existing run and invoke calls stay as they are.
from witdem_sdk.integrations.haystack import instrument
pipeline = instrument(build_pipeline())
result = pipeline.run(data)
Create .witdem/witdem.yaml. That is the contract. Without it, Witdem can show the trace. It cannot tell you if the product goal was met.
From one line of setup and two lines of instrumentation to a measured run, its execution graph, business outcome, cost, and contract evidence.
Built for production. Designed for scale.
Analyze very large trace volumes with enterprise infrastructure.
Enterprise feature
Bring historical telemetry into Witdem.
Enterprise feature
Integrate Witdem into your existing AI infrastructure.
Enterprise feature
Get support from integration through operation.
Enterprise feature