コンテンツへスキップ

media AI活用の最前線

Claude Fable 5 APIハンズオン|Python10本【2026年】

Claude Fable 5 APIハンズオン|Python10本【2026年】

結論:Claude Fable 5(モデルID: claude-fable-5)は Python SDK 4行から呼び出せる。本記事ではSDK初期化から Batch API まで10のコードブロックを完全公開し、$10/$50 per 1M tokensのコスト試算も具体的な数字で解説する。

この記事の要点:

  • SWE-Bench Pro 80.3%・1Mトークンコンテキスト・適応的思考(Adaptive Thinking)がデフォルトONで、Claude史上最強のAPIが2026年6月9日から一般提供開始
  • 入力$10/出力$50 per 1M tokensだが、Prompt Caching(90%OFF)とBatch API(50%OFF)を組み合わせれば実質コストはOpus 4.8とほぼ同等にできる
  • Streaming・Tool Use・Structured Output・Vision・1Mコンテキスト・Batch APIすべてを、コピペで動くPythonコードで網羅している

対象読者:Anthropic APIをPythonで使い始めたい開発者、Fable 5への移行を検討中のエンジニア

読了後にできること:今日の業務でFable 5を呼び出す最低限のコードを手元で動かせる

「あのモデル、本当に使えるの?コストが怖くて試せない」

先週、AIツールの導入支援を行っているエンジニアの方からこんな相談を受けました(想定例)。Fable 5のベンチマークスコアは圧倒的なのに、$10/$50 per 1M tokensという価格を見て即座にタブを閉じてしまったというのです。正直、気持ちはわかります。初めて見たとき僕も「これ、Opus 4.8の2倍じゃないか」と思いましたから。

ただ、実際にコードを書いて試してみると、Prompt CachingとBatch APIを組み合わせればコストは劇的に変わります。1Mトークンのコンテキストを使い倒せるユースケースなら、1リクエストあたりの単価はOpus 4.8時代と大差なくなる。それを知らずに「高い」と諦めるのは、かなりもったいない話です。

この記事では、SDKの初期化から始まり、Streaming・Tool Use・Structured Output・Vision・1Mコンテキスト・コスト試算・Error Handling・Batch API・Adaptive Thinkingまで、実用的な10のコードブロックをすべて公開します。コピペで動くコードに加えて、各機能の料金計算も具体的な数字で解説するので、「動く」だけでなく「いくらかかるか」まで把握できます。

Fable 5は2026年6月22日までClaude.ai全プランで無料提供中です。API経由の実装を試すなら、今がベストタイミングです。さっそく最初のコードから見ていきましょう。

📋 Claude Fable 5 法人導入を本格検討中の方へ — 情シス9・法務8・経営6の23項目チェックリストと30分無料相談予約をまとめた 法人導入支援LP をご覧ください。

Claude Fable 5とは何か — 技術仕様をエンジニア視点で整理する

Claude Fable 5は、Anthropicが2026年6月9日に一般提供を開始したモデルです。「Mythos」クラスと呼ばれる最上位モデル群から、一般公開向けに安全性を確認したバージョンとして切り出されたもので、モデルIDは claude-fable-5 です。

APIから見たときの主な仕様は下表のとおりです(Anthropic公式ドキュメントより)。

項目
モデルID(Claude API)claude-fable-5
コンテキストウィンドウ1M tokens
最大出力トークン128k tokens
入力価格$10 / 1M tokens
出力価格$50 / 1M tokens
キャッシュ書き込み(5分)$12.50 / 1M tokens
キャッシュ読み込み$1.00 / 1M tokens
Batch API入力$5.00 / 1M tokens
Batch API出力$25.00 / 1M tokens
Adaptive Thinking常時ON(無効化不可)

SWE-Bench Pro(汚染耐性のあるコーディングベンチマーク)で80.3%を記録しており、2位との差は11ポイント以上あります(TrueFoundry調査 2026年6月)。Anthropicの解説によると、危険カテゴリ(サイバーセキュリティ・生物・化学・モデル蒸留)を検出した場合は自動でOpus 4.8にフォールバックする仕組みが内蔵されており、これが「cyber-biology-distillation」と呼ばれるセーフガードです。

AIエージェントの基礎とAPIの使い方については、AIエージェント完全ガイドでも体系的に解説しています。Fable 5はこのエージェント用途に特に強みを持つモデルです。

Code 01:SDKインストール&初期化 — まず動かす最短コード

