Move the numbers. Read the trace.
A definition tells you what a system is called. A workbench lets you see what happens when you change the batch, remove a tool, shorten the context or pick a cheaper GPU. Everything runs in your browser.
Serving Workbench
Walk a request from arrival to first paint, then change the hardware, batch, context or SLO. Every view is a different budget: memory, latency, throughput, arithmetic intensity, money.
- Why decode is memory-bound
- When the KV cache eats the GPU
- What continuous batching actually buys
- How GPUs become a monthly bill
Harness Workbench
Give an agent tools, an approval mode and a context policy. Run one of three missions. The trace shows where the loop succeeded, where it guessed, and what it cost.
- Why a missing tool becomes a failed task
- How approval modes trade speed for safety
- When compaction drops a constraint
- Why a cheap model can be expensive
Tokenizer Lab
See the text the model actually receives: token IDs. Compare two vocabularies, watch code and multilingual text split apart, and turn a prompt into a context budget.
- Why token counts are not word counts
- How leading spaces become part of a token
- Where emoji and non-Latin scripts split
- How prompt length becomes cost
Change one variable. Predict first.
A lab is not a toy. It is a place to test a causal claim. Before you move a slider, write down what you expect to happen. Then move it and explain the difference.
Start from the default.
Run the baseline once. Note TTFT, memory, cost or the trace outcome. A number without a baseline is a decoration.
Change one thing.
Double concurrency. Remove the shell tool. Switch to INT4. If you change three things, you cannot attribute the result.
Explain the mechanism.
“It got slower” is not an explanation. “The KV cache outgrew HBM, so the batch size collapsed” is one.