Claude API のコンテキスト編集(Context editing)の使い方

Claude API エンジニアリング 7分で読めます

コンテキスト編集(context editing)は、会話が長くなったときに不要になった内容をサーバ側で自動的に取り除き、コンテキストを整理する機能です。コストを下げ、トークン上限に対処し、モデルの注意を目下のタスクに向け続けることを狙います。

コンテキスト編集とは

コンテキスト編集はサーバ側で処理されます。クライアントが持っている会話履歴そのものは変更されず、編集後の内容が Claude に渡ります。つまり、自分の側で履歴を削る実装を書かなくても、API 側で古い情報を落とせます。

利用するには、リクエストにベータヘッダー anthropic-beta: context-management-2025-06-27 を付け、context_management パラメータで戦略を指定します。サポート対象の Claude モデルすべてで利用できます。

2つの戦略

戦略は 2 種類あります。

両方を同時に使う場合、edits 配列では clear_thinking_20251015 を先に指定する必要があります(順序が決まっています)。

ツール結果のクリア設定

clear_tool_uses_20250919 のパラメータは次のとおりです。

最小構成は型を指定するだけです。

response = client.beta.messages.create(
    model="claude-opus-4-8",
    max_tokens=4096,
    messages=[{"role": "user", "content": "AIの最近の動向を調べて"}],
    tools=[{"type": "web_search_20250305", "name": "web_search"}],
    betas=["context-management-2025-06-27"],
    context_management={"edits": [{"type": "clear_tool_uses_20250919"}]},
)

細かく制御する場合は次のように書きます。

context_management={
    "edits": [
        {
            "type": "clear_tool_uses_20250919",
            "trigger": {"type": "input_tokens", "value": 30000},
            "keep": {"type": "tool_uses", "value": 3},
            "clear_at_least": {"type": "input_tokens", "value": 5000},
            "exclude_tools": ["web_search"]
        }
    ]
}

思考ブロックのクリア設定

clear_thinking_20251015 のパラメータは keep のみで、{"type": "thinking_turns", "value": N}(N は 1 以上)または "all" を指定します。既定値はモデルによって異なり、Opus 4.5 以降および Sonnet 4.6 以降ではすべての思考ブロックを保持、Opus 4.1 以前・Sonnet 4.5 以前・Haiku では最後のターンのみ保持です。

context_management={
    "edits": [
        {
            "type": "clear_thinking_20251015",
            "keep": {"type": "thinking_turns", "value": 2}
        }
    ]
}

キャッシュを効かせたい場合は "keep": "all" ですべての思考ブロックを保持する選択もできます。

プロンプトキャッシュへの影響

プロンプトキャッシュとの相互作用は戦略によって異なります。

頻繁に少しずつ削ると、そのたびにキャッシュが作り直されて逆に高くつくことがあるため、閾値と最小削除量はセットで考えます。

レスポンスの確認方法

実際にどの編集が適用され、何トークン削除されたかは、レスポンスの context_management フィールドで確認できます。

{
  "context_management": {
    "applied_edits": [
      {
        "type": "clear_tool_uses_20250919",
        "cleared_tool_uses": 8,
        "cleared_input_tokens": 50000
      }
    ]
  }
}

トークンカウントのエンドポイント /messages/count_tokenscontext_management パラメータを受け付けるため、実際に送信する前に削除前後のトークン数を比較できます。レスポンスの context_management.original_input_tokens が削除前、input_tokens が削除後の値です。

次に読むもの

コンテキスト編集はメモリツールと組み合わせると効果的です。クリアされる前に重要な情報をメモリファイルへ書き出しておけば、コンテキストから消えても後で読み戻せます。長時間実行するエージェントでは、コンテキスト編集・コンパクション・メモリツールを役割分担させる構成が推奨されています。

本記事は Anthropic 公式ドキュメントの Context editing ページ(2026年7月19日時点)に基づく非公式の日本語解説です。ベータ機能のため仕様が変わる場合があります。実装前に公式ドキュメントで最新をご確認ください。