何か新しいAPIを使うとき、まず確認するのは「Hello Worldが動くか」ですよね。Fable 5は既存のAnthropicPython SDKから呼び出せるので、追加のパッケージは不要です(想定例:最初に試したとき、インストール0秒・実行5秒で驚きました)。

# インストール(anthropic SDKが未導入の場合のみ)
pip install anthropic
import anthropic

# 基本的な呼び出し(APIキーはenv変数 ANTHROPIC_API_KEY から自動取得)
client = anthropic.Anthropic()

message = client.messages.create(
    model="claude-fable-5",          # モデルID
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Pythonで素数を判定する関数を書いて"}
    ]
)

print(message.content[0].text)

# コスト確認
usage = message.usage
input_cost  = usage.input_tokens  / 1_000_000 * 10   # $10/MTok
output_cost = usage.output_tokens / 1_000_000 * 50   # $50/MTok
print(f"コスト概算: ${input_cost + output_cost:.6f}")

環境変数 ANTHROPIC_API_KEY を設定しておけば、コード中にAPIキーをハードコードする必要はありません。公式クイックスタートでAPIキーの取得方法を確認してください。

Code 02:Streaming — 長い応答をリアルタイムで受け取る

Fable 5は最大128kトークンを出力できます。ドキュメント生成やコードレビューなど長い応答を扱うなら、Streamingは必須です。バッファに溜め込んでから一括表示では、UXが悪くなりますし、タイムアウトのリスクもあります。

import anthropic

client = anthropic.Anthropic()

# with構文でStreamingセッションを管理
with client.messages.stream(
    model="claude-fable-5",
    max_tokens=4096,
    messages=[
        {"role": "user", "content": "Pythonの非同期処理(asyncio)を初心者向けに詳しく解説して"}
    ]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

# Streaming終了後にusageを取得
final = stream.get_final_message()
print(f"nn入力: {final.usage.input_tokens} tokens")
print(f"出力: {final.usage.output_tokens} tokens")

Adaptive Thinkingが常時ONのFable 5では、まず思考ブロック(thinking_delta)が流れ、その後テキスト(text_delta)が届く場合があります。思考ブロックはUIに表示しないケースが多いので、テキストだけを拾う上記パターンが実用的です。

Code 03:Tool Use — 外部関数をAIに呼ばせる

Fable 5のTool Use(関数呼び出し)は、エージェント構築の核心機能です。研修現場でもよく「ツール定義がわかると、ChatGPTとの違いがはっきりする」と言われます(想定例)。JSONスキーマを書いてAnthropicに渡すだけで、モデルが適切なタイミングで関数を呼び出す判断をしてくれます。

import anthropic, json

client = anthropic.Anthropic()

# ツール定義(JSONスキーマ形式)
tools = [
    {
        "name": "get_stock_price",
        "description": "指定した銘柄コードの現在株価を取得する",
        "input_schema": {
            "type": "object",
            "properties": {
                "ticker": {
                    "type": "string",
                    "description": "銘柄コード(例: AAPL, 7203.T)"
                }
            },
            "required": ["ticker"]
        }
    }
]

# 1回目のリクエスト
response = client.messages.create(
    model="claude-fable-5",
    max_tokens=1024,
    tools=tools,
    messages=[
        {"role": "user", "content": "Appleの株価を教えて"}
    ]
)

# モデルがtool_useを要求した場合
if response.stop_reason == "tool_use":
    tool_block = next(b for b in response.content if b.type == "tool_use")
    print(f"呼び出しツール: {tool_block.name}")
    print(f"引数: {tool_block.input}")

    # 実際の処理(ここでは仮の値を返す)
    tool_result = {"price": 189.42, "currency": "USD"}

    # ツール結果を渡して続きを生成
    final_response = client.messages.create(
        model="claude-fable-5",
        max_tokens=1024,
        tools=tools,
        messages=[
            {"role": "user", "content": "Appleの株価を教えて"},
            {"role": "assistant", "content": response.content},
            {
                "role": "user",
                "content": [
                    {
                        "type": "tool_result",
                        "tool_use_id": tool_block.id,
                        "content": json.dumps(tool_result)
                    }
                ]
            }
        ]
    )
    print(final_response.content[0].text)

Tool Useの料金は通常のAPIリクエストと同じトークン課金です。Anthropic価格ページによると、ツール定義のJSONスキーマ自体もトークン消費の対象になるため、ツール説明文は簡潔にまとめると節約になります。

Code 04:Structured Output — JSONを確実に受け取る

「AIの出力をパースしたらエラーが出た」という経験は誰にでもあるはずです(想定例:ある顧問先の開発チームは、プロンプトだけでJSON出力を制御しようとして何週間も消耗していました)。Fable 5はJSONスキーマを指定した構造化出力(Structured Output)に対応しており、パースに失敗しない保証された形式で返してくれます。

import anthropic, json

client = anthropic.Anthropic()

# JSON出力を保証するシステムプロンプト + ツール経由の手法
# (Fable 5はtool_choiceでforced_tool_callを使うのが確実)
extraction_tool = {
    "name": "extract_article_data",
    "description": "記事から情報を構造化して抽出する",
    "input_schema": {
        "type": "object",
        "properties": {
            "title":    {"type": "string",  "description": "記事タイトル"},
            "category": {"type": "string",  "description": "カテゴリ"},
            "keywords": {
                "type": "array",
                "items": {"type": "string"},
                "description": "主要キーワード(最大5つ)"
            },
            "summary":  {"type": "string",  "description": "200字以内の要約"}
        },
        "required": ["title", "category", "keywords", "summary"]
    }
}

article_text = """
Anthropicが開発したClaude Fable 5は2026年6月9日に一般提供が開始された。
SWE-Bench Proで80.3%を記録し、コーディング能力で他モデルを大きく引き離している。
"""

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=1024,
    tools=[extraction_tool],
    tool_choice={"type": "tool", "name": "extract_article_data"},  # 強制呼び出し
    messages=[
        {"role": "user", "content": f"以下の記事から情報を抽出して:nn{article_text}"}
    ]
)

# tool_useブロックからJSONを取得
for block in response.content:
    if block.type == "tool_use":
        data = block.input  # すでにdictとして返ってくる
        print(json.dumps(data, ensure_ascii=False, indent=2))

AI活用、何から始めればいい?

100社以上の研修実績をもとに、30分の無料相談で貴社の課題を整理します。

無料相談はこちら

Code 05:Vision — 画像をAPIに渡して解析する

Fable 5はテキストと画像の両方を入力として受け付けます。スクリーンショットのバグ報告、グラフの読み取り、UIレビューなど、ビジュアルコンテキストが必要な場面で特に有効です。

import anthropic, base64
from pathlib import Path

client = anthropic.Anthropic()

# ローカル画像をBase64エンコードして送る方法
image_path = Path("screenshot.png")
image_data = base64.standard_b64encode(image_path.read_bytes()).decode("utf-8")

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=2048,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": "image/png",   # image/jpeg, image/gif, image/webp も可
                        "data": image_data
                    }
                },
                {
                    "type": "text",
                    "text": "このスクリーンショットのUIの問題点を3つ指摘して。それぞれ改善案も添えて"
                }
            ]
        }
    ]
)

print(response.content[0].text)

# 画像トークン目安: 1024x1024 PNG ≒ 1,500〜2,500 input tokens
# コスト: 2,000 tokens × $10/MTok = $0.02 / 枚

URLで画像を参照する方法("type": "url")も使えますが、公開URLが必要です。プライベートな画像や動的生成物はBase64形式を使ってください。

Code 06:1Mトークンコンテキスト — 大規模コードベースを一括解析する

Fable 5の最大の差別化要因の一つが1Mトークンのコンテキストウィンドウです(約75万英単語、日本語なら40〜50万文字相当)。これにより、大規模なコードベース全体を一度に渡した上でのリファクタリング指示、数百ページのドキュメント横断検索、長期の会話履歴全件分析が可能になります。

import anthropic
from pathlib import Path

client = anthropic.Anthropic()

# 複数ファイルをコンテキストに積む例
def load_codebase(directory: str, extensions: list = [".py", ".js", ".ts"]) -> str:
    """指定ディレクトリのコードファイルをすべて結合して文字列にする"""
    combined = []
    for ext in extensions:
        for path in sorted(Path(directory).rglob(f"*{ext}")):
            content = path.read_text(errors="replace")
            combined.append(f"=== {path} ===n{content}n")
    return "n".join(combined)

# コードベース全体(想定: 数万〜数十万行)を渡す
codebase = load_codebase("./src")

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=8192,
    messages=[
        {
            "role": "user",
            "content": f"""以下のコードベース全体を読んで、
1. アーキテクチャの問題点を3つ指摘
2. セキュリティリスクがあるコード箇所をリストアップ
3. パフォーマンスボトルネックの候補を特定
してください。


{codebase}
"""
        }
    ]
)

print(response.content[0].text)
# 1Mトークンフル使用した場合の最大コスト: $10(入力)+ $50×max_out(出力)

事例区分: 想定シナリオ
100社以上の法人AI導入支援経験をもとに構成した典型的なシナリオです。中規模SaaS企業のバックエンド開発チームが、30万行超のレガシーコードを一括でFable 5に渡し、マイグレーション計画を作成した例では、従来のツール(grep・静的解析ツール組み合わせ)で2週間かかっていた「影響範囲の特定」が1日以内で完了したと報告されています。

ChatGPTをビジネス活用する場面との使い分けについては、ChatGPTビジネス活用完全ガイドも参考にしてください。コンテキスト長の差がユースケースにどう影響するかを具体的に比較しています。

Code 07:コスト試算 — 実際にいくらかかるか計算する

Fable 5のコストを恐れている人の多くは、「キャッシュを使えば激安になる」という事実を知らないだけです。Prompt CachingとBatch APIを組み合わせると、体感コストはOpus 4.8と大差なくなります。

def fable5_cost_estimate(
    input_tokens: int,
    output_tokens: int,
    cache_read_tokens: int = 0,
    use_batch: bool = False
) -> dict:
    """
    Claude Fable 5のコストを試算する(2026年6月時点の公式価格)
    https://platform.claude.com/docs/en/about-claude/pricing
    """
    if use_batch:
        input_rate  = 5.00   # $5/MTok (Batch API 50%OFF)
        output_rate = 25.00  # $25/MTok
    else:
        input_rate  = 10.00  # $10/MTok (通常)
        output_rate = 50.00  # $50/MTok

    cache_read_rate = 1.00   # $1/MTok(90%OFF)

    # キャッシュ読み込みはキャッシュ料金で計算
    uncached_input = input_tokens - cache_read_tokens
    cost_input  = uncached_input  / 1_000_000 * input_rate
    cost_cache  = cache_read_tokens / 1_000_000 * cache_read_rate
    cost_output = output_tokens / 1_000_000 * output_rate
    total = cost_input + cost_cache + cost_output

    return {
        "input_cost_usd":  round(cost_input,  6),
        "cache_cost_usd":  round(cost_cache,  6),
        "output_cost_usd": round(cost_output, 6),
        "total_usd":       round(total,       6),
        "total_jpy":       round(total * 155, 2)  # 目安: 1USD=155JPY
    }

# 使用例1: 通常API呼び出し (入力1000トークン、出力500トークン)
print("【通常API】")
r = fable5_cost_estimate(input_tokens=1000, output_tokens=500)
print(f"  合計: ${r['total_usd']:.6f} / 約{r['total_jpy']}円")

# 使用例2: 大規模コンテキスト(100Kトークン入力、うち95Kキャッシュ済み)
print("n【1Mコンテキスト活用(95%キャッシュヒット)】")
r2 = fable5_cost_estimate(
    input_tokens=100_000,
    output_tokens=2_000,
    cache_read_tokens=95_000
)
print(f"  合計: ${r2['total_usd']:.4f} / 約{r2['total_jpy']}円")

# 使用例3: Batch API(夜間バッチ処理・50%OFF)
print("n【Batch API (50%OFF)】")
r3 = fable5_cost_estimate(
    input_tokens=100_000,
    output_tokens=2_000,
    use_batch=True
)
print(f"  合計: ${r3['total_usd']:.4f} / 約{r3['total_jpy']}円")

上記のコード例を実行すると次のようになります(想定値)。

シナリオ入力コスト出力コスト合計
通常API(1K入力/500出力)$0.000010$0.000025$0.000035
95%キャッシュヒット(100K入力)$0.0005$0.0001約$0.19
Batch API(100K入力・50%OFF)$0.0005$0.00005約$0.10

キャッシュを活用すれば、Fable 5でも1リクエスト数円以下で運用できるケースが多数あります。

Code 08:Error Handling — 本番環境で安定稼働させる

本番環境でFable 5を使うなら、エラーハンドリングは必須です。想定例として、ある開発プロジェクトで「本番リリース後にレートリミットで処理が止まった」という事態を経験したことがあります。適切なリトライロジックがあれば防げた問題でした。Anthropic SDKには自動リトライ機能がありますが、自前で制御したい場合の実装例を示します。

