These attributes are deprecated and should not be used in new code. See each attribute for migration guidance.
string[]Scrub: Auto Visibility: Public OTel: False
References or sources cited by the AI model in its response.
Example ["Citation 1","Citation 2"]
No replacement available at this time.
Changelog Raw JSONCopy {
"key": "ai.citations",
"brief": "References or sources cited by the AI model in its response.",
"type": "string[]",
"apply_scrubbing": {
"key": "auto"
},
"is_in_otel": false,
"visibility": "public",
"example": [
"Citation 1",
"Citation 2"
],
"deprecation": {
"_status": null
},
"changelog": [
{
"version": "0.5.0",
"prs": [
264
]
},
{
"version": "0.1.0",
"prs": [
55
]
}
]
}integerScrub: Manual Visibility: Public OTel: False
The number of tokens used to respond to the message.
Changelog Raw JSONCopy {
"key": "ai.completion_tokens.used",
"brief": "The number of tokens used to respond to the message.",
"type": "integer",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": 10,
"deprecation": {
"replacement": "gen_ai.usage.output_tokens",
"_status": "backfill"
},
"alias": [
"gen_ai.usage.output_tokens",
"gen_ai.usage.completion_tokens"
],
"changelog": [
{
"version": "0.4.0",
"prs": [
228
]
},
{
"version": "0.1.0",
"prs": [
57,
61
]
},
{
"version": "0.0.0"
}
]
}string[]Scrub: Auto Visibility: Public OTel: False
Documents or content chunks used as context for the AI model.
Example ["document1.txt","document2.pdf"]
No replacement available at this time.
Changelog Raw JSONCopy {
"key": "ai.documents",
"brief": "Documents or content chunks used as context for the AI model.",
"type": "string[]",
"apply_scrubbing": {
"key": "auto"
},
"is_in_otel": false,
"visibility": "public",
"example": [
"document1.txt",
"document2.pdf"
],
"deprecation": {
"_status": null
},
"changelog": [
{
"version": "0.5.0",
"prs": [
264
]
},
{
"version": "0.1.0",
"prs": [
55
]
}
]
}stringScrub: Manual Visibility: Public OTel: False
The reason why the model stopped generating.
Changelog Raw JSONCopy {
"key": "ai.finish_reason",
"brief": "The reason why the model stopped generating.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "COMPLETE",
"deprecation": {
"replacement": "gen_ai.response.finish_reasons",
"_status": "backfill"
},
"alias": [
"gen_ai.response.finish_reasons"
],
"changelog": [
{
"version": "0.1.0",
"prs": [
55,
57,
61,
108,
127
]
}
]
}doubleScrub: Manual Visibility: Public OTel: False
Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation.
Changelog Raw JSONCopy {
"key": "ai.frequency_penalty",
"brief": "Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation.",
"type": "double",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": 0.5,
"deprecation": {
"replacement": "gen_ai.request.frequency_penalty",
"_status": "backfill"
},
"alias": [
"gen_ai.request.frequency_penalty"
],
"changelog": [
{
"version": "0.4.0",
"prs": [
228
]
},
{
"version": "0.1.0",
"prs": [
55,
57,
61,
108
]
}
]
}stringScrub: Auto Visibility: Public OTel: False
For an AI model call, the function that was called. This is deprecated for OpenAI, and replaced by tool_calls
Changelog Raw JSONCopy {
"key": "ai.function_call",
"brief": "For an AI model call, the function that was called. This is deprecated for OpenAI, and replaced by tool_calls",
"type": "string",
"apply_scrubbing": {
"key": "auto"
},
"is_in_otel": false,
"visibility": "public",
"example": "function_name",
"deprecation": {
"replacement": "gen_ai.tool.name",
"_status": "backfill"
},
"alias": [
"gen_ai.tool.name",
"mcp.tool.name"
],
"changelog": [
{
"version": "0.1.0",
"prs": [
55,
57,
61,
108
]
}
]
}stringScrub: Manual Visibility: Public OTel: False
Unique identifier for the completion.
Changelognext Added ai.response.id as an alias
Raw JSONCopy {
"key": "ai.generation_id",
"brief": "Unique identifier for the completion.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "gen_123abc",
"deprecation": {
"replacement": "gen_ai.response.id",
"_status": "backfill"
},
"alias": [
"gen_ai.response.id",
"ai.response.id"
],
"changelog": [
{
"version": "next",
"description": "Added ai.response.id as an alias"
},
{
"version": "0.1.0",
"prs": [
55,
57,
61,
108,
127
]
}
]
}stringScrub: Manual Visibility: Public OTel: False
The input messages sent to the model
Example [{"role": "user", "message": "hello"}]
Changelog Raw JSONCopy {
"key": "ai.input_messages",
"brief": "The input messages sent to the model",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "[{\"role\": \"user\", \"message\": \"hello\"}]",
"deprecation": {
"replacement": "gen_ai.input.messages",
"_status": "backfill"
},
"alias": [
"gen_ai.request.messages"
],
"changelog": [
{
"version": "0.1.0",
"prs": [
65,
119
]
},
{
"version": "0.0.0"
}
]
}booleanScrub: Manual Visibility: Public OTel: False
Boolean indicating if the model needs to perform a search.
Example false
No replacement available at this time.
Changelog Raw JSONCopy {
"key": "ai.is_search_required",
"brief": "Boolean indicating if the model needs to perform a search.",
"type": "boolean",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": false,
"deprecation": {
"_status": null
},
"changelog": [
{
"version": "0.5.0",
"prs": [
264
]
},
{
"version": "0.1.0",
"prs": [
55
]
}
]
}stringScrub: Manual Visibility: Public OTel: False
Extra metadata passed to an AI pipeline step.
Example {"user_id": 123, "session_id": "abc123"}
No replacement available at this time.
Changelog Raw JSONCopy {
"key": "ai.metadata",
"brief": "Extra metadata passed to an AI pipeline step.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "{\"user_id\": 123, \"session_id\": \"abc123\"}",
"deprecation": {
"_status": null
},
"changelog": [
{
"version": "0.5.0",
"prs": [
264
]
},
{
"version": "0.1.0",
"prs": [
55,
127
]
}
]
}stringScrub: Manual Visibility: Public OTel: False
The vendor-specific ID of the model used.
Changelognext Added ai.model.id as an alias
v0.0.0
Raw JSONCopy {
"key": "ai.model_id",
"brief": "The vendor-specific ID of the model used.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "gpt-4",
"deprecation": {
"replacement": "gen_ai.request.model",
"_status": "backfill"
},
"alias": [
"gen_ai.request.model",
"ai.model.id"
],
"changelog": [
{
"version": "next",
"description": "Added ai.model.id as an alias"
},
{
"version": "0.1.0",
"prs": [
57,
61,
127
]
},
{
"version": "0.0.0"
}
]
}stringScrub: Manual Visibility: Public OTel: False
The id of the model used by the Vercel AI SDK.
Examples gpt-4o
Use gen_ai.request.model instead.
This attribute is being deprecated in favor of gen_ai.request.model.
Status: backfill
Changelognext #583 Added ai.model.id attribute Raw JSONCopy {
"key": "ai.model.id",
"brief": "The id of the model used by the Vercel AI SDK.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"examples": [
"gpt-4o"
],
"deprecation": {
"replacement": "gen_ai.request.model",
"reason": "This attribute is being deprecated in favor of gen_ai.request.model.",
"_status": "backfill"
},
"alias": [
"gen_ai.request.model",
"ai.model_id"
],
"changelog": [
{
"version": "next",
"prs": [
583
],
"description": "Added ai.model.id attribute"
}
]
}stringScrub: Manual Visibility: Public OTel: False
The provider of the model.
Changelog Raw JSONCopy {
"key": "ai.model.provider",
"brief": "The provider of the model.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "openai",
"deprecation": {
"replacement": "gen_ai.provider.name",
"_status": "backfill"
},
"alias": [
"gen_ai.provider.name",
"gen_ai.system"
],
"changelog": [
{
"version": "0.4.0",
"prs": [
253
]
},
{
"version": "0.1.0",
"prs": [
57,
61,
108,
127
]
}
]
}stringScrub: Manual Visibility: Public OTel: False
The name of the AI pipeline.
Changelog Raw JSONCopy {
"key": "ai.pipeline.name",
"brief": "The name of the AI pipeline.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "Autofix Pipeline",
"deprecation": {
"replacement": "gen_ai.pipeline.name",
"_status": "backfill"
},
"alias": [
"gen_ai.pipeline.name"
],
"changelog": [
{
"version": "0.1.0",
"prs": [
53,
76,
108,
127
]
}
]
}stringScrub: Auto Visibility: Public OTel: False
For an AI model call, the preamble parameter. Preambles are a part of the prompt used to adjust the model's overall behavior and conversation style.
Example You are now a clown.
Changelog Raw JSONCopy {
"key": "ai.preamble",
"brief": "For an AI model call, the preamble parameter. Preambles are a part of the prompt used to adjust the model's overall behavior and conversation style.",
"type": "string",
"apply_scrubbing": {
"key": "auto"
},
"is_in_otel": false,
"visibility": "public",
"example": "You are now a clown.",
"deprecation": {
"replacement": "gen_ai.system_instructions",
"_status": "backfill"
},
"alias": [
"gen_ai.system_instructions"
],
"changelog": [
{
"version": "0.5.0",
"prs": [
264
]
},
{
"version": "0.1.0",
"prs": [
55
]
}
]
}doubleScrub: Manual Visibility: Public OTel: False
Used to reduce repetitiveness of generated tokens. Similar to frequency_penalty, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies.
Changelog Raw JSONCopy {
"key": "ai.presence_penalty",
"brief": "Used to reduce repetitiveness of generated tokens. Similar to frequency_penalty, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies.",
"type": "double",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": 0.5,
"deprecation": {
"replacement": "gen_ai.request.presence_penalty",
"_status": "backfill"
},
"alias": [
"gen_ai.request.presence_penalty"
],
"changelog": [
{
"version": "0.4.0",
"prs": [
228
]
},
{
"version": "0.1.0",
"prs": [
55,
57,
61,
108
]
}
]
}stringScrub: Manual Visibility: Public OTel: False
The prompt passed to the Vercel AI SDK, as a stringified object.
Examples {"prompt":"What is the weather in Paris?"}
Use gen_ai.input.messages instead.
This attribute is being deprecated in favor of gen_ai.input.messages.
Status: backfill
Changelognext #583 Added ai.prompt attribute Raw JSONCopy {
"key": "ai.prompt",
"brief": "The prompt passed to the Vercel AI SDK, as a stringified object.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"examples": [
"{\"prompt\":\"What is the weather in Paris?\"}"
],
"deprecation": {
"replacement": "gen_ai.input.messages",
"reason": "This attribute is being deprecated in favor of gen_ai.input.messages.",
"_status": "backfill"
},
"alias": [
"gen_ai.input.messages",
"ai.texts",
"ai.prompt.messages",
"gen_ai.prompt"
],
"changelog": [
{
"version": "next",
"prs": [
583
],
"description": "Added ai.prompt attribute"
}
]
}integerScrub: Manual Visibility: Public OTel: False
The number of tokens used to process just the prompt.
Changelog Raw JSONCopy {
"key": "ai.prompt_tokens.used",
"brief": "The number of tokens used to process just the prompt.",
"type": "integer",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": 20,
"deprecation": {
"replacement": "gen_ai.usage.input_tokens",
"_status": "backfill"
},
"alias": [
"gen_ai.usage.prompt_tokens",
"gen_ai.usage.input_tokens"
],
"changelog": [
{
"version": "0.4.0",
"prs": [
228
]
},
{
"version": "0.1.0",
"prs": [
57,
61
]
},
{
"version": "0.0.0"
}
]
}stringScrub: Manual Visibility: Public OTel: False
The input messages sent to the AI model.
Example [{"role": "user", "message": "hello"}]
Changelognext Added ai.prompt as an alias
v0.19.0 #498 Added ai.prompt.messages attribute Raw JSONCopy {
"key": "ai.prompt.messages",
"brief": "The input messages sent to the AI model.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "[{\"role\": \"user\", \"message\": \"hello\"}]",
"deprecation": {
"replacement": "gen_ai.input.messages",
"_status": "backfill"
},
"alias": [
"gen_ai.input.messages",
"ai.texts",
"gen_ai.prompt",
"ai.prompt"
],
"changelog": [
{
"version": "next",
"description": "Added ai.prompt as an alias"
},
{
"version": "0.19.0",
"prs": [
498
],
"description": "Added ai.prompt.messages attribute"
}
]
}string[]Scrub: Manual Visibility: Public OTel: False
The tools made available to the model, as an array of stringified tool definitions.
Examples ["{\"type\":\"function\",\"name\":\"get_weather\"}"]
Use gen_ai.tool.definitions instead.
This attribute is being deprecated in favor of gen_ai.tool.definitions.
Status: backfill
Changelognext #583 Added ai.prompt.tools attribute Raw JSONCopy {
"key": "ai.prompt.tools",
"brief": "The tools made available to the model, as an array of stringified tool definitions.",
"type": "string[]",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"examples": [
[
"{\"type\":\"function\",\"name\":\"get_weather\"}"
]
],
"deprecation": {
"replacement": "gen_ai.tool.definitions",
"reason": "This attribute is being deprecated in favor of gen_ai.tool.definitions.",
"_status": "backfill"
},
"changelog": [
{
"version": "next",
"prs": [
583
],
"description": "Added ai.prompt.tools attribute"
}
]
}booleanScrub: Manual Visibility: Public OTel: False
When enabled, the user’s prompt will be sent to the model without any pre-processing.
Example true
No replacement available at this time.
Changelog Raw JSONCopy {
"key": "ai.raw_prompting",
"brief": "When enabled, the user’s prompt will be sent to the model without any pre-processing.",
"type": "boolean",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": true,
"deprecation": {
"_status": null
},
"changelog": [
{
"version": "0.5.0",
"prs": [
264
]
},
{
"version": "0.1.0",
"prs": [
55
]
}
]
}stringScrub: Manual Visibility: Public OTel: False
For an AI model call, the format of the response
Example json_object
No replacement available at this time.
Changelog Raw JSONCopy {
"key": "ai.response_format",
"brief": "For an AI model call, the format of the response",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "json_object",
"deprecation": {
"_status": null
},
"changelog": [
{
"version": "0.5.0",
"prs": [
264
]
},
{
"version": "0.1.0",
"prs": [
55,
127
]
}
]
}stringScrub: Manual Visibility: Public OTel: False
The id of the response returned by the model.
Examples chatcmpl-BuKJgVSKAMTUYbBSjHTMUuNGKzOPY
Use gen_ai.response.id instead.
This attribute is being deprecated in favor of gen_ai.response.id.
Status: backfill
Changelognext #583 Added ai.response.id attribute Raw JSONCopy {
"key": "ai.response.id",
"brief": "The id of the response returned by the model.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"examples": [
"chatcmpl-BuKJgVSKAMTUYbBSjHTMUuNGKzOPY"
],
"deprecation": {
"replacement": "gen_ai.response.id",
"reason": "This attribute is being deprecated in favor of gen_ai.response.id.",
"_status": "backfill"
},
"alias": [
"gen_ai.response.id",
"ai.generation_id"
],
"changelog": [
{
"version": "next",
"prs": [
583
],
"description": "Added ai.response.id attribute"
}
]
}stringScrub: Manual Visibility: Public OTel: False
The id of the model that produced the response.
Examples gpt-4o-2024-08-06
Use gen_ai.response.model instead.
This attribute is being deprecated in favor of gen_ai.response.model.
Status: backfill
Changelognext #583 Added ai.response.model attribute Raw JSONCopy {
"key": "ai.response.model",
"brief": "The id of the model that produced the response.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"examples": [
"gpt-4o-2024-08-06"
],
"deprecation": {
"replacement": "gen_ai.response.model",
"reason": "This attribute is being deprecated in favor of gen_ai.response.model.",
"_status": "backfill"
},
"alias": [
"gen_ai.response.model"
],
"changelog": [
{
"version": "next",
"prs": [
583
],
"description": "Added ai.response.model attribute"
}
]
}stringScrub: Manual Visibility: Public OTel: False
The type of the object returned by the model.
Examples chat.completion
No replacement available at this time.
This attribute is deprecated. The Sentry conventions have no replacement for the raw Vercel AI response object type.
Changelognext #583 Added ai.response.object attribute Raw JSONCopy {
"key": "ai.response.object",
"brief": "The type of the object returned by the model.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"examples": [
"chat.completion"
],
"deprecation": {
"reason": "This attribute is deprecated. The Sentry conventions have no replacement for the raw Vercel AI response object type.",
"_status": null
},
"changelog": [
{
"version": "next",
"prs": [
583
],
"description": "Added ai.response.object attribute"
}
]
}stringScrub: Manual Visibility: Public OTel: False
The text response from the AI model.
Example The weather in Paris is currently rainy.
Changelogv0.19.0 #498 Added ai.response.text attribute Raw JSONCopy {
"key": "ai.response.text",
"brief": "The text response from the AI model.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "The weather in Paris is currently rainy.",
"deprecation": {
"replacement": "gen_ai.output.messages",
"_status": "backfill"
},
"alias": [
"gen_ai.output.messages",
"ai.response.toolCalls"
],
"changelog": [
{
"version": "0.19.0",
"prs": [
498
],
"description": "Added ai.response.text attribute"
}
]
}stringScrub: Manual Visibility: Public OTel: False
The ISO 8601 timestamp at which the response was produced.
Examples 2026-02-19T15:32:11.000Z
No replacement available at this time.
This attribute is deprecated. The span start and end timestamps carry the same information.
Changelognext #583 Added ai.response.timestamp attribute Raw JSONCopy {
"key": "ai.response.timestamp",
"brief": "The ISO 8601 timestamp at which the response was produced.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"examples": [
"2026-02-19T15:32:11.000Z"
],
"deprecation": {
"reason": "This attribute is deprecated. The span start and end timestamps carry the same information.",
"_status": null
},
"changelog": [
{
"version": "next",
"prs": [
583
],
"description": "Added ai.response.timestamp attribute"
}
]
}stringScrub: Manual Visibility: Public OTel: False
The tool calls in the AI model response.
Example [{"name": "get_weather", "arguments": {"location": "Paris"}}]
Changelogv0.19.0 #498 Added ai.response.toolCalls attribute Raw JSONCopy {
"key": "ai.response.toolCalls",
"brief": "The tool calls in the AI model response.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "[{\"name\": \"get_weather\", \"arguments\": {\"location\": \"Paris\"}}]",
"deprecation": {
"replacement": "gen_ai.output.messages",
"_status": "backfill"
},
"alias": [
"gen_ai.output.messages",
"ai.response.text"
],
"changelog": [
{
"version": "0.19.0",
"prs": [
498
],
"description": "Added ai.response.toolCalls attribute"
}
]
}string[]Scrub: Manual Visibility: Public OTel: False
The response messages sent back by the AI model.
Changelog Raw JSONCopy {
"key": "ai.responses",
"brief": "The response messages sent back by the AI model.",
"type": "string[]",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": [
"hello",
"world"
],
"deprecation": {
"replacement": "gen_ai.output.messages",
"_status": "backfill"
},
"changelog": [
{
"version": "0.1.0",
"prs": [
65,
127
]
},
{
"version": "0.0.0"
}
]
}stringScrub: Manual Visibility: Public OTel: False
The stringified JSON schema the model output must conform to.
Examples {"type":"object","properties":{"city":{"type":"string"}}}
No replacement available at this time.
This attribute is deprecated. The Sentry conventions have no replacement for the requested output schema.
Changelognext #583 Added ai.schema attribute Raw JSONCopy {
"key": "ai.schema",
"brief": "The stringified JSON schema the model output must conform to.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"examples": [
"{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\"}}}"
],
"deprecation": {
"reason": "This attribute is deprecated. The Sentry conventions have no replacement for the requested output schema.",
"_status": null
},
"changelog": [
{
"version": "next",
"prs": [
583
],
"description": "Added ai.schema attribute"
}
]
}string[]Scrub: Auto Visibility: Public OTel: False
Queries used to search for relevant context or documents.
Example ["climate change effects","renewable energy"]
No replacement available at this time.
Changelog Raw JSONCopy {
"key": "ai.search_queries",
"brief": "Queries used to search for relevant context or documents.",
"type": "string[]",
"apply_scrubbing": {
"key": "auto"
},
"is_in_otel": false,
"visibility": "public",
"example": [
"climate change effects",
"renewable energy"
],
"deprecation": {
"_status": null
},
"changelog": [
{
"version": "0.5.0",
"prs": [
264
]
},
{
"version": "0.1.0",
"prs": [
55
]
}
]
}string[]Scrub: Auto Visibility: Public OTel: False
Results returned from search queries for context.
Example ["search_result_1, search_result_2"]
No replacement available at this time.
Changelog Raw JSONCopy {
"key": "ai.search_results",
"brief": "Results returned from search queries for context.",
"type": "string[]",
"apply_scrubbing": {
"key": "auto"
},
"is_in_otel": false,
"visibility": "public",
"example": [
"search_result_1, search_result_2"
],
"deprecation": {
"_status": null
},
"changelog": [
{
"version": "0.5.0",
"prs": [
264
]
},
{
"version": "0.1.0",
"prs": [
55
]
}
]
}stringScrub: Manual Visibility: Public OTel: False
The seed, ideally models given the same seed and same other parameters will produce the exact same output.
Changelog Raw JSONCopy {
"key": "ai.seed",
"brief": "The seed, ideally models given the same seed and same other parameters will produce the exact same output.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "1234567890",
"deprecation": {
"replacement": "gen_ai.request.seed",
"_status": "backfill"
},
"alias": [
"gen_ai.request.seed"
],
"changelog": [
{
"version": "0.1.0",
"prs": [
55,
57,
61,
108,
127
]
}
]
}booleanScrub: Manual Visibility: Public OTel: False
Whether the request was streamed back.
Changelog Raw JSONCopy {
"key": "ai.streaming",
"brief": "Whether the request was streamed back.",
"type": "boolean",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": true,
"deprecation": {
"replacement": "gen_ai.response.streaming",
"_status": "backfill"
},
"alias": [
"gen_ai.response.streaming"
],
"changelog": [
{
"version": "0.1.0",
"prs": [
76,
108
]
},
{
"version": "0.0.0"
}
]
}stringScrub: Manual Visibility: Public OTel: False
Tags that describe an AI pipeline step.
Example {"executed_function": "add_integers"}
No replacement available at this time.
Changelog Raw JSONCopy {
"key": "ai.tags",
"brief": "Tags that describe an AI pipeline step.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "{\"executed_function\": \"add_integers\"}",
"deprecation": {
"_status": null
},
"changelog": [
{
"version": "0.5.0",
"prs": [
264
]
},
{
"version": "0.1.0",
"prs": [
55,
127
]
}
]
}doubleScrub: Manual Visibility: Public OTel: False
For an AI model call, the temperature parameter. Temperature essentially means how random the output will be.
Changelog Raw JSONCopy {
"key": "ai.temperature",
"brief": "For an AI model call, the temperature parameter. Temperature essentially means how random the output will be.",
"type": "double",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": 0.1,
"deprecation": {
"replacement": "gen_ai.request.temperature",
"_status": "backfill"
},
"alias": [
"gen_ai.request.temperature"
],
"changelog": [
{
"version": "0.4.0",
"prs": [
228
]
},
{
"version": "0.1.0",
"prs": [
55,
57,
61,
108
]
}
]
}string[]Scrub: Auto Visibility: Public OTel: False
Raw text inputs provided to the model.
Example ["Hello, how are you?","What is the capital of France?"]
Changelognext Added ai.prompt as an alias
Raw JSONCopy {
"key": "ai.texts",
"brief": "Raw text inputs provided to the model.",
"type": "string[]",
"apply_scrubbing": {
"key": "auto"
},
"is_in_otel": false,
"visibility": "public",
"example": [
"Hello, how are you?",
"What is the capital of France?"
],
"deprecation": {
"replacement": "gen_ai.input.messages",
"_status": "backfill"
},
"alias": [
"gen_ai.input.messages",
"ai.prompt.messages",
"gen_ai.prompt",
"ai.prompt"
],
"changelog": [
{
"version": "next",
"description": "Added ai.prompt as an alias"
},
{
"version": "0.5.0",
"prs": [
264
]
},
{
"version": "0.1.0",
"prs": [
55
]
}
]
}string[]Scrub: Auto Visibility: Public OTel: False
For an AI model call, the tool calls that were made.
Example ["tool_call_1","tool_call_2"]
Changelog Raw JSONCopy {
"key": "ai.tool_calls",
"brief": "For an AI model call, the tool calls that were made.",
"type": "string[]",
"apply_scrubbing": {
"key": "auto"
},
"is_in_otel": false,
"visibility": "public",
"example": [
"tool_call_1",
"tool_call_2"
],
"deprecation": {
"replacement": "gen_ai.output.messages",
"_status": "backfill"
},
"changelog": [
{
"version": "0.1.0",
"prs": [
55,
65
]
}
]
}stringScrub: Manual Visibility: Public OTel: False
The arguments of the tool call.
Example {"location": "Paris"}
Changelogv0.19.0 #498 Added ai.toolCall.args attribute Raw JSONCopy {
"key": "ai.toolCall.args",
"brief": "The arguments of the tool call.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "{\"location\": \"Paris\"}",
"deprecation": {
"replacement": "gen_ai.tool.call.arguments",
"_status": "backfill"
},
"alias": [
"gen_ai.tool.call.arguments",
"gen_ai.tool.input"
],
"changelog": [
{
"version": "0.19.0",
"prs": [
498
],
"description": "Added ai.toolCall.args attribute"
}
]
}stringScrub: Manual Visibility: Public OTel: False
The result of the tool call.
Changelogv0.19.0 #498 Added ai.toolCall.result attribute Raw JSONCopy {
"key": "ai.toolCall.result",
"brief": "The result of the tool call.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": "rainy, 57°F",
"deprecation": {
"replacement": "gen_ai.tool.call.result",
"_status": "backfill"
},
"alias": [
"gen_ai.tool.call.result",
"gen_ai.tool.output",
"gen_ai.tool.message",
"mcp.tool.result.content"
],
"changelog": [
{
"version": "0.19.0",
"prs": [
498
],
"description": "Added ai.toolCall.result attribute"
}
]
}string[]Scrub: Manual Visibility: Public OTel: False
For an AI model call, the functions that are available
Example ["function_1","function_2"]
Changelog Raw JSONCopy {
"key": "ai.tools",
"brief": "For an AI model call, the functions that are available",
"type": "string[]",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": [
"function_1",
"function_2"
],
"deprecation": {
"replacement": "gen_ai.tool.definitions",
"_status": "backfill"
},
"changelog": [
{
"version": "0.1.0",
"prs": [
55,
65,
127
]
}
]
}integerScrub: Manual Visibility: Public OTel: False
Limits the model to only consider the K most likely next tokens, where K is an integer (e.g., top_k=20 means only the 20 highest probability tokens are considered).
Changelog Raw JSONCopy {
"key": "ai.top_k",
"brief": "Limits the model to only consider the K most likely next tokens, where K is an integer (e.g., top_k=20 means only the 20 highest probability tokens are considered).",
"type": "integer",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": 35,
"deprecation": {
"replacement": "gen_ai.request.top_k",
"_status": "backfill"
},
"alias": [
"gen_ai.request.top_k"
],
"changelog": [
{
"version": "0.4.0",
"prs": [
228
]
},
{
"version": "0.1.0",
"prs": [
55,
57,
61,
108
]
}
]
}doubleScrub: Manual Visibility: Public OTel: False
Limits the model to only consider tokens whose cumulative probability mass adds up to p, where p is a float between 0 and 1 (e.g., top_p=0.7 means only tokens that sum up to 70% of the probability mass are considered).
Changelog Raw JSONCopy {
"key": "ai.top_p",
"brief": "Limits the model to only consider tokens whose cumulative probability mass adds up to p, where p is a float between 0 and 1 (e.g., top_p=0.7 means only tokens that sum up to 70% of the probability mass are considered).",
"type": "double",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": 0.7,
"deprecation": {
"replacement": "gen_ai.request.top_p",
"_status": "backfill"
},
"alias": [
"gen_ai.request.top_p"
],
"changelog": [
{
"version": "0.4.0",
"prs": [
228
]
},
{
"version": "0.1.0",
"prs": [
55,
57,
61,
108
]
}
]
}doubleScrub: Manual Visibility: Public OTel: False
The total cost for the tokens used.
Example 12.34
Search Alias
How this attribute is exposed in Sentry search. Query it by this name instead of the attribute key. Name ai.total_cost
Type currency
Changelog Raw JSONCopy {
"key": "ai.total_cost",
"brief": "The total cost for the tokens used.",
"type": "double",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": 12.34,
"deprecation": {
"replacement": "gen_ai.cost.total_tokens",
"_status": "backfill"
},
"alias": [
"gen_ai.cost.total_tokens"
],
"search_alias": {
"name": "ai.total_cost",
"type": "currency"
},
"changelog": [
{
"version": "0.5.0",
"prs": [
264
]
},
{
"version": "0.4.0",
"prs": [
228
]
},
{
"version": "0.1.0",
"prs": [
53
]
}
]
}integerScrub: Manual Visibility: Public OTel: False
The total number of tokens used to process the prompt.
Changelognext Added ai.usage.tokens as an alias
v0.0.0
Raw JSONCopy {
"key": "ai.total_tokens.used",
"brief": "The total number of tokens used to process the prompt.",
"type": "integer",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"example": 30,
"deprecation": {
"replacement": "gen_ai.usage.total_tokens",
"_status": "backfill"
},
"alias": [
"gen_ai.usage.total_tokens",
"ai.usage.tokens"
],
"changelog": [
{
"version": "next",
"description": "Added ai.usage.tokens as an alias"
},
{
"version": "0.4.0",
"prs": [
228
]
},
{
"version": "0.1.0",
"prs": [
57,
61,
108
]
},
{
"version": "0.0.0"
}
]
}integerScrub: Manual Visibility: Public OTel: False
The total number of tokens used for the request and the response.
Examples 150
Use gen_ai.usage.total_tokens instead.
This attribute is being deprecated in favor of gen_ai.usage.total_tokens.
Status: backfill
Changelognext #583 Added ai.usage.tokens attribute Raw JSONCopy {
"key": "ai.usage.tokens",
"brief": "The total number of tokens used for the request and the response.",
"type": "integer",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"examples": [
150
],
"deprecation": {
"replacement": "gen_ai.usage.total_tokens",
"reason": "This attribute is being deprecated in favor of gen_ai.usage.total_tokens.",
"_status": "backfill"
},
"alias": [
"gen_ai.usage.total_tokens",
"ai.total_tokens.used"
],
"changelog": [
{
"version": "next",
"prs": [
583
],
"description": "Added ai.usage.tokens attribute"
}
]
}stringScrub: Manual Visibility: Public OTel: False
The stringified values produced by a Vercel AI SDK object or array generation.
Examples [{"city":"Paris"}]
No replacement available at this time.
This attribute is deprecated. Use gen_ai.output.messages for model output instead.
Changelognext #583 Added ai.values attribute Raw JSONCopy {
"key": "ai.values",
"brief": "The stringified values produced by a Vercel AI SDK object or array generation.",
"type": "string",
"apply_scrubbing": {
"key": "manual"
},
"is_in_otel": false,
"visibility": "public",
"examples": [
"[{\"city\":\"Paris\"}]"
],
"deprecation": {
"reason": "This attribute is deprecated. Use gen_ai.output.messages for model output instead.",
"_status": null
},
"changelog": [
{
"version": "next",
"prs": [
583
],
"description": "Added ai.values attribute"
}
]
}string[]Scrub: Auto Visibility: Public OTel: False
Warning messages generated during model execution.
Example ["Token limit exceeded"]
No replacement available at this time.
Changelog Raw JSONCopy {
"key": "ai.warnings",
"brief": "Warning messages generated during model execution.",
"type": "string[]",
"apply_scrubbing": {
"key": "auto"
},
"is_in_otel": false,
"visibility": "public",
"example": [
"Token limit exceeded"
],
"deprecation": {
"_status": null
},
"changelog": [
{
"version": "0.5.0",
"prs": [
264
]
},
{
"version": "0.1.0",
"prs": [
55
]
}
]
}