Skip to content

原文(日本語に翻訳)

プロキシがボディをパースせずにセッション単位でリクエストを集計できるよう、APIリクエストに X-Claude-Code-Session-Id ヘッダーを追加

原文(英語)

Added X-Claude-Code-Session-Id header to API requests so proxies can aggregate requests by session without parsing the body

概要

Claude Code v2.1.86より、すべてのAPIリクエストに X-Claude-Code-Session-Id ヘッダーが付与されるようになりました。このヘッダーにより、プロキシサーバーやロードバランサーがリクエストボディを解析することなく、セッション単位でリクエストを追跡・集計できます。企業環境でのAPI監視やコスト管理に役立つ機能です。

基本的な使い方

特別な設定は不要です。Claude Codeが自動的にすべてのAPIリクエストにセッションIDヘッダーを付与します。

プロキシ側での確認例:

X-Claude-Code-Session-Id: <セッションUUID>

実践例

プロキシでのセッション別ログ収集

Nginxやenvoyなどのプロキシでセッション別のアクセスログを記録する設定例:

nginx
# nginx.conf
log_format session_log '$remote_addr - $http_x_claude_code_session_id '
                       '[$time_local] "$request" $status $body_bytes_sent';

access_log /var/log/nginx/claude_sessions.log session_log;

Pythonプロキシでのセッション集計

python
from flask import Flask, request, jsonify
import requests
from collections import defaultdict

app = Flask(__name__)
session_stats = defaultdict(lambda: {"requests": 0, "total_bytes": 0})

@app.route("/proxy", methods=["POST"])
def proxy():
    session_id = request.headers.get("X-Claude-Code-Session-Id", "unknown")
    session_stats[session_id]["requests"] += 1

    # バックエンドへの転送
    response = requests.post(
        "https://api.anthropic.com/v1/messages",
        headers=dict(request.headers),
        data=request.data
    )
    session_stats[session_id]["total_bytes"] += len(response.content)
    return response.content, response.status_code

@app.route("/stats")
def stats():
    return jsonify(dict(session_stats))

AWS API GatewayでのセッションID活用

yaml
# serverless.yml の例
functions:
  logSession:
    handler: handler.logSession
    events:
      - http:
          path: /claude-proxy
          method: post
          integration: lambda-proxy
          # X-Claude-Code-Session-Id ヘッダーを自動的に受け取り可能

注意点

  • セッションIDはClaude Codeのセッションごとに一意のUUIDです
  • セッションを --resume で再開した場合も同じセッションIDが使用されます
  • プロキシがリクエストボディを解析する必要がなくなるため、パフォーマンスとセキュリティが向上します
  • このヘッダーはClaude Codeクライアント側で自動付与されるため、追加の設定は不要です

関連情報