TL;DR / 要点
Claude Sonnet 4.6はAnthropicの最新のミドルティアモデルで、フロンティアレベルのコーディング性能と1Mトークンのコンテキストウィンドウ(ベータ版)を、入力トークン100万あたり3ドル、出力トークン100万あたり15ドルという低価格で提供します。APIの利用を開始するには: 1) console.anthropic.comからAPIキーを取得し、 2) SDKをインストール(pip install anthropic)し、 3) モデルID claude-sonnet-4-6を使用し、 4) 最良の結果を得るためにアダプティブシンキング(thinking: {type: "adaptive"})に切り替えてください。初期テスターはSonnet 4.5よりも70%高く評価し、Opus 4.5よりも59%高く評価しました。
はじめに
AnthropicはClaude Sonnet 4.6をリリースし、これによりミドルティアAIモデルのカテゴリが即座に再構築されました。これは単なる漸進的なアップデートではありません。初期の採用者によると、以前のプレミアムティアモデルであるOpus 4.5との直接比較テストで59%上回り、Sonnetの価格帯を維持しつつそれを実現したモデルです。

主な変更点としては、ベータ版として提供される1Mトークンのコンテキストウィンドウ、従来のバイナリ的な拡張シンキングアプローチに代わる新しいアダプティブシンキングモード、そして一般提供が開始されるツール群(ウェブ検索、コード実行、メモリ、ツール検索)が挙げられます。エージェントアプリケーションを構築する開発者にとって、Sonnet 4.6は、以前は高価なフロンティアモデルに限定されていた機能を、約3分の1のコストで提供します。
コーディングの改善は顕著です。ユーザーは、コード生成における指示遵守の向上、変更を加える前のより賢明なコンテキスト理解、自動的なロジック統合によるコード重複の削減を報告しています。コンピューター使用は、複雑な保険ワークフローで94%の精度に達します。SWE-bench Verifiedスコアは79.6%です。
このガイドでは、Claude Sonnet 4.6 APIを使って今日から開発を始めるために必要なすべてをカバーします。認証、PythonおよびJavaScriptでの実用的なコード例、新しいアダプティブシンキングパラメーター、1Mコンテキストウィンドウを有効にする方法、およびApidogのビジュアルAPIクライアントを使った統合テストの方法が含まれます。
Claude Sonnet 4.6の新機能
アダプティブシンキングモード
Sonnet 4.6では、従来のthinking: {type: "enabled", budget_tokens: N}パターンは非推奨になりました。その代わりとなるのがアダプティブシンキング:thinking: {type: "adaptive"}です。Claudeは、タスクに必要な推論量を動的に決定するようになりました。
アダプティブシンキングをeffortパラメーター(現在GAで利用可能)と組み合わせて、コストとパフォーマンスのバランスを調整できます。
effort: "high"(デフォルト)— Claudeはほとんど常に思考し、複雑な問題に最適ですeffort: "medium"— ほとんどのSonnet 4.6ユースケースに推奨され、速度と品質のバランスが取れていますeffort: "low"— 最小限の思考で、シンプルなタスクで最速の応答が得られます
コーディング性能の向上
Sonnet 4.6は、コード生成に3つの具体的な改善をもたらします。
- 指示遵守の向上 — 仕様により正確に一致するコードを生成します
- コンテキスト理解 — 既存のコードを修正する前に読み取り、理解することで、回帰を削減します
- ロジック統合 — 重複するパターンを特定し、共有の抽象化を提案します
初期テスターがコーディングベンチマークを実行した結果、Sonnet 4.6の出力はSonnet 4.5よりも70%のケースで、Opus 4.5よりも59%のケースで好まれました。
コンピューター利用の改善
コンピューター利用の精度はOSWorld-Verifiedで72.5%に達し(Opus 4.6から0.2%以内)、Sonnet 4.5から大幅に向上しました。このモデルは、UIナビゲーション、スプレッドシート操作、複数ステップのフォーム入力が必要な保険ワークフローで94%の精度を示します。また、自動化されたタスク中のプロンプトインジェクション攻撃に対してもより耐性があります。

ARC-AGI-2のブレークスルー
最も印象的なベンチマーク数値は、ARC-AGI-2のパフォーマンスが13.6%から58.3%へと4.3倍向上したことです。これは、モデルがこれまでパターンを見たことのないタスクに対する新しい問題解決能力を測定するものであり、記憶力ではなく真の推論能力の向上を示唆しています。
API仕様と価格
| 機能 | 値 |
|---|---|
| APIモデルID | claude-sonnet-4-6 |
| AWS Bedrock ID | anthropic.claude-sonnet-4-6 |
| GCP Vertex AI ID | claude-sonnet-4-6 |
| コンテキストウィンドウ | 200Kトークン (1Mベータ版、ヘッダー付き) |
| 最大出力トークン | 64K |
| 入力料金 | 100万トークンあたり3ドル |
| 出力料金 | 100万トークンあたり15ドル |
| プロンプトキャッシングによる節約 | 最大90% |
| バッチAPIによる節約 | 最大50% |
| ナレッジカットオフ(信頼性) | 2025年8月 |
| 学習データカットオフ | 2026年1月 |
| 拡張シンキング | はい |
| アダプティブシンキング | はい |
| 優先ティア | はい |
コスト削減オプション:
- プロンプトキャッシュ:システムプロンプトの静的部分をキャッシュし、最大90%削減
- バッチAPI:リクエストを非同期で処理し、50%割引
- 長文コンテキスト料金:200Kトークンを超えるリクエストには、個別の長文コンテキスト料金が適用されます
運用予算について:アダプティブシンキングモードでeffort: "medium"に設定した場合の100万トークン会話の入力トークンコストは、およそ3ドルです。ほとんどの単一API呼び出しは1セント未満です。
Claude Sonnet 4.6 APIの始め方
ステップ1:APIキーの取得
- platform.anthropic.comにログインします
- 設定でAPI Keysに移動します
- Create Keyをクリックし、値をすぐにコピーします(一度しか表示されません)

キーは環境変数として保存し、決してハードコードしないでください。
export ANTHROPIC_API_KEY="sk-ant-..."
ステップ2:SDKのインストール
Python:
pip install anthropic
JavaScript/Node.js:
npm install @anthropic-ai/sdk
ステップ3:初回のリクエストを作成
import anthropic
client = anthropic.Anthropic() # 環境変数からANTHROPIC_API_KEYを読み込みます
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "JavaScriptにおけるasync/awaitとPromiseの違いを説明してください。"}
]
)
print(response.content[0].text)
これが最小限の呼び出しです。レスポンスオブジェクトには、使用統計(入力トークン、出力トークン)、停止理由、モデルバージョンが含まれます。
Pythonコード例
基本的なテキスト生成
import anthropic
client = anthropic.Anthropic()
def ask_claude(question: str, system: str = None) -> str:
"""Claude Sonnet 4.6のテキスト生成用のシンプルなラッパー関数。"""
messages = [{"role": "user", "content": question}]
kwargs = {
"model": "claude-sonnet-4-6",
"max_tokens": 2048,
"messages": messages,
}
if system:
kwargs["system"] = system
response = client.messages.create(**kwargs)
return response.content[0].text
# 使用例
answer = ask_claude(
"このPython関数のパフォーマンス問題をレビューしてください。\n\ndef find_duplicates(lst):\n return [x for x in lst if lst.count(x) > 1]",
system="あなたはシニアPythonエンジニアです。具体的に指摘し、修正されたコードを提供してください。"
)
print(answer)
ストリーミングレスポンス
長い出力やリアルタイムUXには、ストリーミングを使用します。
import anthropic
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=4096,
messages=[{
"role": "user",
"content": "JWTによるユーザー認証を行う、FastAPIの完全なREST APIハンドラを作成してください。"
}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
# ストリーム完了後に使用統計を含む最終メッセージを取得します
message = stream.get_final_message()
print(f"\n\n使用トークン数: 入力 {message.usage.input_tokens}, 出力 {message.usage.output_tokens}")
ツール呼び出し/関数使用
import anthropic
import json
client = anthropic.Anthropic()
# ツールを定義
tools = [
{
"name": "get_repository_info",
"description": "スター数、フォーク数、最近のコミットなど、GitHubリポジトリに関する情報を取得します。",
"input_schema": {
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "リポジトリの所有者または組織名"
},
"repo": {
"type": "string",
"description": "リポジトリ名"
}
},
"required": ["owner", "repo"]
}
}
]
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
tools=tools,
messages=[{
"role": "user",
"content": "anthropics/anthropic-sdk-pythonリポジトリについて教えてください。"
}]
)
# ツール使用の応答を処理
for block in response.content:
if block.type == "tool_use":
print(f"呼び出されたツール: {block.name}")
print(f"引数: {json.dumps(block.input, indent=2)}")
# 本番環境では、ここで実際の実装を呼び出します
# result = get_repository_info(block.input["owner"], block.input["repo"])
ビジョンと画像解析
import anthropic
import base64
from pathlib import Path
client = anthropic.Anthropic()
def analyze_image(image_path: str, question: str) -> str:
"""Claude Sonnet 4.6で画像を分析します。"""
image_data = base64.standard_b64encode(Path(image_path).read_bytes()).decode("utf-8")
# 拡張子からメディアタイプを検出
ext = Path(image_path).suffix.lower()
media_type_map = {
".jpg": "image/jpeg",
".jpeg": "image/jpeg",
".png": "image/png",
".gif": "image/gif",
".webp": "image/webp"
}
media_type = media_type_map.get(ext, "image/jpeg")
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": media_type,
"data": image_data,
},
},
{
"type": "text",
"text": question
}
],
}]
)
return response.content[0].text
# 例: UIスクリーンショットのアクセシビリティ問題を分析
result = analyze_image(
"screenshot.png",
"このUIデザインにおけるアクセシビリティの問題を特定してください。コントラスト比、欠落しているaltテキストインジケーター、キーボードナビゲーションに関する懸念事項を確認してください。"
)
print(result)
JavaScript/Node.jsの例
基本的なセットアップとリクエスト
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY, // デフォルトですが、明確にするために明示的に示しています
});
async function askClaude(userMessage, systemPrompt = null) {
const params = {
model: "claude-sonnet-4-6",
max_tokens: 2048,
messages: [{ role: "user", content: userMessage }],
};
if (systemPrompt) {
params.system = systemPrompt;
}
const response = await client.messages.create(params);
return response.content[0].text;
}
// 使用法
const answer = await askClaude(
"このExpressルートをasync/awaitを使用するようにリファクタリングしてください:\n\napp.get('/users', (req, res) => {\n User.find({}, (err, users) => {\n if (err) return res.status(500).send(err);\n res.json(users);\n });\n});",
"あなたはシニアNode.js開発者です。リファクタリングされたコードと簡単な説明だけを返してください。"
);
console.log(answer);
TypeScriptでのストリーミング
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
async function streamCodeReview(codeSnippet: string): Promise<void> {
const stream = await client.messages.stream({
model: "claude-sonnet-4-6",
max_tokens: 4096,
messages: [
{
role: "user",
content: `このTypeScript関数の徹底的なコードレビューを実施してください:\n\n\`\`\`typescript\n${codeSnippet}\n\`\`\`\n\nタイプセーフティ、エッジケース、パフォーマンス、セキュリティに焦点を当ててください。`,
},
],
});
// テキストが到着するたびにストリーム表示
stream.on("text", (text) => {
process.stdout.write(text);
});
// 最終的な統計を取得
const finalMessage = await stream.finalMessage();
console.log(
`\n\n---\n総トークン数: ${finalMessage.usage.input_tokens + finalMessage.usage.output_tokens}`
);
}
マルチターン会話
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
class ConversationManager {
constructor(systemPrompt = null) {
this.messages = [];
this.systemPrompt = systemPrompt;
}
async chat(userMessage) {
this.messages.push({ role: "user", content: userMessage });
const params = {
model: "claude-sonnet-4-6",
max_tokens: 2048,
messages: this.messages,
};
if (this.systemPrompt) {
params.system = this.systemPrompt;
}
const response = await client.messages.create(params);
const assistantMessage = response.content[0].text;
// 会話履歴を維持
this.messages.push({ role: "assistant", content: assistantMessage });
return assistantMessage;
}
}
// 例: マルチターンデバッグセッション
const debugSession = new ConversationManager(
"あなたはエキスパートデバッガーです。質問を明確にし、問題を段階的に解決してください。"
);
console.log(await debugSession.chat("私のAPIは401エラーを返し続けています。"));
console.log(await debugSession.chat("Authorizationヘッダーは含んでいます。"));
console.log(
await debugSession.chat("トークンはログイン後、localStorageから取得しています。")
);
アダプティブシンキング:新しい拡張シンキング
アダプティブシンキングは、Sonnet 4.6の従来の拡張シンキングモデルに取って代わります。主な違いは、思考に固定のトークン予算を設定する代わりに、effortレベルを設定し、Claudeが問題が実際にどれだけの推論を必要とするかを決定するという点です。
アダプティブシンキングの使用方法
import anthropic
client = anthropic.Anthropic()
# 推奨: ほとんどのユースケースでミディアムエフォートのアダプティブシンキング
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=16000,
thinking={"type": "adaptive"},
effort="medium", # オプション: "low", "medium", "high" (デフォルト: high)
messages=[{
"role": "user",
"content": """
SaaS分析プラットフォームのデータベーススキーマを設計してください。次の要件を満たす必要があります。
- 数百万のユーザーからのイベントを追跡する
- 過去24時間のリアルタイムクエリをサポートする
- 履歴データを費用対効果の高い方法でアーカイブする
- エンタープライズ顧客向けにテナント分離を処理する
"""
}]
)
# 思考ブロックはテキスト応答の前に表示されます
for block in response.content:
if block.type == "thinking":
print(f"[Claudeの推論 - {len(block.thinking)} 文字]")
elif block.type == "text":
print(block.text)
実際の労力レベル
| 労力 | 最適用途 | 相対的コスト | 相対的速度 |
|---|---|---|---|
low |
分類、簡単なQ&A、フォーマット | 1倍 | 最速 |
medium |
コード生成、分析、ほとんどのタスク | 1.5〜2倍 | 速い |
high |
アーキテクチャ決定、複雑なデバッグ、数学 | 3〜5倍 | 中程度 |
移行に関する注意:thinking: {type: "enabled", budget_tokens: N}effortthinking: {type: "adaptive"}1Mトークンコンテキストウィンドウ
1Mトークンのコンテキストウィンドウを使用すると、Claudeにコードベース全体、広範なドキュメントセット、または数ヶ月分の会話履歴を供給できます。これは約75万語、または5~10個の完全なコードベースに相当する量を単一のリクエストで処理できることを意味します。
1Mコンテキストの有効化方法
リクエストにcontext-1m-2025-08-07ベータヘッダーを渡します。
import anthropic
client = anthropic.Anthropic()
# 大規模なコードベース全体を読み込む
with open("large_codebase.txt", "r") as f:
codebase_content = f.read()
response = client.beta.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
betas=["context-1m-2025-08-07"],
messages=[{
"role": "user",
"content": f"""
これが当社のバックエンドコードベース全体です:\n\n{codebase_content}\n\n
N+1問題を引き起こす可能性のあるすべてのデータベースクエリを見つけ、修正案を提案してください。
"""
}]
)
print(response.content[0].text)
// JavaScript の同等なコード
const response = await client.beta.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 4096,
betas: ["context-1m-2025-08-07"],
messages: [
{
role: "user",
content: `このコードベース全体をセキュリティ脆弱性についてレビューしてください:\n\n${codebaseContent}`,
},
],
});
1Mトークンがもたらすもの
- コードベース全体の分析: リポジトリ全体を送信し、バグの発見、リファクタリングの提案、テストの生成をClaudeに依頼できます
- 長文ドキュメント処理: 完全な法律契約、財務報告書、研究論文を分析します
- 拡張エージェントセッション: コンテキストを失うことなく、長い複数ステップタスクの完全な履歴を保持します
- ファイル間の依存関係追跡: 大規模なプロジェクト全体で関数やクラスのすべての使用箇所を検索します
料金に関する注意: 200Kトークンを超えるリクエストには、ロングコンテキスト料金が適用されます。高容量の使用については、適切に計画してください。
ウェブ検索と動的フィルタリング
ウェブ検索およびウェブフェッチツールは、Sonnet 4.6のパブリックベータ版で動的フィルタリングをサポートするようになりました。Claudeはコードを記述および実行して、検索結果がコンテキストウィンドウに入る前にフィルタリングし、関連情報のみを保持してトークンの使用量を大幅に削減します。
ウェブ検索またはウェブフェッチツールと組み合わせて使用する場合、コード実行は無料です(別途課金されません)。
動的ウェブ検索の設定
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
betas=["code-execution-web-tools-2026-02-09"],
tools=[
{
"type": "web_search_20260209", # 動的フィルタリングにはこのバージョンを使用
"name": "web_search",
}
],
messages=[{
"role": "user",
"content": "過去30日間に公開されたApache Log4jの最新のCVEを検索し、深刻度レベルを要約してください。"
}]
)
for block in response.content:
if hasattr(block, "text"):
print(block.text)
動的フィルタリングによるウェブフェッチ
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-sonnet-4-6",
max_tokens=2048,
betas=["code-execution-web-tools-2026-02-09"],
tools=[
{
"type": "web_fetch_20260209", # 動的フィルタリングを備えた新バージョン
"name": "web_fetch",
}
],
messages=[{
"role": "user",
"content": "Anthropicの料金ページを取得し、Claude Sonnetの料金行だけを抽出してください。"
}]
)
print(response.content[-1].text)
なぜ動的フィルタリングが重要なのか: フィルタリングなしで完全なウェブページを取得すると、関連コンテンツが2Kトークンしか必要ないページでも100Kトークンを消費する可能性があります。動的フィルタリングにより、Claudeはコード内でページを解析し、必要なものだけを返すことができるため、コンテンツが豊富なページではコストを90%以上削減できます。
コンテキスト圧縮API
コンテキスト圧縮は、コンテキストがウィンドウ制限を超えて蓄積される長時間実行のエージェントセッションを処理します。このAPIは、制限に近づくとサーバー側で会話の古い部分を自動的に要約し、事実上無制限の会話長を可能にします。
import anthropic
client = anthropic.Anthropic()
# ベータヘッダー経由でコンテキスト圧縮を有効化
response = client.beta.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
betas=["interleaved-thinking-2025-05-14"], # ベータ版で圧縮を有効化
system="あなたは長期実行型のソフトウェア開発エージェントです。このセッション中に行われたコードベースの変更に関するコンテキストを維持してください。",
messages=[
{"role": "user", "content": "認証モジュールのリファクタリングセッションを開始してください。"},
# ... 実際のセッションでは、ここにもっと多くのターンが入ります
]
)
# compaction_detailsフィールドは、要約が行われた時期を示します
if hasattr(response, "usage") and hasattr(response.usage, "cache_read_input_tokens"):
print(f"キャッシュによって節約されたコンテキストトークン数: {response.usage.cache_read_input_tokens}")
圧縮を使用すべき時: 数分以上実行され、履歴が蓄積されるあらゆるエージェントワークフロー(CI/CDエージェント、長時間のコーディングセッション、カスタマーサポートスレッド、または複数ステップの研究タスクなど)。
ApidogでClaude Sonnet 4.6をテストする
SDKコードを記述する前に、Apidogを使用してClaude Sonnet 4.6 APIを視覚的に探索してください。Apidogは、定型的な作業なしでヘッダーを設定し、リクエストボディを構築し、ストリーミングレスポンスを検査できるため、開発を加速します。

