Servers
Pick a server below. The first one is this console's own engine — derived from the deployment, always present. Add another and the console dials it itself, server-side, with the credential you give it here; that credential stays on the console and never reaches this page.
Live request swimlane
— in flight · — queued · — completedLive logs
Open in Grafana Explore ↗Advanced
Swap KV backend — live rebuild
Builds and parks a backend variant beside the live one. Re-selecting a prepared Hadamard or OSCAR variant is instant; the first selection of a variant rebuilds and captures it.
Load a different model — live reload
Compare two arms
This axis restarts the engine onto each build in turn. The deployment is down for the length of two boots, and anything served by it is interrupted.
Scores the divergence between the two
arms over positions they GENERATED, using only /v1/completions with
logprobs. One arm's greedy continuation is fixed as the reference and both arms
continue from it at a ladder of anchors, so every scored position conditions on identical
bytes. Prefill positions are deliberately not scored: they are computed from fresh K/V rather
than a read-back of the cache, so they are blind to a KV codec. Arm A is measured twice
against itself and that null is the RESOLUTION FLOOR — a result at or below it was not
resolved, which is not the same as the arms agreeing. A prompt the two arms did not
genuinely share is void, and a run that scored nothing refuses by name rather than
reporting zero. Check both arms with Preflight first: not every engine serves logprobs on
this route.
Both arms receive the same built-in prompt suite in the same order, with identical sampling, concurrency, output cap, and excluded warmups. The 16k/128k presets build their prompts with the engine's canonical playground workloads and size the output by natural EOS; a fresh prompt is generated for every request so no endpoint can serve one from a prefix cache. Concurrent arms cancel temporal drift for cross-host comparisons — do not use it for two endpoints on the same GPU, where they would contend. Generated text is not retained; the receipt keeps prompt hashes/text, timings, token counts, errors, and protocol.
Progress
command
Result
Stored runs
Sent as the first
{role: "system"} message on every Chat request and saved in this browser.
This is separate from Audio's realtime voice-agent system message.
Generate a reply, or paste/edit text in the box below, then press Detect.
A/B workflow: run a workload once — with no stored baseline for the flag set it ran under, that run IS the A baseline. Flip a flag in Config and run the SAME workload again: the new block measures only B and compares against the stored baseline, showing throughput/latency deltas AND exactly which config values differ. Set as A/B baseline re-points the baseline at a particular run; Clear baseline withdraws the role and keeps the measurement.
Runs are independent: submitting again while one is still going adds a second block rather than replacing the first, and the blocks may finish in any order.
A/B store: …
Connection
The browser's own capture processing, applied
before a single sample reaches this page. Takes effect at the next Start mic.
All three are sent explicitly — an omitted constraint is not "off", it is the browser's
default (Chrome turns autoGainControl on). Enabling all three measurably
loses quiet speech: replaying a fixed recording through a real Chrome and transcribing it
with the server's own RNNT head, all-three averaged 80.3 labels over four runs and lost a
whole short utterance in 4 of 4, against 91 for the untouched recording and 88.6 for echo
cancellation alone (design doc §7.56). Echo cancellation is on by default because a duplex
user on speakers needs it.
Auto gain control does not improve accuracy — the served checkpoint is
level-invariant (30 dB of attenuation moves word error by nothing), so gain cannot help.
What does predict accuracy is the speech-to-background ratio: word error is flat above
~12 dB SNR, 36% at 6 dB and 69% at 0 dB. If speech is being mis-heard, the fix
is a closer or better-isolated microphone, not a setting here — and the server logs a
warning naming the SNR when that is what is happening (design doc §7.59).
Transcript
Tools
Sent as session.update's tools
array on every (re)connect — toggle before Connect, or reconnect to pick up a change.
The two built-ins run entirely in this page (no backend, no real API keys), so the full round trip —
call → ack_messages genuinely spoken while it "runs" → result → spoken answer — is
testable end to end. A custom tool has no page-side implementation: when the model calls one, a
prompt appears below where you type the result yourself and send it.
Sent as session.update's
tool_choice. auto is the default and changes nothing about how this
model behaves — it already calls tools correctly on its own; the grammar only steps in
once the model has opened a <TOOLCALL>, to keep the block well-formed.
required and a named tool FORCE a call on the function channel as soon as you stop
speaking, which is mainly useful for testing. none disables enforcement entirely.
Event log
Calibration bundle
A bundle is installed by the operation that rebuilds with it: Swap KV backend or Reload model, both under Status → Advanced. Both read this picker, so the choice is made once, here.
Console endpoints — where this console reads metrics, logs and traces
Stored in this browser's localStorage only. This console page never talks to the target
directly — every call is proxied through this console process (see arbi_serve/admin_console/),
so the target can be anywhere this console has network reach, not just the host serving this page.
ARBI MCP OAuth-protected
Connects this console to the deployment’s document, search and assistant tools. Connect opens ARBI login and consent, then keeps the resulting session in this browser.