The existing provider SDK makes the request. The generated helper configures its
base URL and headers. Start with Set up with your coding agent.
Authentication and grouping
Use your normal provider authentication alongsidex-reasonblocks-key, carrying
the dashboard-issued capture key. The generated helper labels every call with
x-rb-run (the task) and x-rb-seq (the call’s number within it); reuse the same
x-rb-run across every call in one task. A process that handles more than one
task must name each task with run_headers() or an explicit rbtrace.client.run()
scope, or every task shares one x-rb-run. The dashboard does not read x-rb-seq.
A later full-agent training workflow also requires x-rb-snapshot-id naming a
real repeatable starting state. Ordinary capture does not require that snapshot.
See the integration reference for helper and
header details.
Whether a call was captured
A request the recorder cannot represent is still forwarded to your provider and still answered normally — being unrepresentable never costs you the call. It does mean that call produces no training row, so the response says which happened. (Two limits are refused before forwarding rather than passed on: a request body over 2 MB, and a malformedx-rb-snapshot-id. Those return an error instead of a model
answer.)
accepted describes the request only, and is set before the response streams: a response
can still fail to yield a usable reference — a stream that ends early, for instance — and
those appear in the pipeline’s capture-gap report in Data rather than in a header. An
error the connection itself returns carries no capture header at all.
What gets skipped is ordinary, which is why it is worth checking. Neither list below is
exhaustive — the connection accepts a fixed set of request options and skips anything
else. On OpenAI: options outside the supported set (presence_penalty,
frequency_penalty, n, logprobs among them), and any non-text message content such as
an image. On Anthropic: stop_sequences, top_k, enabled extended thinking, and likewise
any message content that is not text, a tool use or a tool result. One such option set globally
means no rows at all, so check this header once when you connect rather than waiting to
find an empty dataset.
Boundaries
The current dashboard connection and setup CLI do not provide OpenAI Responses, Realtime, WebSockets, Fireworks or arbitrary OpenAI-compatible upstreams. Google Gemini and Amazon Bedrock are captured through the self-hosted gateway instead — see Gemini and Bedrock. A Python wrapper does not make calls in a JavaScript or native child process compatible; configure the process that actually sends the request. For a trained full-agent release, use non-streaming requests with text and ordinary function tools. Images, forced tool selection, strict tool schemas and other request controls have separate admission rules. Capture support alone does not establish trained-model serving support. Read the full-agent serving contract before enabling a release. An older generated connection should follow the migration procedure. The sequence numberx-rb-seq is read by the self-hosted gateway, where a gap in a task’s
numbering leaves the run unproven. The dashboard connection groups by x-rb-run alone.