import anthropic, time, logging
from anthropic import APIStatusError, APIConnectionError, RateLimitError

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

client = anthropic.Anthropic(
    max_retries=3,          # SDK組み込みの自動リトライ(デフォルト2回)
    timeout=60.0            # タイムアウト60秒
)

def robust_fable5_call(prompt: str, max_attempts: int = 5) -> str:
    """指数バックオフつきのリトライラッパー"""
    for attempt in range(1, max_attempts + 1):
        try:
            response = client.messages.create(
                model="claude-fable-5",
                max_tokens=2048,
                messages=[{"role": "user", "content": prompt}]
            )
            return response.content[0].text

        except RateLimitError as e:
            # レートリミット → Retry-Afterヘッダを見て待つ
            wait = int(e.response.headers.get("retry-after", 60))
            logger.warning(f"Rate limited. Waiting {wait}s... (attempt {attempt})")
            time.sleep(wait)

        except APIStatusError as e:
            if e.status_code == 529:  # Overloaded
                wait = 2 ** attempt
                logger.warning(f"Server overloaded. Retry in {wait}s... (attempt {attempt})")
                time.sleep(wait)
            elif e.status_code >= 500:
                wait = 2 ** attempt
                logger.error(f"Server error {e.status_code}. Retry in {wait}s...")
                time.sleep(wait)
            else:
                raise  # 4xx系はリトライしない(クライアント側の問題)

        except APIConnectionError:
            wait = 2 ** attempt
            logger.warning(f"Connection error. Retry in {wait}s... (attempt {attempt})")
            time.sleep(wait)

    raise RuntimeError(f"Failed after {max_attempts} attempts")

# 使用例
result = robust_fable5_call("Pythonのデコレータを説明して")
print(result)

【要注意】よくある失敗パターン4つ — Fable 5特有のつまずきポイント

Fable 5を実装してみた経験から、特にエンジニアが引っかかりやすいポイントを整理します。

失敗1:従来のExtended Thinkingパラメータを渡してエラー
thinking={"type": "enabled", "budget_tokens": 10000} を渡す
⭕ Fable 5のAdaptive ThinkingはデフォルトONで無効化不可。thinking パラメータ不要(渡すと400エラー)。
なぜ重要か: Claude Opus 4.7/4.6で動いていたコードをそのまま移行すると即エラーになります。

失敗2:トークン数の過小見積もり
❌ 旧モデルと同じトークン試算をFable 5に使う
⭕ Fable 5はOpus 4.7から導入された新トークナイザーを使用しており、同じテキストでも旧モデルより約30%多くトークンを消費する(Anthropic公式ドキュメント)。コスト見積もりには30%のバッファを乗せること。
なぜ重要か: 予算オーバーの原因になります。

失敗3:Batch APIのレスポンスを同期で待つ
❌ Batch APIリクエスト後に即座に結果を取得しようとする
⭕ Batch APIは非同期。完了まで数分〜数時間かかる。ポーリングループまたはWebhookで結果を受け取る設計にする。
なぜ重要か: タイムアウトエラーで処理が落ちます。

失敗4:キャッシュを設定したのに効かない
cache_control を毎回異なるシステムプロンプトに設定する
⭕ キャッシュは「同一コンテンツ」を再送したときにヒットする。システムプロンプトが少しでも変わると新規書き込みになる。変わらない部分(ルール、資料)を先頭に固定し、変わる部分(ユーザー入力)を後ろに置くことでキャッシュヒット率を高める。
なぜ重要か: 「キャッシュを設定したはずなのにコストが下がらない」という相談が研修でも頻出します。

Code 09:Batch API — 大量リクエストを50%OFFで処理する

時間のかかる分析や変換処理を夜間バッチで流したいケースに最適です。通常APIより50%安く、最大10,000リクエストを一括で送れます。

import anthropic, json, time

client = anthropic.Anthropic()

# 複数のプロンプトをバッチで送る
requests = [
    {
        "custom_id": f"task_{i}",
        "params": {
            "model": "claude-fable-5",
            "max_tokens": 1024,
            "messages": [
                {"role": "user", "content": f"製品説明文を英語に翻訳して: {jp_text}"}
            ]
        }
    }
    for i, jp_text in enumerate([
        "高品質な日本製のノートパソコン",
        "環境に優しい再生可能エネルギーソリューション",
        "業務効率を改善するAIソフトウェア"
    ])
]

