AI最新ニュース 2026.05.10

Anthropic SDK Python v0.98・TypeScript v0.93アップグレードガイド【破壊的変更・移行手順】

タグ:Claude / Anthropic / SDK / API / 開発者向け

変更サマリー

SDKバージョン種別主な変更
Pythonv0.98.0マイナー新モデル対応・型定義整理
Pythonv0.98.1パッチv0.98.0のバグ修正
TypeScriptv0.93.0マイナー型定義改善・新機能追加

Step 1:現在のバージョン確認

# Python SDKのバージョン確認
pip show anthropic
# Name: anthropic
# Version: 0.97.0  ← 現在のバージョン

# もしくは
python -c "import anthropic; print(anthropic.__version__)"

# TypeScript SDKのバージョン確認
npm list @anthropic-ai/sdk
# └── @anthropic-ai/sdk@0.92.0

Step 2:アップグレード実行

# Python: 最新版へアップグレード
pip install --upgrade anthropic

# Python: バージョンを固定してアップグレード
pip install "anthropic==0.98.1"

# requirements.txt の更新
pip freeze | grep anthropic >> requirements.txt.new
# anthropic==0.98.1

# TypeScript: 最新版へアップグレード
npm install @anthropic-ai/sdk@latest
# または pnpm
pnpm add @anthropic-ai/sdk@latest

Step 3:動作確認

# verify_upgrade.py
import anthropic
import os

print(f"SDK バージョン: {anthropic.__version__}")

client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])

# 疎通確認
try:
    message = client.messages.create(
        model="claude-haiku-4-5-20251001",
        max_tokens=16,
        messages=[{"role": "user", "content": "ping"}]
    )
    print(f"✅ 接続成功: {message.content[0].text}")
    print(f"   使用トークン: {message.usage.input_tokens}入力 / {message.usage.output_tokens}出力")
except anthropic.APIConnectionError as e:
    print(f"❌ 接続エラー: {e}")
except anthropic.AuthenticationError as e:
    print(f"❌ 認証エラー: APIキーを確認してください")
// verify_upgrade.ts
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });

async function verify() {
  try {
    const message = await client.messages.create({
      model: "claude-haiku-4-5-20251001",
      max_tokens: 16,
      messages: [{ role: "user", content: "ping" }],
    });

    const content = message.content[0];
    if (content.type === "text") {
      console.log(`✅ 接続成功: ${content.text}`);
    }
  } catch (error) {
    if (error instanceof Anthropic.APIConnectionError) {
      console.error("❌ 接続エラー:", error.message);
    }
  }
}

verify();

v0.97.x → v0.98.x の注意点

依存ライブラリの更新

# Python: 依存関係を含めてアップグレード
pip install --upgrade anthropic httpx

# 依存関係ツリーを確認
pip show anthropic | grep Requires

型定義の変更(TypeScript)

// ❌ v0.92.x 以前: レスポンスの型が曖昧だった
const response = await client.messages.create({...});
const text = response.content[0].text;  // 型エラーが出ることがあった

// ✅ v0.93.0: 型ガードが必要
const response = await client.messages.create({...});
const block = response.content[0];
if (block.type === "text") {
  const text = block.text;  // 型安全
}

エラー処理の標準化

# v0.98.x での推奨エラー処理パターン
import anthropic

client = anthropic.Anthropic()

try:
    response = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=1024,
        messages=[{"role": "user", "content": "Hello"}]
    )
except anthropic.RateLimitError as e:
    print(f"レート制限: {e.status_code} - 少し待ってから再試行")
except anthropic.APIStatusError as e:
    print(f"API エラー: {e.status_code} - {e.message}")
except anthropic.APIConnectionError as e:
    print(f"接続エラー: {e}")

CI/CDでの安全なアップグレード戦略

# .github/workflows/dependency-update.yml
name: Anthropic SDK Update Check

on:
  schedule:
    - cron: '0 9 * * 1'  # 毎週月曜 AM9時

jobs:
  check-update:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12'
      
      - name: 現在のバージョン確認
        run: |
          pip install anthropic
          python -c "import anthropic; print(f'Current: {anthropic.__version__}')"
      
      - name: 最新版でテスト実行
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          pip install --upgrade anthropic
          python verify_upgrade.py
          pytest tests/ -v
      
      - name: バージョンが変わった場合にPRを作成
        uses: peter-evans/create-pull-request@v6
        with:
          title: 'deps: Anthropic SDK アップグレード'
          body: 'SDKを最新版に更新しました。テストがパスしていることを確認してマージしてください。'
# pyproject.toml (依存バージョンの管理例)
[project]
dependencies = [
    "anthropic>=0.98.1,<0.99",  # マイナーバージョン固定
    "httpx>=0.25.0",
]

[tool.uv.sources]
# uvを使う場合のバージョン固定

バージョン固定のベストプラクティス

# ❌ 緩いバージョン指定(意図しない更新が入る)
# requirements.txt
anthropic>=0.90.0

# ✅ マイナーバージョン固定(パッチ更新のみ許可)
# requirements.txt  
anthropic>=0.98.1,<0.99

# ✅ 完全固定(最も安全)
# requirements.txt
anthropic==0.98.1

# package.json (TypeScript)
# ❌ 緩い
"@anthropic-ai/sdk": "^0.93.0"

# ✅ 固定
"@anthropic-ai/sdk": "0.93.0"

あわせて読みたい

参考ソース