AI最新ニュース 2026.05.21
Anthropic、Stainless買収でClaude SDK開発を加速|開発者が知るべき変更点
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": "こんにちは"}]
}'
あわせて読みたい
- Anthropic SDK Python v0.98・TypeScript v0.93アップグレードガイド
- Anthropic APIアカウント停止時の対応|影響確認コードと復旧手順
- Claude API月2ドルで使う方法|自作プロキシサーバーとcurlコマンドのセットアップ