# バッチ送信
batch = client.messages.batches.create(requests=requests)
print(f"Batch ID: {batch.id}, 状態: {batch.processing_status}")

# ポーリングで完了を待つ(本番では非同期/Webhookを推奨)
while True:
    batch = client.messages.batches.retrieve(batch.id)
    if batch.processing_status == "ended":
        break
    print(f"処理中... ({batch.request_counts})")
    time.sleep(30)

# 結果の取得
for result in client.messages.batches.results(batch.id):
    if result.result.type == "succeeded":
        print(f"[{result.custom_id}] {result.result.message.content[0].text[:100]}...")
    else:
        print(f"[{result.custom_id}] エラー: {result.result.error}")

# コスト比較
# 通常API: 3リクエスト × 平均1K入力 × $10/MTok = $0.00003
# Batch API: 同条件 × $5/MTok = $0.000015 (50%OFF)

Code 10:Prompt Caching — 繰り返しリクエストのコストを90%削減する

大規模なシステムプロンプトや参照ドキュメントを毎回送っている場合、Prompt Cachingで劇的にコストを削減できます。研修現場でこの技術を初めて知ったエンジニアから「なぜもっと早く教えてくれなかったのか」という声が出るほど効果的なテクニックです(想定例)。

import anthropic

client = anthropic.Anthropic()

# 長い参照ドキュメント(例:社内規則、製品仕様)
long_reference_doc = """
[ここに数万字の参照資料]
会社の全製品仕様書、サポートFAQ、内部手順書などを想定...
""" * 500  # 実際は変化しないドキュメントを想定

# cache_controlでキャッシュを有効化
response = client.messages.create(
    model="claude-fable-5",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": "あなたは製品サポートの専門家です。以下の資料に基づいて回答してください。",
            "cache_control": {"type": "ephemeral"}  # このブロックをキャッシュ
        },
        {
            "type": "text",
            "text": long_reference_doc,
            "cache_control": {"type": "ephemeral"}
        }
    ],
    messages=[
        {"role": "user", "content": "製品Aの返品手続きを教えて"}
    ]
)

print(response.content[0].text)

# usage確認
usage = response.usage
print(f"キャッシュ書き込み: {getattr(usage, 'cache_creation_input_tokens', 0)} tokens")
print(f"キャッシュ読み込み: {getattr(usage, 'cache_read_input_tokens', 0)} tokens")
# 2回目以降のリクエストはキャッシュ読み込みになり、$1/MTok(90%OFF)で処理される

Fable 5のAPI活用についての詳細は、Claude Fable 5完全ガイドでより幅広く解説しています。また、エンタープライズ導入を検討している方はFable 5エンタープライズ導入チェックリストも参考にしてください。

Fable 5実装でよく聞かれるQ&A

Q. 既存のOpus 4.8のコードをFable 5に移行するのにどれくらいかかりますか?
A. ほぼ1行変更です。model="claude-opus-4-8"model="claude-fable-5" に変えるだけで基本的なAPI呼び出しは動きます。ただし、Adaptive Thinkingがデフォルトでオンになるため、thinking パラメータを明示的に渡していた場合はそのコードを削除する必要があります(渡すと400エラー)。

Q. 1Mトークンのコンテキストを使うとコストが爆発しませんか?
A. Prompt Cachingを使えば大幅に抑えられます。例えば100万トークンのシステムプロンプトを毎回送る代わりにキャッシュすれば、2回目以降は$1/MTok(90%OFF)で処理されます。会話型アプリのように同一コンテキストを繰り返し使うなら、Fable 5のコストはOpus 4.8と大差なくなることも十分あります。

Q. Batch APIの結果はどれくらいで返ってきますか?
A. Anthropicの公式ドキュメントによると通常数分から最大24時間です。SLAは設定されていないため、リアルタイム性が必要な処理には向きません。夜間バッチ、大量翻訳、レポート生成など非同期でOKなワークフローに使いましょう。

Q. Fable 5はどんな用途で一番効果を発揮しますか?
A. 研修現場での印象をもとに言うと(想定例)、複雑な推論が必要なコードレビュー、大量ドキュメントを横断した情報抽出、長期にわたるエージェント型のタスク自動化が特に際立ちます。単純なQ&Aや短文生成はコスト面でSonnet 4.6やHaiku 4.5の方が効率的です。用途でモデルを使い分けることがコスト最適化の第一歩です。

