View captured content
Captured prompt and completion text appears on your spans in the to11 dashboard — open your project’s Traces view, pick a trace, select a GenAI span, and read the input messages, output messages, and system instructions inline. There is no database to query — the content is rendered with the rest of the span.Turning content capture off
Content capture is a gateway-level setting managed by to11. There is no per-request header or dashboard toggle to turn it off for an individual request or project — whether prompt and completion content is recorded is configured on the gateway, which to11 operates.What’s captured
When content capture is active, the following attributes are added to each GenAI span:
The
gen_ai.system_instructions attribute is recorded as a standalone string rather than embedded within gen_ai.input.messages. This separation lets you filter on the system prompt independently — for example, to see which system prompts are in use across your traffic without parsing the full message array.
Media endpoint content capture
Content capture behavior varies by endpoint because some endpoints handle binary data that cannot be meaningfully recorded as span attributes.
For chat completions, both streaming and non-streaming responses are captured. Streaming responses are accumulated from individual deltas into the final content before recording. Embeddings capture only the input text; the output vector data is omitted because it is not human-readable and would be prohibitively large.
Size limits
Streaming responses are accumulated in memory before being recorded as span attributes. To prevent unbounded memory growth, the gateway enforces size limits on accumulated content.When the streaming accumulation limit is reached, content is truncated. The span still records token counts, finish reasons, and all other attributes normally. Only the content capture attributes are affected by this limit.
Tool call content
When content capture is enabled, tool call child spans include additional attributes that record the function invocation details:gen_ai.tool.call.arguments— the function arguments as JSONgen_ai.input.messages— an object with the function name and arguments, so the tool call’s input is populated on the span
gen_ai.tool.definitions contains the JSON schema of all declared tools sent in the request. This attribute appears on the parent rather than on individual tool call child spans, since the tool definitions apply to the entire request.
For requests that produce multiple tool calls, each child span carries its own gen_ai.tool.call.arguments value. The parent span’s gen_ai.tool.definitions is recorded once regardless of how many tool calls appear in the response.