ITADN

Preserve Bedrock redactedContent reasoning across turns

#8315Closedseiji 创建于 10 天前
bugno-action
S
seijicommented
### What happened? Bedrock Converse returns encrypted reasoning from OpenAI models (for example, `global.openai.gpt-5.6-terra`) via `reasoningContent.redactedContent`. However, `bedrock-converse-stream.ts` currently only handles `reasoningContent.text` and `reasoningContent.signature`, so `redactedContent` is silently discarded. As a result, the thinking block is persisted with an empty `thinkingSignature`. On the next turn, `convertMessages` drops that block because of the `thinking.trim().length === 0` guard. This means reasoning does not survive across turns. In particular, tool continuations lose the reasoning block that should precede the corresponding `toolUse`. The stream itself does not fail because the AWS SDK tolerates the unhandled union member, making the data loss silent. Sorry, I opened the PR (#8314) before creating an issue. ### Steps to reproduce 1. `pi --model amazon-bedrock/global.openai.gpt-5.6-terra:medium` 3. Ask the model to perform a task that triggers a tool call. 4. Continue the conversation in the same session. 5. IInspect the session JSONL and verify that the thinking block preceding the toolUse has an empty `thinkingSignature` and no `redacted` flag. ### Expected behavior Preserve the opaque reasoning payload and replay it on subsequent turns as `reasoningContent.redactedContent`, including when continuing a tool call sequence. ### Version 0.84.2
关闭于 10 天前 1 条评论