Skip to content

[bedrock] Capture reasoning and redactedContent blocks as reasoning content  #3265

Description

@satyadevai

Is your feature request related to a problem? Please describe.
Bedrock thinking responses can include reasoning blocks with a signature and redactedContent blocks with data. Provider instrumentation should preserve these as reasoning content blocks so downstream consumers can reconstruct multi-turn history without losing required provider payloads.

Describe the solution you'd like
Update Bedrock instrumentation to capture reasoning blocks in:

Python: python/instrumentation/openinference-instrumentation-bedrock
JS: js/packages/openinference-instrumentation-bedrock
js/packages/openinference-instrumentation-bedrock-agent-runtime

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Expected mapping:

bedrock reasoningContent -> message_content.type = "reasoning"
reasoningContent.text -> message_content.text
reasoningContent.signature -> message_content.signature
reasoningContent.redactedContent -> message_content.data
Do not emit message_content.id

Acceptance criteria:

Non-streaming Bedrock Messages responses capture reasoningContent and redactedContent.
Streaming Bedrock responses capture the same fields after accumulation.
Block order in message.contents is preserved.
Tests cover both visible reasoningContent and readactedContent.
Tests assert that message_content.id is not emitted.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

Status
No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions