DEV Community

Cover image for Claude Opus 4.8 APIの使い方
Akira
Akira

Posted on • Originally published at apidog.com

Claude Opus 4.8 APIの使い方

Claude Opus 4.8 APIは、2026年5月28日のモデルリリースと同時に公開されました。モデルIDは claude-opus-4-8 で、既存のMessages APIから呼び出せます。このガイドでは、APIキーの取得、最初のリクエスト、effort、適応思考、ストリーミング、ツール利用、そしてApidogでのテスト手順までを実装ベースで説明します。

今すぐApidogを試す

既にClaudeモデルを使っている場合、基本的にはモデル名を差し替えるだけです。新しく意識すべき点は、従来の思考バジェットに代わる effort 制御です。Claude APIが初めての場合でも、以下の手順で約10分でOpus 4.8を呼び出せます。モデルの概要はClaude Opus 4.8とは何かを参照してください。

Opus 4.8 APIで使える主な仕様

実装時に確認すべきポイントは次のとおりです。

  • モデルID: claude-opus-4-8
  • 入力コンテキスト: 100万トークン
  • 最大出力: 12万8000トークン
  • エンドポイント: 既存のMessages API
  • effort 制御: lowmediumhighxhighmax
  • 適応思考: モデルが推論の深さを自動調整
  • 標準価格: 入力100万トークンあたり5ドル、出力100万トークンあたり25ドル

料金の詳細はOpus 4.8料金ガイドを参照してください。有料プランをまだ使っていない場合は、無料アクセスガイドで利用方法を確認できます。

ステップ1:Claude APIキーを取得する

  1. console.anthropic.comにアクセス
  2. サインイン、またはアカウントを作成
  3. SettingsAPI Keys を開く
  4. Create Key をクリック
  5. キー名を設定してコピー

APIキーはコードに直書きせず、環境変数に保存します。

export ANTHROPIC_API_KEY="sk-ant-..."
Enter fullscreen mode Exit fullscreen mode

新規アカウントには、課金設定前にテスト用のトライアルクレジットが付与されます。このキーで claude-opus-4-8 を呼び出せます。

ステップ2:SDKをインストールする

Anthropicは、Python、TypeScript、Go、Java、C#、Ruby、PHP向けの公式SDKを提供しています。ここではPythonとNode.jsの例を使います。

# Python
pip install anthropic

# Node.js / TypeScript
npm install @anthropic-ai/sdk
Enter fullscreen mode Exit fullscreen mode

SDKを使わずにREST APIを直接呼び出すこともできます。型定義や実装の詳細を確認したい場合は、Python SDKのソースが参考になります。

ステップ3:最初のOpus 4.8リクエストを送る

Python

import anthropic

client = anthropic.Anthropic()  # ANTHROPIC_API_KEYを読み取る

message = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Explain the OAuth 2.0 PKCE flow in 3 short paragraphs."
        }
    ],
)

print(message.content[0].text)
Enter fullscreen mode Exit fullscreen mode

Node.js

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

const client = new Anthropic();

const message = await client.messages.create({
  model: "claude-opus-4-8",
  max_tokens: 4096,
  messages: [
    {
      role: "user",
      content: "Explain the OAuth 2.0 PKCE flow in 3 short paragraphs.",
    },
  ],
});

console.log(message.content[0].text);
Enter fullscreen mode Exit fullscreen mode

curl

curl https://api.anthropic.com/v1/messages \
  --header "x-api-key: $ANTHROPIC_API_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --header "content-type: application/json" \
  --data '{
    "model": "claude-opus-4-8",
    "max_tokens": 4096,
    "messages": [
      {
        "role": "user",
        "content": "Explain the OAuth 2.0 PKCE flow in 3 short paragraphs."
      }
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

まずはこの最小構成で疎通を確認します。以降で、effort、適応思考、ストリーミング、ツール利用を追加します。

effort 制御を設定する

Opus 4.8で重要なのが effort パラメータです。これは、モデルが応答全体にどれだけの計算リソースを使うかを指定します。

effortoutput_config 内に設定します。

指定できる値は次の5つです。

  • low
  • medium
  • high
  • xhigh
  • max

デフォルトは high です。

Python

message = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=8192,
    messages=[
        {
            "role": "user",
            "content": "Refactor this 600-line module for testability."
        }
    ],
    output_config={"effort": "xhigh"},
)
Enter fullscreen mode Exit fullscreen mode

Node.js

const message = await client.messages.create({
  model: "claude-opus-4-8",
  max_tokens: 8192,
  messages: [
    {
      role: "user",
      content: "Refactor this 600-line module for testability.",
    },
  ],
  output_config: { effort: "xhigh" },
});
Enter fullscreen mode Exit fullscreen mode

エフォートに関するAnthropicのドキュメントに基づく使い分けは次のとおりです。

レベル 用途
low 分類、クイック検索、大量処理ジョブ、サブエージェント
medium コスト重視のバランス型エージェント処理
high デフォルト。速度より品質を優先する複雑な推論
xhigh コーディング、長時間のエージェントタスク。推奨開始点
max 余力を確認済みの最先端タスク

実装時の目安は次の2つです。

  1. コーディングやエージェントループでは xhigh から始める
  2. xhigh または max を使う場合は、max_tokens を大きめに設定する

特にエージェント処理では、モデルが思考し、ツール呼び出しを組み立てる余地が必要です。64K程度を開始点にすると調整しやすくなります。

適応思考を有効にする

Opus 4.8は適応思考を使用できます。

thinking: {type: "adaptive"} を指定すると、モデルがいつ、どの程度推論するかを判断します。指定しない場合、リクエストは思考なしで実行されます。

message = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    output_config={"effort": "xhigh"},
    messages=[
        {
            "role": "user",
            "content": "Find the race condition in this scheduler."
        }
    ],
)

for block in message.content:
    if block.type == "thinking":
        print("[thinking]", block.thinking[:200])
    elif block.type == "text":
        print(block.text)
Enter fullscreen mode Exit fullscreen mode

移行時の注意点として、budget_tokens を使った手動の拡張思考はOpus 4.8ではサポートされていません。指定すると400エラーになります。

Opus 4.5以前の実装から移行する場合は、次のように変更します。

# 削除する
# thinking={"type": "enabled", "budget_tokens": 10000}

# 代わりに使う
thinking={"type": "adaptive"}
output_config={"effort": "xhigh"}
Enter fullscreen mode Exit fullscreen mode

ストリーミング応答を使う

UIでの体感速度を上げたい場合は、ストリーミングを使います。

Python

with client.messages.stream(
    model="claude-opus-4-8",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Write a 5-step guide to writing a REST client in Go."
        }
    ],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
Enter fullscreen mode Exit fullscreen mode

Node.js

const stream = client.messages.stream({
  model: "claude-opus-4-8",
  max_tokens: 4096,
  messages: [
    {
      role: "user",
      content: "Write a 5-step guide to writing a REST client in Go.",
    },
  ],
});

for await (const event of stream) {
  if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
    process.stdout.write(event.delta.text);
  }
}
Enter fullscreen mode Exit fullscreen mode

REST APIを直接使う場合は、リクエストボディに "stream": true を追加し、Server-Sent Eventsを読み取ります。

