AI最新ニュース 2026.05.21

Anthropic、Stainless買収でClaude SDK開発を加速|開発者が知るべき変更点

タグ:Anthropic / Claude / SDK / API / Stainless

Stainless買収が意味すること

従来(買収前):
  Anthropic API仕様 → Stainless(外部)→ SDK自動生成 → Python/TypeScript SDK

買収後:
  Anthropic API仕様 → Stainless(内製)→ SDK自動生成 → Python/TypeScript SDK
                      ↑ Anthropicが直接制御できるようになった

開発者への実質的なメリット:

  • API新機能とSDK反映のタイムラグが短縮
  • SDK仕様とAPI仕様の一貫性が向上
  • 将来的により多言語(Go・Java・Ruby等)のSDK充実が見込まれる

現在の最新バージョンを確認する

# Python SDKのバージョン確認
pip show anthropic | grep Version
# Version: 0.103.1

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

# アップデートコマンド
pip install --upgrade anthropic
npm update @anthropic-ai/sdk

最新SDK(Python v0.103.1)の主な改善点

# anthropic v0.103.x での改善例

import anthropic
import os

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

# 1. ストリーミングの改善(with文でのコンテキスト管理)
def stream_response(prompt: str) -> None:
    with client.messages.stream(
        model="claude-sonnet-4-5",
        max_tokens=1024,
        messages=[{"role": "user", "content": prompt}]
    ) as stream:
        for text in stream.text_stream:
            print(text, end="", flush=True)
    print()  # 最後に改行

# 2. メッセージカウントAPI(トークン数確認・無料)
def count_tokens_before_send(prompt: str) -> int:
    count = client.messages.count_tokens(
        model="claude-sonnet-4-5",
        messages=[{"role": "user", "content": prompt}]
    )
    return count.input_tokens

# 3. バッチ処理(Message Batches API)
def create_batch_request(prompts: list[str]) -> str:
    requests = [
        {
            "custom_id": f"req_{i}",
            "params": {
                "model": "claude-haiku-4-5-20251001",
                "max_tokens": 512,
                "messages": [{"role": "user", "content": p}]
            }
        }
        for i, p in enumerate(prompts)
    ]
    
    batch = client.messages.batches.create(requests=requests)
    print(f"バッチID: {batch.id}")
    return batch.id

# 使用例
token_count = count_tokens_before_send("こんにちは、世界!")
print(f"送信前トークン数: {token_count}")

TypeScript SDK(v0.97.1)での型安全な使い方

// anthropic-sdk-typescript v0.97.x での改善例

import Anthropic from "@anthropic-ai/sdk";

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

// ストリーミングレスポンスの型安全な処理
async function streamWithTypes(): Promise<string> {
  const stream = await client.messages.stream({
    model: "claude-sonnet-4-5",
    max_tokens: 1024,
    messages: [{ role: "user", content: "Pythonのdataclassを説明して" }],
  });

  let fullText = "";
  for await (const chunk of stream) {
    if (
      chunk.type === "content_block_delta" &&
      chunk.delta.type === "text_delta"
    ) {
      fullText += chunk.delta.text;
      process.stdout.write(chunk.delta.text);
    }
  }

  const finalMessage = await stream.finalMessage();
  console.log(
    `\nトークン使用量: ${finalMessage.usage.input_tokens}入力 / ${finalMessage.usage.output_tokens}出力`
  );

  return fullText;
}

// バッチ処理(TypeScript版)
async function processBatch(prompts: string[]): Promise<string> {
  const batch = await client.messages.batches.create({
    requests: prompts.map((p, i) => ({
      custom_id: `req_${i}`,
      params: {
        model: "claude-haiku-4-5-20251001" as const,
        max_tokens: 512,
        messages: [{ role: "user" as const, content: p }],
      },
    })),
  });

  return batch.id;
}

SDKバージョン管理の推奨設定

# pyproject.toml - バージョン固定の推奨範囲
[project]
dependencies = [
    "anthropic>=0.103.0,<0.104",  # パッチバージョンのみ自動更新
]
// package.json - TypeScriptプロジェクト
{
  "dependencies": {
    "@anthropic-ai/sdk": "^0.97.1"
  }
}
#!/bin/bash
# check_sdk_updates.sh - 週次でSDK更新を確認

echo "=== Anthropic SDK 更新確認 ==="

# Pythonバージョン確認
CURRENT_PY=$(pip show anthropic | grep Version | awk '{print $2}')
LATEST_PY=$(pip index versions anthropic 2>/dev/null | grep -oP '\d+\.\d+\.\d+' | head -1)
echo "Python SDK: $CURRENT_PY → 最新: $LATEST_PY"

# TypeScriptバージョン確認  
CURRENT_TS=$(node -e "console.log(require('./node_modules/@anthropic-ai/sdk/package.json').version)" 2>/dev/null || echo "未インストール")
LATEST_TS=$(npm view @anthropic-ai/sdk version 2>/dev/null)
echo "TypeScript SDK: $CURRENT_TS → 最新: $LATEST_TS"

# GitHubのリリースノートURL
echo ""
echo "変更内容の確認:"
echo "  Python:     https://github.com/anthropics/anthropic-sdk-python/releases"
echo "  TypeScript: https://github.com/anthropics/anthropic-sdk-typescript/releases"

curlで直接APIを呼ぶ(SDK不要の場合)

# SDKを使わずに直接REST APIを呼ぶ
curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-haiku-4-5-20251001",
    "max_tokens": 256,
    "messages": [{"role": "user", "content": "こんにちは"}]
  }'

あわせて読みたい

参考ソース