Play · Developers and platform teams
Instrument LangGraph in an afternoon
Two lines,and every runis traced.
Import waxell_observe and call waxell.init() above the graph and every model call, tool call, token and dollar lands as a run you can open. No wrappers, no callback handler to maintain, and OpenTelemetry underneath so the spans export to what you already run.
30 minutes. No commitment.
SOC 2 Type II attested · ISO/IEC 27001:2022 certified · HIPAA with a BAA · aligned to the EU AI Act and NIST AI RMF

- This play uses
- 02Observe
Who
Two engineers who own a LangGraph support agent with a dozen nodes and a growing pile of 'why did it do that' tickets.
What happened
A customer asked why the agent answered in the wrong language, and the only evidence was a print statement from three deploys ago.
What's at stake
No trace per run, no cost per customer, and support tickets answered by guesswork.
- 01Observe
pip install, two lines, done.
pip install waxell-observe, then import waxell_observe as waxell and call waxell.init() before the graph compiles. The LangGraph instrumentor is one of 160+; the Anthropic, OpenAI, Bedrock and Vertex calls inside the nodes are picked up by their own. Nothing in the graph changes and there is no callback handler to wire. The spans are OpenTelemetry, so they also go to the collector you already have.
waxell.init() · 160+ instrumentors · OpenTelemetry underneath
observe · executions
- 02Observe
Open the run. Read what happened.
Each run is a record: the steps, every model call with tokens in and out, latency, the tool calls and their arguments, and the cost in real dollars across providers. The wrong-language answer is a run you open and read down to the call that chose it. The run detail ends with the policy check, which for an observe-only agent simply says allow.
executions list · run detail · tokens, latency, cost per call · policy check at the end
observe · run trace
- 03Observe
Replay the fix before you ship it.
Save the language node's new prompt as a version in the prompt registry, then replay recorded model calls against it. Each replay runs the new version with the exact variables captured from the original call and shows the two side by side: response, tokens, cost and latency. Cost per customer and per feature comes with every run, so a fix that doubles token use shows up before it ships. Observe also suggests step limits and timeouts from run history, which is the first policy most teams add.
replay recorded calls against a new prompt version · diff two versions on the same inputs
insights · cost per agent
- anthropic.messages · 1,204 in · 88 out · $0.011support-graph · run 3f1a · classify · observe only · tracedallow
- tool crm.get_customer · 340 mssupport-graph · run 3f1a · lookup · observe only · tracedallow
- openai.chat · 2,910 in · 412 out · $0.019support-graph · run 3f1a · answer · observe only · tracedallow
- policy check · observe-only agentsupport-graph · run 3f1a · end · no policy set · tracedallow
- replay of recorded call · v12 vs v13support-graph · prompt answer v13 · v13 +4% tokens · answers in the customer's languageallow
Illustrative entries in the shape the product writes them.
Products in this play
Yes. The LangGraph instrumentor records the graph, and the Anthropic, OpenAI, Bedrock, Vertex, Mistral or Ollama calls inside each node are recorded by their own instrumentors. The same goes for CrewAI, OpenAI Agents and LlamaIndex if you use them next.
Run this play this week.
Free for your first agents and devices, live in about thirty seconds. Or walk through it with someone who has run it before.
30 minutes. No commitment.
SOC 2 Type II attested · ISO/IEC 27001:2022 certified · HIPAA with a BAA · aligned to the EU AI Act and NIST AI RMF