{
  "model": "claude-opus-4-8",
  "max_tokens": 4096,
  "stream": true,
  "messages": [
    {
      "role": "user",
      "content": "Write a 5-step guide to writing a REST client in Go."
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

ツール利用と関数呼び出しを実装する

Opus 4.8では、input_schema を持つツールを定義して関数呼び出しを行えます。effort レベルは、ツール呼び出しの計画や呼び出し回数にも影響します。

tools = [
    {
        "name": "get_weather",
        "description": "Get the current weather for a city.",
        "input_schema": {
            "type": "object",
            "properties": {
                "city": {
                    "type": "string",
                    "description": "City name"
                },
                "unit": {
                    "type": "string",
                    "enum": ["celsius", "fahrenheit"]
                },
            },
            "required": ["city"],
        },
    }
]

message = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1024,
    tools=tools,
    messages=[
        {
            "role": "user",
            "content": "What's the weather in Singapore right now?"
        }
    ],
)

for block in message.content:
    if block.type == "tool_use":
        print(f"Call: {block.name}")
        print(f"Args: {block.input}")
Enter fullscreen mode Exit fullscreen mode

実際のアプリケーションでは、次の流れになります。

  1. Claudeが tool_use ブロックを返す
  2. アプリケーション側で対応する関数を実行する
  3. 実行結果を tool_result としてMessages APIに戻す
  4. Claudeに最終回答を生成させる

低い effort では、Claudeは操作を少ない呼び出しにまとめやすくなります。高い effort では、まず計画を立ててからツールを呼び出す傾向があります。

マルチエージェント構成を設計している場合は、マネージドエージェント vs Agent SDKも参考になります。

会話途中のシステムメッセージを使う

Opus 4.8ではMessages APIに変更があり、messages 配列の途中にシステムエントリーを配置できます。従来のように先頭だけに限定されません。

これにより、タスクの途中で新しい指示や権限を挿入できます。Claude Codeのダイナミックワークフローでもこの仕組みが使われます。

サブエージェントをAPI経由でオーケストレーションする場合は、ダイナミックワークフローの詳細解説を参照してください。

ApidogでOpus 4.8インテグレーションをテストする

SDKから1回呼び出せることと、本番環境で安定して動くことは別です。

本番インテグレーションでは、次のような点を検証する必要があります。

  • ストリーミングチャンクの扱い
  • ツール呼び出しのスキーマ検証
  • output_config の形式
  • effort 変更時の出力差分
  • 適応思考ブロックの有無
  • エラー時のレスポンス形式

Apidogを使うと、Messages APIのテストを1つのワークスペースで管理できます。

主な使い方は次のとおりです。

  • エンドポイントをリクエストとして保存

    https://api.anthropic.com/v1/messages を登録し、x-api-keyanthropic-version ヘッダーを設定する

  • モデルバージョンを比較

    同じリクエストで claude-opus-4-7claude-opus-4-8 に差し替え、出力を比較する

  • ストリーミング応答を確認

    ストリームされたチャンクを到着順に確認し、途中で壊れるレスポンスを検出する

  • レスポンス形式を検証

    effortthinking を切り替えたときの差分に対してアサーションを追加する

  • エンドポイントをモック化

    Messages APIのモック応答を作成し、クレジットを消費せずに下流コードをテストする

  • エージェントループを検証

    ツール呼び出しと tool_result の連鎖をシナリオとして保存する

開始するには、Apidogをダウンロードし、Messagesエンドポイント用のリクエストを作成して、先ほどのcurlスニペットをインポートします。

複数のAIプロバイダーを扱っている場合も、同じテストフローをGemini 3.5 APIQwen 3.7 APIに適用できます。

エラー処理とレート制限

Claude APIの主なエラーは次のとおりです。

ステータス エラー 対応
400 invalid_request_error リクエストボディを確認。Opus 4.8では budget_tokens や不正な effort 値に注意
401 authentication_error APIキーの欠落または誤りを確認
403 permission_error キーがモデルにアクセスできるか確認
429 rate_limit_error バックオフして再試行
500 api_error サーバー側エラー。バックオフして再試行
529 overloaded_error APIの一時的な過負荷。バックオフして再試行

Pythonでは、最低限のリトライ処理を次のように実装できます。

import time
import anthropic

client = anthropic.Anthropic()

def call_with_retry(prompt, max_retries=4):
    for attempt in range(max_retries):
        try:
            return client.messages.create(
                model="claude-opus-4-8",
                max_tokens=4096,
                messages=[
                    {
                        "role": "user",
                        "content": prompt
                    }
                ],
            )
        except anthropic.RateLimitError:
            if attempt == max_retries - 1:
                raise

            time.sleep(2 ** attempt)
Enter fullscreen mode Exit fullscreen mode

レート制限は使用ティアに応じて変わります。リアルタイム性が不要な高スループットのバッチ処理では、Batch APIの利用も検討できます。ベータヘッダーにより最大30万の出力トークンも利用できます。

Opus 4.7から4.8へ移行する

多くのプロジェクトでは、変更はモデルIDの差し替えだけです。

# Before
model="claude-opus-4-7"

# After
model="claude-opus-4-8"
Enter fullscreen mode Exit fullscreen mode

差し替え後は、次の項目を確認してください。

  1. effort レベル

    動作範囲は4.7と同じですが、使用するレベルごとに評価を再実行する

  2. 思考設定

    budget_tokens を使っている場合は削除する。Opus 4.8では400エラーになる

  3. ツールスキーマ

    基本的に引き継げるが、ツール利用の評価は再実行する

  4. コスト

    4.7とトークン単価は同じなので、モデル差し替えだけで予期しない単価変更は発生しない

FAQ

Claude Opus 4.8 APIのモデルIDは何ですか?

Claude APIとVertex AIでは claude-opus-4-8、AWS Bedrockでは anthropic.claude-opus-4-8 です。

Opus 4.8 APIに無料枠はありますか?

常設の無料API枠はありません。ただし、新規アカウントにはトライアルクレジットが付与されます。その他の低コストな利用方法は、無料アクセスガイドを参照してください。

effort レベルはどのように設定しますか?

リクエストに output_config を追加します。

{
  "output_config": {
    "effort": "xhigh"
  }
}
Enter fullscreen mode Exit fullscreen mode

指定できる値は lowmediumhighxhighmax です。デフォルトは high です。

budget_tokens に関する400エラーが返るのはなぜですか?

Opus 4.8は手動の拡張思考をサポートしていません。budget_tokens を削除し、代わりに次の設定を使います。

thinking={"type": "adaptive"}
output_config={"effort": "xhigh"}
Enter fullscreen mode Exit fullscreen mode

Opus 4.8はOpenAI互換SDKで動作しますか?

AnthropicはOpenAI SDK用の互換レイヤーを提供しています。ベースURLをAnthropicのエンドポイントに向け、AnthropicのAPIキーを使用し、モデル文字列は claude-opus-4-8 を指定します。

エージェント作業では max_tokens をどれくらいにすべきですか?

xhigh または maxeffort を使う場合は、64Kから始めるのが実用的です。モデルが思考し、ツール呼び出しを連鎖させるための余地を確保できます。実際の使用量を見て調整してください。

Apidogでストリーミング応答をテストするには?

リクエストボディでストリーミングを有効にします。ApidogはServer-Sent Eventsのチャンクを到着順に表示するため、不完全な応答や途中で途切れるレスポンスを確認しやすくなります。

Top comments (0)