返回首頁

AI 開發者平台

Anthropic Python SDK 1.0 改用 httpx2,舊追蹤與 mock 可能靜默失效

新版將最低 Python 版本提高至 3.10,並移除 Text Completions、部分取樣參數及用戶端壓縮介面。一般 API 呼叫大多毋須修改,但直接依賴 httpx 的監控、測試與自訂傳輸層必須遷移。

Bernou, Claude (b. 16..–d. 17..), Abbot · Public domain · Image source
zh-Hant

Anthropic 8 月 20 日發布 Python SDK 1.0,最關鍵的底層變更是把 HTTP 用戶端由 `httpx` 換成 Pydantic 團隊維護的相容分支 `httpx2`。只傳入數字逾時、重試次數等普通值的應用通常可繼續運作;自行建立 `Client`、`Timeout`、transport、proxy 或事件 hook 的程式,則須改用 `httpx2` 類別。舊版 `httpx.Client` 傳給 SDK 時會立即拋出 `TypeError`,但 OpenTelemetry、Sentry、RESPX、pytest-httpx 或 VCR 等透過 patch `httpx` 攔截流量的工具,可能繼續執行卻看不到任何 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()` 現在必須等待;工具執行器的用戶端 `compaction_control` 亦由伺服器端 context management 取代。Bedrock 使用者若未設定 AWS region,也會由原先默認 `us-east-1` 改為直接報錯。

工程團隊不宜把這次升級視為普通依賴更新。較安全的做法是先鎖定 0.x,在獨立分支升級後執行型別檢查、HTTP mock、APM trace、代理與企業 CA 測試,再確認結構化輸出及非同步 raw response 路徑。官方遷移指南相當完整,但第三方監控套件對 `httpx2` 的支援程度仍須逐一驗證。

來源

  1. Claude Platform release notes — August 20, 2026
  2. Release v1.0.0 · anthropics/anthropic-sdk-python
  3. anthropic 1.0.0