AI 開發者平台
Anthropic Python SDK 1.0がhttpx2へ移行、従来のトレーシングやmockが気付かないまま機能しなくなる可能性
新バージョンでは最低Pythonバージョンが3.10に引き上げられ、Text Completions、一部のサンプリングパラメータ、クライアント側の圧縮インターフェースが削除された。通常のAPI呼び出しはほとんど変更不要だが、httpxに直接依存するモニタリング、テスト、カスタムトランスポート層は移行が必要となる。

Anthropicは8月20日、Python SDK 1.0をリリースした。最も重要な基盤変更は、HTTPクライアントを`httpx`から、Pydanticチームが保守する互換フォーク`httpx2`へ切り替えたことだ。数値のタイムアウト値やリトライ回数など、一般的な値だけを渡すアプリケーションは通常、そのまま動作する。一方、独自に`Client`、`Timeout`、transport、proxy、イベントhookを構築しているプログラムは、`httpx2`のクラスへ移行する必要がある。旧来の`httpx.Client`をSDKへ渡すと直ちに`TypeError`が発生する。しかし、`httpx`へのpatchによってトラフィックをインターセプトするOpenTelemetry、Sentry、RESPX、pytest-httpx、VCRなどのツールは、実行を継続しながらClaudeへのリクエストを一切検出できない可能性があり、より発見しにくいオブザーバビリティの欠落につながる。公式はプロセス全体に適用する互換策として`httpx2.alias_httpx()`を提供しているが、これはいずれかのモジュールが`httpx`を読み込む前に呼び出さなければならず、ライブラリ側が下流アプリケーションに代わって有効化すべきではない。
今回のメジャーバージョンでは、複数の旧インターフェースも整理された。最低実行環境はPython 3.9から3.10へ引き上げられ、`client.completions.create()`、従来のText Completions型、`HUMAN_PROMPT`、`AI_PROMPT`はすべて削除された。Messagesメソッドの`temperature`、`top_p`、`top_k`は正式なシグネチャから外され、旧モデルでこれらを制御する必要がある場合は`extra_body`経由でのみ送信できる。非同期の`.with_raw_response`における`parse()`、`text()`、`read()`は、今後awaitが必要となる。ツール実行機能のクライアント側`compaction_control`も、サーバー側のcontext managementに置き換えられた。BedrockユーザーがAWS regionを設定していない場合も、従来のデフォルト値`us-east-1`は使用されず、直接エラーが返される。
エンジニアリングチームは、今回のアップグレードを通常の依存関係更新として扱うべきではない。より安全な方法は、まず0.x系を固定し、独立したブランチでアップグレードしたうえで、型チェック、HTTP mock、APM trace、proxy、エンタープライズCAのテストを実行し、さらにStructured Outputsと非同期raw responseのコードパスを確認することだ。公式の移行ガイドは非常に充実しているものの、サードパーティ製モニタリングパッケージによる`httpx2`のサポート状況は、個別に検証する必要がある。