getsentry / getsentry/sentry-javascript
Replace deprecated `gen_ai.response.text` with `gen_ai.output.messages`
- Dominant language
- TypeScript
- Stars
- 8.7k
- Forks
- 1.8k
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 515
Description
`@sentry/conventions` deprecates `gen_ai.response.text` in favor of `gen_ai.output.messages`. `gen_ai.response.text` holds a stringified array of text strings; `gen_ai.output.messages` expects a stringified array of structured message objects (`[{role, parts: [...], finish_reason}]`), which unifies response text and tool calls into a single message.
Entails building the structured message format from the response text and emitting it under the new attribute. Affects all AI integrations (OpenAI, Anthropic, Google GenAI, LangChain, LangGraph, Workers AI, and the shared streaming path). Should be done together with the `gen_ai.response.tool_calls` replacement, since both merge into the same `gen_ai.output.messages` attribute.
We can likely postpone this until after the major, if we do it at all, since there are still discussions about handling this in Relay.
References:
* [`gen_ai.response.text`]()
* [`gen_ai.output.messages`]()
Contributor guide
Research direction
Review the OpenAI, Anthropic, Google GenAI, LangChain, LangGraph, Workers AI, and shared streaming integrations, along with the related gen_ai conventions. Determine how response text and tool calls should merge into gen_ai.output.messages, accounting for the unresolved Relay discussion. Done means all affected integrations emit the structured attribute without the deprecated response attributes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- observability-sre
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100