快速结论:在 LangChain 中通过 Bedrock Converse 调用只返回 reasoningContent.redactedContent 的推理模型(如 GPT-6 Sol/Luna/Astra)时,Bedrock Converse 翻译器会把该块丢成空壳 {'type': 'reasoning'},导致 output_version="v1" 的多轮对话不回传推理块。优先排查 langchain-core 与 langchain-aws 是否已包含修复版本。
适用环境:LangChain(langchain-core 的 Bedrock Converse 块翻译器)、langchain-aws、Amazon Bedrock(us-east-1)上的 us.openai.gpt-6-sol / us.openai.gpt-6-luna / us.openai.gpt-6-astra,使用 output_version 与 additional_model_request_fields={"reasoning": {"effort": "high"}}。复现验证基于 master 4fe944a、langchain-core 1.6.12、langchain-aws 1.9.0。
最快修复方案:升级到 langchain-core 1.6.7 及 langchain-aws 1.8.1 或更高版本,这两个版本包含了 content_blocks 保留字节(#41086)与 output_version="v1" 回传(langchain-ai/langchain-aws#1360)的修复。
注意事项:修复后 content_blocks[0] 变为带 extras.redacted_content 的 reasoning 块,而不再是空壳 {'type': 'reasoning'};依赖旧形状判断类型的下游代码可能需要同步调整。默认 v0 往返行为保持不变。
问题场景
使用 init_chat_model 以 model_provider="bedrock_converse" 连接 Amazon Bedrock,调用只以 reasoningContent.redactedContent 形式返回推理的模型。首轮返回的 content_blocks[0] 丢失字节,只剩 {'type': 'reasoning'};在 output_version="v1" 下进行第二轮(把上一轮 AIMessage 追加进历史)时,请求中只发送 text,reasoningContent 未被回传。同一脚本在 v0 下第二轮能发送 reasoningContent 与 text,说明问题集中在 v1 路径的块翻译与回传。
报错原文
offline content_blocks: [{'type': 'reasoning'}, {'type': 'text', 'text': '1081'}]
us.openai.gpt-6-sol v1
content_blocks[0]: {'type': 'reasoning'}
turn 2 assistant sent: ['text']
...
Bedrock Converse `content_blocks` drops redacted reasoning, so it is not sent back with `output_version="v1"` (found with GPT-6 Sol/Luna/Astra)
原因分析
根因位于 block_translators/bedrock_converse.py 的 reasoning_content 分支:对于只携带 redacted_content 的块,翻译器返回了空的 reasoning 块,原始 payload(字节)被丢弃。因此 content_blocks 中拿不到可回传的内容,output_version="v1" 在下一轮自然只发送 text。相关崩溃(redacted_content 块形状导致)此前已在 langchain-aws 修复(#1223、#1296),但核心翻译器当时未改动。
环境排查
- 确认 langchain-core 版本是否 ≥ 1.6.7(#41086 保留了
content_blocks中的字节)。 - 确认 langchain-aws 版本是否 ≥ 1.8.1(#1360 负责在
output_version="v1"轮次回传)。 - 确认是否使用
output_version="v1";v0路径在修复前后行为一致,容易误判为已修复。 - 确认模型为 Bedrock 上的 GPT-6 Sol/Luna/Astra,并启用了
additional_model_request_fields={"reasoning": {"effort": "high"}}。 - 若同时使用
stream_events(version="v3"),一并核对输出中的reasoning块是否带有extras.redacted_content。
解决步骤
- 将 langchain-core 升级到 1.6.7 或更高版本,将 langchain-aws 升级到 1.8.1 或更高版本。
- 用 Issue 中的离线片段先做不发请求的检查:确认
msg.content_blocks的第一个元素为{'type': 'reasoning', 'extras': {'redacted_content': ...}},而不是{'type': 'reasoning'}。 - 再跑在线复现脚本,分别检查
v0与v1下第二轮请求中 assistant 消息的 content 类型列表。 - 如使用流式事件,追加一次
stream_events(version="v3")调用,检查output.content[0]的extras.redacted_content。 - 若你的代码依赖旧的空壳
reasoning块形状,按新形状更新类型判断与序列化逻辑。
验证方法
在修复后的环境中重跑 Issue 脚本,预期 content_blocks[0] 为带 extras.redacted_content 的 reasoning 块;v1 下第二轮 assistant 消息发送 ['reasoningContent', 'text'];stream_events(version="v3") 输出的第一块同样携带 extras.redacted_content;默认 v0 第二轮保持 ['reasoningContent', 'text'] 不变。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。

![[Bug] Code node: extractFunctionParams mis-parses destructured JavaScript params (the node's own default template) and multi-line signatures](https://www.chat-gpts.plus/wp-content/uploads/2026/10/44045-f1f5cdae-768x403.jpg)
