排查并解决 Claude Sonnet 5 在 API 和第三方桌面客户端(Chatbox、AnythingLLM 等)中因默认启用自适应思考占满 max_tokens 导致响应空白或中途截断的问题。
适合的任务:通过 API、Chatbox、AnythingLLM、自建前端接入 Claude Sonnet 5 时的参数调优与故障排查。
不适合的任务:官方 Claude.ai Web 端(官方 Web 界面已在底层自动适配流式思考块)。
适用的模型版本:Claude Sonnet 5 (claude-sonnet-5)。
适用的客户端、Agent 或 API:Anthropic API、Chatbox、AnythingLLM、LibreChat 及各类三方 API 代理工具。
推荐的推理档位和参数:若无需深度思考,显式设置 thinking: {type: "disabled"};若需要思考,必须将 max_tokens 提升至 16384 以上。
{
"model": "claude-sonnet-5",
"max_tokens": 4096,
"thinking": {
"type": "disabled"
},
"messages": [
{
"role": "user",
"content": "你的输入提示词"
}
]
}{
"model": "claude-sonnet-5",
"max_tokens": 32768,
"effort": "medium",
"messages": [
{
"role": "user",
"content": "你的输入提示词"
}
]
}复现与诊断:如果在客户端中发现“账单显示已生成数千 token 但聊天窗口为空白或话说到一半截断”,检查请求中的 max_tokens 设置。
检查思考预算:Sonnet 5 默认开启思考模式,思考 token 会优先消耗 max_tokens 预算。如果 max_tokens 设为 2048 或 4096,思考过程可能直接占满预算,导致留给最终回答的 token 为 0。
分流配置:
简单问答/总结/数据提取:在 API 请求体中加入 "thinking": {"type": "disabled"},彻底避免思考 token 消耗。
复杂编码/多步推理:将 max_tokens 调大至 16384 或 32768,并在客户端中支持对 thinking 类型的 content block 独立渲染。
社区反馈:多名用户在升级 Sonnet 5 后发现桌面客户端(Chatbox、AnythingLLM)频繁出现截断,排查确认是 Sonnet 5 默认思考行为与旧版客户端 max_tokens 默认较小(如 2048/4096)冲突所致。
API 规范确认:Anthropic API 中思考 token 与可见输出 token 共享 max_tokens 总额,且思考 token 计入输出费率。
调大 max_tokens 仅能防止截断,不能降低 token 消耗;高 effort 任务仍会产生较多思考 token。
部分旧版第三方客户端如果未解析 thinking block,可能会直接丢弃思考流,需要更新客户端或关闭思考。
来源反馈:“Ever since the Sonnet 5 update, I keep getting completely blank responses or text that randomly cuts off mid-sentence, despite the token counter showing Claude provided a full response.”
社区解决建议:“Check and try setting n_predict and or token budget higher... or set thinking kwargs appropriately.”
Claude Sonnet 5