Align the LangChain 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.tool.input` → `gen_ai.tool.call.arguments` - [ ] `gen_ai.tool.output` → `gen_ai.tool.call.result` ### 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 ### Message format - [ ] `content` → `parts` in `gen_ai.input.messages` and `gen_ai.output.messages` - [ ] System messages extracted to `gen_ai.system_instructions`
Align the LangChain 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.tool.input→gen_ai.tool.call.argumentsgen_ai.tool.output→gen_ai.tool.call.resultRequired attributes
gen_ai.operation.nameset on all spansgen_ai.provider.nameset on all AI Client spansgen_ai.response.streamingset on all AI Client spansMessage format
content→partsingen_ai.input.messagesandgen_ai.output.messagesgen_ai.system_instructions