Align the Vercel AI SDK integration with [RFC #153](<https://github.com/getsentry/rfcs/pull/153>). ### Attribute renames - [ ] `gen_ai.system` → `gen_ai.provider.name` - [ ] `gen_ai.request.available_tools` → `gen_ai.tool.definitions` (structured objects, not JSON string) - [ ] `gen_ai.response.text` → `gen_ai.output.messages` - [ ] `gen_ai.response.tool_calls` → `gen_ai.output.messages` - [ ] `gen_ai.usage.cache_creation_input_tokens` → `gen_ai.usage.input_tokens.cache_write` - [ ] `gen_ai.usage.cache_read_input_tokens` → `gen_ai.usage.input_tokens.cached` ### Required attributes - [ ] `gen_ai.operation.name` set on all spans - [ ] `gen_ai.provider.name` set on all AI Client spans - [ ] `gen_ai.response.streaming` set on all AI Client spans - [ ] `gen_ai.response.time_to_first_token` for streaming responses ### Message format - [ ] `content` → `parts` in `gen_ai.input.messages` and `gen_ai.output.messages` - [ ] System messages extracted to `gen_ai.system_instructions` ### Vercel AI-specific - [ ] Move hardcoded `gen_ai.*` string literals to shared constants (e.g. `gen_ai.function_id`, `gen_ai.usage.output_tokens.reasoning`, `gen_ai.usage.input_tokens.cache_miss`) - [ ] Update `ai.*` → `gen_ai.*` mapping in `processEndedVercelAiSpan()` - [ ] Update Cloudflare variant (`packages/cloudflare/src/integrations/tracing/vercelai.ts`)
Align the Vercel AI SDK integration with RFC #153.
Attribute renames
gen_ai.system→gen_ai.provider.namegen_ai.request.available_tools→gen_ai.tool.definitions(structured objects, not JSON string)gen_ai.response.text→gen_ai.output.messagesgen_ai.response.tool_calls→gen_ai.output.messagesgen_ai.usage.cache_creation_input_tokens→gen_ai.usage.input_tokens.cache_writegen_ai.usage.cache_read_input_tokens→gen_ai.usage.input_tokens.cachedRequired attributes
gen_ai.operation.nameset on all spansgen_ai.provider.nameset on all AI Client spansgen_ai.response.streamingset on all AI Client spansgen_ai.response.time_to_first_tokenfor streaming responsesMessage format
content→partsingen_ai.input.messagesandgen_ai.output.messagesgen_ai.system_instructionsVercel AI-specific
gen_ai.*string literals to shared constants (e.g.gen_ai.function_id,gen_ai.usage.output_tokens.reasoning,gen_ai.usage.input_tokens.cache_miss)ai.*→gen_ai.*mapping inprocessEndedVercelAiSpan()packages/cloudflare/src/integrations/tracing/vercelai.ts)