Anthropic 在 Claude 开发者文档里新增了一项 Beta 功能:按消息调整 effort。开发者可以在一段多轮对话的中间插入一条特殊的 system 消息,把后续回答的推理档位从 high 调到 low,或者反过来,请求顶层的 effort 设置保持不动,已经缓存的对话前缀照样能命中。
文档给出的写法很短。在 messages 数组里加一条 role 为 system、content 为空数组的消息,消息里放 output_config.effort 的新值,请求头带上 mid-conversation-output-config-2026-07-01。示例里,顶层 effort 设为 high,模型先用高档位规划一次从 SQLite 迁到 PostgreSQL 的三步方案;随后插入一条 low 档的 system 消息,用户只让它把方案压成一句话,这一轮就按低档位回答。
新档位从哪一轮开始算
生效时间取决于这条消息放在哪里,规则写得比较细:
- 紧跟在一条带新输入的 user 消息后面,Claude 对这一轮的回答就用新档位;
- 放在其他位置,例如 assistant 回复和下一条 user 消息之间,新档位从下一条带新输入的 user 消息开始;
- 只装着 tool_result 的 user 消息不算新输入,工具调用来回几轮不会触发切换。
新档位一直有效,直到后面另一条消息再改它。文档特别提醒,这条消息要放在已发送内容的末尾,之后的请求里也要原样保留,不能插到已经发过的轮次前面,也不能事后挪动或删掉。在支持**保留思考(preserved thinking)**的模型上,这几种改动都会让这条消息之后 assistant 轮次里的思考块失效。
报错情况也列得清楚。没带 beta 头就在 system 消息里写 output_config,接口返回 400,提示 Extra inputs are not permitted;带了 beta 头但模型不支持,比如 Claude Fable 5,同样是 400。Sonnet 5.5 开着 between_tools 思考模式、Haiku 5.5 关掉思考时,也不能中途改档,文档建议这两种情况改用自适应思考。
以前怎么切,现在省掉了什么
effort 原本是一个请求级参数,写在请求顶层。开发者想让同一段对话前面认真想、后面快速答,只能在两次请求之间改顶层值。文档对这种做法的评价很直接:顶层一改,提示缓存就从头算起,前面积累的长上下文要重新按未命中计费。
“A per-message change leaves everything before it unchanged, so the cached prefix still matches.”(按消息改档,前面的内容一字不动,缓存前缀照样匹配。)
文档还提到一个容易被忽略的细节:在 Claude Fable 5.1 上,改顶层值对模型的引导本身就不太可靠,因为前面几轮回复是按旧档位写的,模型倾向于和自己之前的风格保持一致。按消息切换把“从这里开始换档”写进了对话本身,模型看得到这个节点。
这对长时间运行的 Agent 循环最实用。一个编程代理先花高档位读代码库、定修改方案,后面几十轮执行和确认用低档位跑,上下文前缀一直不变,缓存命中率不受影响。以前要在“档位灵活”和“缓存划算”之间二选一,现在两头都能要。
客服和问答类应用也能用上。对话开头用户描述一个复杂故障,模型开高档位做诊断;问题定位之后,用户只是追问“那第二步具体点哪里”,这时候降到低档位回答,响应会快不少。反过来,一段闲聊里用户突然丢进一份合同要逐条审,应用可以临时把档位拉高。这些切换以前要么放弃缓存,要么干脆不切。
支持范围
型号方面,Fable 5.2、Mythos 5.2、Fable 5.1、Mythos 5.1、Opus 5.5、Opus 5、Sonnet 5.5、Haiku 5.5 都在 Beta 名单里,各型号覆盖的云平台不完全一样。平台方面,Claude API、Amazon Bedrock、Claude Platform on AWS、Google Cloud 上的两种托管方式和 Microsoft Foundry 都标注为 Beta。用 Bedrock InvokeModel 接口的开发者,要把 beta 值写进请求体的 anthropic_beta 数组,不走请求头。
Managed Agents 暂不支持这项功能,文档给出的替代办法是在会话层面覆盖 Agent 的模型设置。功能还处在 Beta 阶段,beta 头名称里带的日期是接口版本标识,正式版上线后写法会不会变,文档没有说明。
参考来源:Claude 开发者文档 Per-message effort 页面(核验 beta 头名称、型号与平台清单、生效位置规则及报错信息)、CocoLoop、Claude 开发者文档 effort 参数说明。