返回首頁

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