逐訊息 effort
使用系統訊息在對話進行途中變更 effort 等級,同時保留提示快取。
逐訊息的 effort 變更會為對話後續的回合設定新的 effort 等級,而不會變更請求的頂層值,因此快取的前綴仍然相符。
變更 effort 等級
若要在對話進行途中變更等級:
- 在
messages中新增一則role: "system"訊息,其content為空,並在output_config.effort中設定新的 effort 等級。 - 傳送
mid-conversation-output-config-2026-07-01beta 標頭。 - 頂層的值保持不變。
以下範例將頂層的值維持在 high,並針對例行的後續追問降至 low:
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-fable-5-1",
max_tokens=4096,
output_config={"effort": "high"},
messages=[
{
"role": "user",
"content": "Plan a migration from SQLite to PostgreSQL in three short steps.",
},
{
"role": "assistant",
"content": "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.",
},
# 僅含 effort 的系統訊息:新的等級將從下一個使用者回合開始生效。
{"role": "system", "content": [], "output_config": {"effort": "low"}},
{"role": "user", "content": "Summarize the plan in one sentence."},
],
betas=["mid-conversation-output-config-2026-07-01"],
)
for block in response.content:
if block.type == "text":
print(block.text)訊息的位置決定新等級何時開始生效:
- 緊接在包含新輸入的
user回合之後:Claude 對該回合的回覆會使用新的等級。 - 在其他任何位置,例如前面範例中位於
assistant回合與下一個user回合之間:新的等級會從下一個包含新輸入的user回合開始生效。
僅包含 tool_result 區塊的 user 回合不算是新輸入。
新的等級會持續生效,直到後續的訊息變更它為止。
請將該訊息放在您已傳送的所有內容之後,並在後續請求中將其保留在原位。不要將它插入到您已傳送的回合之前,之後也不要移動或移除它。在支援 preserved thinking(保留思考)的模型上,上述任何一種變更都會使該訊息之後 assistant 回合中的思考區塊失效。API 如何處理無效區塊說明了接下來會發生的情況。
若該訊息緊鄰一則含有內容的 system 訊息,兩則訊息都必須遵循對話中系統訊息的放置規則。
使用 Amazon Bedrock InvokeModel API 時,請在請求主體的 anthropic_beta 陣列中傳送 beta 值,而非使用標頭。關於在該平台上支援逐訊息 effort 的模型,請參閱 Bedrock 上的對話中系統訊息。
錯誤
- 若未傳送 beta 標頭,逐訊息的
output_config會傳回 400 錯誤:messages.N.output_config: Extra inputs are not permitted,其中N是該system訊息在messages中的索引。 - 若已傳送 beta 標頭,不支援逐訊息 effort 的模型(例如 Claude Fable 5)會傳回 400 錯誤:
output_config.effort requires a model that supports per-turn effort; this model does not。在 Amazon Bedrock 上,這些模型與 Claude Opus 5 則會改為傳回Extra inputs are not permitted。 - 在使用
thinking: {"type": "between_tools"}的 Claude Sonnet 5.5,以及使用thinking: {"type": "disabled"}的 Claude Haiku 5.5 上,effort 等級無法在對話途中變更。在這些情況下,設定新等級的逐訊息output_config.effort會傳回 400 錯誤。若要針對每個回合調整 effort,請使用自適應思考。
逐訊息或頂層 effort
建議優先使用逐訊息 effort,而非在請求之間變更頂層的值。逐訊息的變更會讓其之前的所有內容保持不變,因此快取的前綴仍然相符。頂層的變更則會重新開始快取。在 Claude Fable 5.1 上,頂層的變更引導模型的可靠性也較低。模型先前的回覆是以先前的等級撰寫的,而模型傾向於與這些回覆保持一致。
可用性
Claude API
- 狀態
- Beta
- API
- Messages API
- Managed Agents 不支援
- Beta 標頭
- 需要
- 模型
- Claude Fable 5.2、Fable 5.1
- Claude Mythos 5.2、Mythos 5.1
- Claude Opus 5.5、Opus 5
- Claude Sonnet 5.5
- Claude Haiku 5.5
Amazon Bedrock
- 狀態
- Beta
- API
- Messages API
- Beta 標頭
- 需要
- 模型
- Claude Fable 5.1
- Claude Mythos 5.1
- Claude Opus 5.5
Amazon Bedrock (bedrock-runtime)
- 狀態
- Beta
- API
- Messages API
- Beta 標頭
- 需要
- 模型
- Claude Fable 5.2、Fable 5.1
- Claude Mythos 5.2
- Claude Opus 5.5
- 注意
在請求主體的
anthropic_beta陣列中傳送 beta 值。
Claude Platform on AWS
- 狀態
- Beta
- API
- Messages API
- Managed Agents 不支援
- Beta 標頭
- 需要
- 模型
- Claude Fable 5.2、Fable 5.1
- Claude Opus 5.5、Opus 5
- Claude Sonnet 5.5
- Claude Haiku 5.5
Claude Models on Google Cloud (Anthropic managed)
- 狀態
- Beta
- API
- Messages API
- Managed Agents 不支援
- Beta 標頭
- 需要
- 模型
- Claude Fable 5.2、Fable 5.1
- Claude Mythos 5.2
- Claude Opus 5.5、Opus 5
- Claude Sonnet 5.5
- Claude Haiku 5.5
Claude Models on Google Cloud (Google managed)
- 狀態
- Beta
- API
- Messages API
- Beta 標頭
- 需要
- 模型
- Claude Fable 5.2、Fable 5.1
- Claude Mythos 5.2、Mythos 5.1
- Claude Opus 5.5、Opus 5
- Claude Sonnet 5.5
- Claude Haiku 5.5
Microsoft Foundry (hosted on Azure)
- 狀態
- Beta
- API
- Messages API
- Beta 標頭
- 需要
- 模型
- Claude Opus 5.5、Opus 5
- Claude Sonnet 5.5
- Claude Haiku 5.5
Microsoft Foundry (hosted on Anthropic)
- 狀態
- Beta
- API
- Messages API
- Beta 標頭
- 需要
- 模型
- Claude Fable 5.2、Fable 5.1
- Claude Mythos 5.2、Mythos 5.1
- Claude Opus 5.5、Opus 5
- Claude Sonnet 5.5
- Claude Haiku 5.5
這個頁面有幫助嗎?