": { "message": "anthropic error: `temperature` may only be set to 1 when thinki...

2026年05月12日 23:13 processing

错误信息

error": { "message": "anthropic error: `temperature` may only be set to 1 when thinking is enabled or in adaptive mode. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking#important-considerations-when-using-extended-thinking" }, "rid": "2054217139501404160", "type": "voapi_error" }

AI 解决方案

错误翻译


原文:anthropic error: `temperature` may only be set to 1 when thinking is enabled or in adaptive mode. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking#important-considerations-when-using-extended-thinking
译文:Anthropic 错误:当启用“思考”(thinking)功能或处于自适应(adaptive)模式时,`temperature` 参数只能设置为 1。请查阅我们的文档:https://docs.claude.com/en/docs/build-with-claude/extended-thinking#important-considerations-when-using-extended-thinking

因分析


根本原因是您在使用 Claude API 的扩展思考(Extended Thinking)功能自适应模式(Adaptive Mode)时,错误地设置了 temperature 参数。根据 Anthropic 的 API 规则,当这些特定功能被启用时,temperature 参数必须被严格设置为 1。您可能将其设置成了其他数值(如 0, 0.5, 0.7 等),从而触发了此错误。


检查您的 API 调用代码,找到设置 temperature 参数的位置,将其修改为 1

# 错误的设置方式 (示例)
response = anthropic_client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=4096,
    temperature=0.5, # 当 thinking 启用时,此值必须为1
    thinking={
        "type": "enabled",
        "budget_tokens": 2000
    },
    messages=[...]
)

# 正确的设置方式
response = anthropic_client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=4096,
    temperature=1, # 当启用 thinking 或 adaptive 模式时,必须为 1
    thinking={
        "type": "enabled",
        "budget_tokens": 2000
    },
    messages=[...]
)

补充建议:在启用 thinking 功能时,通常建议同时设置 stream=True,以便实时获取思考过程的输出。

预防措施


  • 查阅官方文档:在使用 Claude API 的高级功能(如 Extended Thinking)前,务必仔细阅读 Anthropic 官方文档中的 “Important Considerations” 部分,明确各参数的使用限制。

  • 参数校验:在代码中添加参数校验逻辑,当检测到 thinking 功能启用时,自动将 temperature 调整为 1,避免人为配置错误。