getsentry / getsentry/sentry-javascript

Vercel AI SDK — Align with gen_ai RFC #153

Open
#20,581 1 comment 0 reactions 0 assignees View on GitHub
javascript Task
Dominant language
TypeScript
Stars
8.7k
Forks
1.8k
Avg merge
1d 17h
Merged PRs (30d)
515

Description

Align the Vercel AI SDK integration with [RFC #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`)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.