法人導入時に検討すべき設計ポイント

Fable 5を業務システムに組み込む際、APIの使い方だけでなく設計面でも考慮すべき点があります。

レート制限の設計:Fable 5はTier別のレート制限があります。初期ティア(Tier 1)では分あたりのリクエスト数と1分あたりのトークン数に上限があるため、高頻度で呼び出す用途では早めにTierアップを申請するか、Batch APIで分散処理する設計にしましょう。

セキュリティと監査ログ:Fable 5のAPIリクエスト・レスポンスには個人情報や機密情報が含まれる場合があります。ログ保存の際はPIIマスキング、保存期間ポリシー、アクセス制御を設計段階から組み込むことを推奨します。Anthropicはプライバシーポリシーで入力データの学習利用に関する設定方法を公開しています。

フォールバック設計:API障害やレートリミット時に業務が止まらないよう、Sonnet 4.6への自動フォールバックロジックを実装しておくのがベストプラクティスです。Code 08のエラーハンドリングにモデルフォールバックを組み合わせると実用的な設計になります。

コスト管理:Anthropicコンソールでは用途別にAPIキーを発行し、部門・プロジェクトごとにコストを追跡できます。特にFable 5のような高単価モデルは予算上限アラートを設定しておくことで、想定外のコスト増加を事前に検知できます。

まとめ:今日から始める3つのアクション

  1. 今日やること:Code 01のSDK初期化コードを手元で動かす。APIキーを取得して基本呼び出しを確認するだけで、Fable 5の速度と品質が体感できます。
  2. 今週中:Code 07のコスト試算関数を自分のユースケースに当てはめる。Prompt Caching(Code 10)を加味した現実的なコスト見積もりを出して、Opus 4.8継続利用との比較判断をする。
  3. 今月中:本番ワークフローの中でBatch API(Code 09)を1つ実装する。夜間バッチに切り替えるだけで同等タスクのコストが50%下がります。

Claude Fable 5 法人導入支援LPを公開しました

APIハンズオン・コスト試算・セキュリティ設計まで一括サポートします

法人導入支援LPを見る →

次のステップ:学習リソースと参考実装

Fable 5のAPIを深く学ぶために役立つリソースを整理しました。

Anthropic公式ドキュメント:

実装のポイントまとめ: 10のコード例を振り返ると、最も効果の高い3つは「Prompt Caching(Code 10)でランニングコストを90%削減」「Batch API(Code 09)で非同期バッチを50%OFFで処理」「Error Handling(Code 08)で本番安定稼働」です。新機能を試すより、この3つを最初に実装する方が投資対効果は高くなります。

Fable 5は2026年6月22日までClaude.ai全プランで無料で使えます。UIでの挙動を確認しながらAPIの設計をするという並行学習アプローチが、理解を深める上で最も効率的です。ぜひ今日のうちに一度試してみてください。

参考・出典


著者:佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。
100社以上の企業向けAI研修・導入支援。著書『AIエージェント仕事術』(SBクリエイティブ)。
SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。
ご質問・ご相談はお問い合わせフォームからお気軽にどうぞ。

無料・初回相談

100社以上の支援実績|30分の無料相談で導入設計を一緒に組みます

Claude Code / Codex の社内展開・チーム導入・セキュリティ設計まで、貴社の業務と組織に合わせて伴走支援します。

  • 100社以上の企業支援実績
  • 初回30分無料・即日返信
  • 導入後3ヶ月の伴走付き

お問い合わせフォームから24時間以内にUravation担当者がご返信します。

佐藤傑
この記事を書いた人 Uravation Lead API Bot
この記事をシェア

Claude Codeを本格的に使いこなしたい方へ

週1回・1時間のマンツーマン指導で、3ヶ月後にはClaude Codeで自走できる実力が身につきます。
現役エンジニアが貴方の業務に合わせてカリキュラムをカスタマイズ。

✓ 1対1のマンツーマン ✓ 全12回・3ヶ月 ✓ 実務ベースの指導
Claude Code 個別指導の詳細を見る まずは無料相談

Contact お問い合わせ

生成AI研修や開発のご依頼、お見積りなど、
お気軽にご相談ください。

Claude Code 個別指導(1対1・12セッション)をご希望の方はこちらから別途お申し込みください

Claude Code 個別指導 無料相談