APIの主要機能

《 Claude完全ガイド 目次へ 》

10秒でいうと

APIで押さえるべきはツール使用と構造化出力の2つです。
前者は道具を持たせる仕組み、後者は返答の形を保証する仕組みです。

ツール使用

Claudeは道具を呼びたいと言うだけ。実行するのはこちら
図1:Claudeは道具を呼びたいと言うだけ。実行するのはこちら

第3章のNo.20で概念を扱いました。APIでの形はこうです。

  1. リクエストの tools に、道具の名前・説明・引数の形式を書いて渡す
  2. Claudeが tool_use のブロックを返す。「この道具を、この引数で」
  3. こちらのコードが実行する
  4. 結果を tool_result として送り返す
  5. Claudeがそれを見て答える、あるいはまた道具を呼ぶ

3番目が自分の責任範囲です。Claudeは実行しません。

道具には2種類あります。クライアント側のツール(自分のコードで実行するもの)と、サーバー側のツール(Anthropic側で実行されるもの。Web検索、Webページ取得、コード実行など)。後者は結果がそのまま返ってくるので、実行のコードが要りません。

この往復を自分で書くのが面倒なら、Tool Runnerという仕組みがSDKにあり、実行と送り返しを自動でやってくれます。

構造化出力

返答が必ず指定したJSONの形になる仕組みです。これが実務では効きます。

「JSONで返して」とプロンプトで頼む方法は、たいてい動きますが、たまに崩れます。前置きの文が付く、末尾にコードブロックの記号が残る、フィールドが抜ける。1万件処理すると、必ず何件か壊れます。

構造化出力を使うと、そこが保証されます。

from pydantic import BaseModel

class Quote(BaseModel):
    company: str
    item: str
    unit_price: int
    due_date: str

response = client.messages.parse(
    model="claude-opus-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "この見積書から抜き出してください..."}],
    output_format=Quote,
)
print(response.parsed_output)

パースのエラー処理も、再試行も要りません。見積書の仕事をAPIで組むなら、ここが中心になります。

TypeScriptならZodで同じことができます。

似た機能に「厳密なツール使用」があります。こちらは道具の引数のほうを保証します。使い分けは単純です。

何を保証するか
構造化出力 最終的な返答の形
厳密なツール使用 道具に渡す引数の形

両方を同時に使えます。

スキーマには制限があります。再帰的な構造、数値の範囲指定(minimum など)、文字列の長さ指定は使えません。オブジェクトには additionalProperties: false が必須です。

もう1つ、実務で効く注意。新しいスキーマの初回はコンパイルの時間がかかります。結果は24時間キャッシュされるので、同じスキーマを使い回す設計にしてください。

そのほか

思考の深さ。込み入った推論では既定で深く考えます。思考のトークンは出力として課金されるので、単純な処理では下げられます(No.53)。

Web検索。サーバー側のツールです。第2章のNo.18で書いたとおり出典が付きます。1,000回あたり10ドルが、トークン代とは別にかかります。

Webページの取得。こちらは追加料金なしで、取得した内容のトークン代だけです。

ファイル。画像やPDFを繰り返し使う場合、Files APIにアップロードしてfile_idで参照できます。毎回の送信量が減ります。第2章のNo.17で書いた画像の制限は、APIでも同じです。

やってみよう:構造化出力で見積書を処理する(5分)

手元のPDFか画像を1枚用意してください。

プロンプト
“`
Claude APIを使って、添付した書類から次を抜き出すPythonスクリプトを
書いてください。

・日付、相手先、金額
・構造化出力(output_format)を使って、形を保証すること
・読み取れない項目は空文字ではなく null にすること
・スキーマは使い回せるよう、別の変数に切り出すこと

実行はまだしないでください。コードだけ見せてください。
“`

期待される結果:スキーマが定義され、messages.parse が使われている。読み取れない場合の扱いが型に反映されている。

うまくいかないとき:プロンプトで「JSONで返して」と頼む形になっていたら、それはこのページで避けたい書き方です。output_format を使うようにと足してください。

つまずきポイント

JSONをプロンプトで頼む。動きますが、量が増えると壊れます。構造化出力を使ってください。

スキーマを毎回変える。コンパイルのやり直しとキャッシュの無効化が起きます。使い回す形に。

ツールの実行を忘れる。tool_use が返ってきたら、こちらが実行して送り返すまで完結しません。

サーバー側ツールの追加料金を見落とす。Web検索には別料金があります。

まとめ

  • ツール使用は往復。実行するのはこちらのコード
  • 構造化出力で返答の形が保証される。量が増えるほど効く
  • スキーマは使い回す。初回はコンパイルの時間がかかる
  • Web検索にはトークンとは別の料金がある

次に読む

APIのコスト最適化

→ ガイドの目次に戻る

※本記事の情報は 2026年8月時点のものです。

タイトルとURLをコピーしました