ApidogでのAnthropic APIの設定
- Apidogを開き、新しいHTTPリクエストを作成します
- メソッドを
POSTに、URLをhttps://api.anthropic.com/v1/messagesに設定します - 以下のヘッダーを追加します。
| ヘッダー | 値 |
|---|---|
x-api-key |
{{ANTHROPIC_API_KEY}} |
anthropic-version |
2023-06-01 |
Content-Type |
application/json |
- リクエストボディをJSONに設定します。
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Claude Sonnet 4.6の主要な改善点は何ですか?"
}
]
}
アダプティブシンキングのテスト
Apidogでアダプティブシンキングモードをテストするには、thinkingフィールドとeffortフィールドをリクエストボディに追加します。
{
"model": "claude-sonnet-4-6",
"max_tokens": 8192,
"thinking": {
"type": "adaptive"
},
"effort": "medium",
"messages": [
{
"role": "user",
"content": "1日あたり1,000万件のリクエストを処理するパブリックAPIのレート制限戦略を設計してください。"
}
]
}
Apidogでのベータ機能のテスト
ベータ機能(1Mコンテキスト、動的ウェブ検索、コンテキスト圧縮)を使用するには、ベータヘッダーを追加します。
| ヘッダー | 値 |
|---|---|
anthropic-beta |
context-1m-2025-08-07 |
または、ウェブ検索の動的フィルタリングの場合:
| ヘッダー | 値 |
|---|---|
anthropic-beta |
code-execution-web-tools-2026-02-09 |
Apidogを使用すると、これらの設定をプリセットとして保存し、チームと共有できるため、全員が整合性のあるAPIテスト環境を持つことができます。
新しいツールがGAに
これまでベータ版だったいくつかのツールが、Sonnet 4.6で一般提供されるようになりました。つまり、特別なベータヘッダーは不要です。
コード実行ツール
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
tools=[{"type": "code_execution_20250522", "name": "code_execution"}],
messages=[{
"role": "user",
"content": "10,000ドルの元本を年利5%で10年間、月複利で運用した場合の複利を計算してください。年ごとの内訳も示してください。"
}]
)
for block in response.content:
if block.type == "tool_result":
print("実行結果:", block.content)
elif hasattr(block, "text"):
print(block.text)
メモリーツール
メモリーツールを使用すると、Claudeは会話セッション間で情報を保持できるため、ステートフルなアシスタントの構築に役立ちます。
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=2048,
tools=[{"type": "memory_20250416", "name": "memory"}],
messages=[{
"role": "user",
"content": "私たちのAPIのベースURLがhttps://api.company.com/v2であり、すべてのエンドポイントでBearerトークン認証が必要であることを覚えておいてください。"
}]
)
プログラムによるツール呼び出し
プログラムによるツール呼び出しにより、Claudeは構造化されたAPI呼び出しを直接生成できます。
import anthropic
client = anthropic.Anthropic()
# Claudeは人間を介さずにツールをプログラムで呼び出すことができるようになりました
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=2048,
tools=[
{
"name": "execute_sql",
"description": "SQLクエリを実行し、結果を返します",
"input_schema": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "実行するSQLクエリ"},
"database": {"type": "string", "description": "データベース名"}
},
"required": ["query", "database"]
}
}
],
messages=[{
"role": "user",
"content": "2026年1月に登録し、まだ購入していないすべてのユーザーを見つけてください。"
}]
)
Sonnet 4.6と以前のモデルの比較
| Claude Sonnet 4.6 | Claude Sonnet 4.5 | Claude Opus 4.5 | |
|---|---|---|---|
| API ID | claude-sonnet-4-6 |
claude-sonnet-4-5-20250929 |
claude-opus-4-5-20251101 |
| 入力料金 | 3ドル/MTok | 3ドル/MTok | 5ドル/MTok |
| 出力料金 | 15ドル/MTok | 15ドル/MTok | 25ドル/MTok |
| コンテキストウィンドウ | 200K / 1M (ベータ版) | 200K / 1M (ベータ版) | 200K |
| 最大出力 | 64K | 64K | 64K |
| アダプティブシンキング | はい | いいえ | いいえ |
| 拡張シンキング | はい (非推奨) | はい | はい |
| SWE-benchスコア | 79.6% | 〜72% | 〜76% |
| OSWorld (コンピューター利用) | 72.5% | 〜65% | 〜72.7% |
| ウェブ検索フィルタリング | はい (ベータ版) | いいえ | いいえ |
| GAツール | コード実行、ウェブフェッチ、メモリ、ツール検索 | GAが少ない | 全スイート |
| Sonnet 4.5と比較したユーザーの好み | 70% | — | — |
| Opus 4.5と比較したユーザーの好み | 59% | — | — |
結論: Sonnet 4.5をお使いなら、Sonnet 4.6へのアップグレードは迷う必要がありません。同じ価格で、大幅に優れたコーディング性能とアダプティブシンキングが利用できます。Opus 4.5をお使いの場合でも、Sonnet 4.6はほとんどのユースケースでOpus 4.5と同等かそれ以上の性能を発揮し、しかもコストは60%に抑えられます。
ベストプラクティスとヒント
1. デフォルトでアダプティブシンキングを「中程度のエフォート」で使用する
ほとんどのSonnet 4.6のユースケースでは、effort: "medium"が最高のコストパフォーマンスバランスを提供します。アーキテクチャ設計、多段階推論チェーン、数学的証明などの真に複雑なタスクには、effort: "high"を予約しておきましょう。
# Sonnet 4.6の良好なデフォルトパターン
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
thinking={"type": "adaptive"},
effort="medium", # ほとんどのタスクに最適
messages=[...]
)
2. 1Kトークンを超える出力にはストリーミングを使用する
大規模なレスポンスでは、HTTPタイムアウトを避け、ユーザーに高速な応答時間を体感させるためにストリーミングが有効です。
# 長い応答が予想される場合
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=8192,
messages=[...]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
3. 繰り返されるシステムプロンプトにはプロンプトキャッシングを有効にする
多くの呼び出しで同じシステムプロンプトを使用する場合、それをキャッシュすることで最大90%のコストを節約できます。
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system=[
{
"type": "text",
"text": "ここに長いシステムプロンプト...",
"cache_control": {"type": "ephemeral"} # このブロックをキャッシュ
}
],
messages=[{"role": "user", "content": user_input}]
)
4. レート制限を適切に処理する
Sonnet 4.6は寛大なレート制限を備えていますが、本番システムでは指数バックオフを実装する必要があります。
import anthropic
import time
def create_with_retry(client, max_retries=3, **kwargs):
for attempt in range(max_retries):
try:
return client.messages.create(**kwargs)
except anthropic.RateLimitError:
if attempt == max_retries - 1:
raise
wait_time = (2 ** attempt) + 1 # 2秒、3秒、5秒
time.sleep(wait_time)
5. Sonnet 4.6でのプレフィルから移行する
Claude 4.6モデルでは、アシスタントメッセージのプレフィル(最後のターンのプレフィル)はサポートされていません。代わりに構造化された出力を使用してください。
# 古いアプローチ (Claude 4.6では機能しません):
# messages = [
# {"role": "user", "content": "JSONをください..."},
# {"role": "assistant", "content": "{"} # プレフィル
# ]
# 新しいアプローチ: 構造化された出力を使用
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
output_config={
"format": {
"type": "json_schema",
"schema": {
"type": "object",
"properties": {
"name": {"type": "string"},
"score": {"type": "number"}
}
}
}
},
messages=[{"role": "user", "content": "サンプルユーザーオブジェクトを生成してください。"}]
)
6. データレジデンシーのためにAWSまたはGCPを指定する
コンプライアンス要件により米国のみの推論が必要な場合は、inference_geoパラメータを使用します。
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
inference_geo="us", # 米国のデータセンターで推論が実行されることを保証します
messages=[...]
)
Sonnet 4.6での米国のみの推論は、標準料金の1.1倍で提供されます。
Claude Sonnet 4.6で開発する準備はできましたか?Apidogを無料でダウンロードして、API呼び出しを視覚的にテストし、リクエスト設定でチームと協力し、SDKコードを自動生成しましょう。クレジットカードは不要です。
