status_code=400, The `content[].thinking` in the thinking mode must be passed ba...

2026年05月28日 14:00 22.23 秒 success

错误信息

status_code=400, The `content[].thinking` in the thinking mode must be passed back to the API. (request id: 202605281354578402136822DigKw1

AI 解决方案

🔍 API报错分析

1. 🌐 错误翻译

原文:The `content[].thinking` in the thinking mode must be passed back to the API.
译文:在思考模式下,`content[].thinking` 字段必须回传给API。

2. 🎯 原因分析

这是一个API状态保持错误(HTTP 400)。根本原因:

  • 🧠 您使用的API启用了"Thinking Mode"(思考/推理模式)

  • 📤 API在响应中返回了 content[].thinking 字段(模型的思考过程)

  • ❌ 您在后续请求中没有把这个字段原样传回给API

  • 🔗 API要求多轮对话中保持thinking状态的完整性

3. 💡 解决方案

方案一:回传thinking字段

# 构建消息时,保留API返回的thinking内容
messages = [
    {
        "role": "assistant",
        "content": [
            {
                "type": "thinking",
                "thinking": "这里是API返回的thinking内容..."  # 必须保留
            },
            {
                "type": "text",
                "text": "实际回复文本"
            }
        ]
    },
    {"role": "user", "content": "新的用户消息"}
]

方案二:禁用thinking模式(如果不需要)

response = client.chat.completions.create(
    model="your-model",
    messages=messages,
    # 不启用thinking相关参数
)

方案三:存储并回传thinking内容

# 第一次请求获取响应
response = client.chat.completions.create(...)
assistant_msg = response.choices[0].message

# 保存完整的message对象(包含thinking)
full_assistant_message = {
    "role": "assistant",
    "content": assistant_msg.content  # 包含thinking字段的完整内容
}

# 后续请求时传回
messages.append(full_assistant_message)
messages.append({"role": "user", "content": "新消息"})

4. 🛡️ 预防措施

  • 📦 完整存储响应:将API返回的完整assistant消息(包括所有content字段)保存到消息历史中

  • 调试时打印响应:在开发阶段打印完整的API响应结构,确认thinking字段是否存在

  • 📖 查阅文档:参考您使用的API(如Claude、DeepSeek等)的thinking模式文档,了解状态保持要求