Claude Platform Docs
メッセージエフォート

メッセージごとのeffort

systemメッセージを使用して会話の途中でeffortレベルを変更し、プロンプトキャッシュを維持します。

メッセージごとのeffort変更では、リクエストのトップレベルの値を変更せずに、会話の後続のターンに対して新しいeffortレベルを設定するため、キャッシュされたプレフィックスは引き続き一致します。

effortレベルを変更する

会話の途中でレベルを変更するには、次の手順を実行します。

  1. messagesにrole: "system"メッセージを追加し、contentを空にして、新しいeffortレベルをoutput_config.effortに指定します。
  2. mid-conversation-output-config-2026-07-01ベータヘッダーを送信します。
  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配列でベータ値を送信してください。InvokeModel APIでメッセージごとのeffortをサポートしているモデルについては、Bedrockでの会話途中のシステムメッセージを参照してください。

エラー

  • ベータヘッダーがない場合、メッセージごとのoutput_configは400エラーmessages.N.output_config: Extra inputs are not permittedを返します。ここでNはmessages内のsystemメッセージのインデックスです。
  • ベータヘッダーがある場合でも、Claude Fable 5などのメッセージごとのeffortをサポートしていないモデルは、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を変えるには、adaptive thinkingを使用してください。

メッセージごとのeffortかトップレベルのeffortか

リクエスト間でトップレベルの値を変更するよりも、メッセージごとのeffortを優先してください。メッセージごとの変更では、それより前のすべてが変更されないため、キャッシュされたプレフィックスは引き続き一致します。トップレベルの変更はキャッシュを最初からやり直すことになります。Claude Fable 5.1では、トップレベルの変更によるモデルの誘導の信頼性も低くなります。モデルの以前の応答は前のレベルで書かれており、モデルはそれらとの一貫性を保とうとする傾向があるためです。

利用可能状況

メッセージごとのeffort
ステータス
ベータ
API
  • Messages API
  • Managed Agents サポート対象外
ベータヘッダー
が必要
モデル
  • 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

このページは役に立ちましたか?