Claude Platform Docs
Messages投入程度

逐訊息 effort

使用系統訊息在對話進行途中變更 effort 等級,同時保留提示快取。

逐訊息的 effort 變更會為對話後續的回合設定新的 effort 等級,而不會變更請求的頂層值,因此快取的前綴仍然相符。

變更 effort 等級

若要在對話進行途中變更等級:

  1. 在 messages 中新增一則 role: "system" 訊息,其 content 為空,並在 output_config.effort 中設定新的 effort 等級。
  2. 傳送 mid-conversation-output-config-2026-07-01 beta 標頭。
  3. 頂層的值保持不變。

以下範例將頂層的值維持在 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 上,頂層的變更引導模型的可靠性也較低。模型先前的回覆是以先前的等級撰寫的,而模型傾向於與這些回覆保持一致。

可用性

逐訊息 effort
狀態
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

這個頁面有幫助嗎?