Claude API は、ただ文章を返すだけではなく、応答を少しずつ流す(ストリーミング)・外部処理を呼び出す(Tool Use)・決まった形のJSONで返す(構造化出力)・共通の前置きを使い回す(プロンプトキャッシュ)・大量処理をまとめて流す(Batch)といった、実運用で効く機能を備えています。チャット画面で試したプロンプトをそのままAPI化するより、速度・コスト・再現性を設計して組み込むのがコツです。
本記事は Python のコード例を中心に、各機能を「どう組み込むと実際に使いやすいか」を図とともに整理します。なお、モデル名・料金・SDKの細部は更新が速いので、導入時は必ず公式ドキュメント(platform.claude.com)で最新を確認してください。本記事の具体値は 2026年前半時点のものです。
FIG.1 チャットUIの先にある、実運用向けの5機能
まず押さえたいのは、これらは用途で使い分けるもので、最初から全部入れる必要はないという点です。記事末で段階導入の順番も示します。
01まずモデルを選ぶ(名前は変わる前提で)
2026年前半時点の主なラインナップは、最上位の Claude Opus、バランス型の Claude Sonnet、高速・低コストの Claude Haiku の3系統です。世代番号(例:Sonnet 4.6、Haiku 4.5)は短い周期で更新されるため、コード中のモデルIDは定数として1か所にまとめ、差し替えやすくしておくのが実務的です。
Haiku
分類・抽出・大量処理など、速度とコストを重視する定型タスク向き。
Sonnet
コーディング支援やエージェントなど、日常の主力。性能とコストのバランス型。
Opus
難度の高い推論・設計・調査など、最大の知能が要る場面に絞って使う。
正確なモデルID・対応機能・価格は更新されます。使う前に公式の Models / Pricing ページを確認してください。本記事の例では、説明用に claude-sonnet-4-5 等のIDを示しますが、利用時点の最新IDに置き換えてください。
02ストリーミング:まず「待たせない体験」を作る
長めの回答や要約では、全文の完成を待つよりサーバー送信イベント(SSE)で逐次表示したほうが体感速度が上がります。チャット、レビュー支援、議事録生成などで特に有効です。Anthropic SDK では messages.stream を使い、テキストの断片を順に受け取ります。
from anthropic import Anthropic
client = Anthropic(api_key="YOUR_API_KEY")
with client.messages.stream(
model="claude-sonnet-4-5", # 利用時点の最新モデルIDに置換
max_tokens=1200,
temperature=0.2,
messages=[
{"role": "user", "content": "SSEストリーミング実装の要点を3つ教えて"}
],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
final_message = stream.get_final_message()
実装の勘所は、途中の断片をそのまま保存しないこと。逐次出力には言い直しや未完の文が混ざるため、DB保存や監査ログには get_final_message() で得る最終確定テキストを使うほうが安全です。あわせて、テキスト断片だけでなく完了イベント・エラーイベントも扱い、ユーザーのキャンセル操作で接続を閉じられるようにしておきます。
FIG.2 ストリーミングは「見せる」用、業務処理は「確定後」に分ける
向くケース・注意するケース
| 向く | 注意 |
|---|---|
| チャットUI(体感速度が大きく改善) | JSON構造化出力(途中断片は不完全JSONになりやすい) |
| 長文要約(途中から読み始められる) | バッチ集計(逐次表示の利点が薄い) |
構造化出力を厳密に扱う処理では、逐次表示はUI専用、業務処理は最終レスポンス確定後に行う、という分離が実践的です。
03Tool Use:外部処理を「モデル任せにしすぎない」
Tool Use は、Claudeが「どの関数を、どんな引数で呼ぶべきか」を判断して構造化された呼び出し要求を返す仕組みです。実際の処理(社内検索・在庫照会・天気取得・RAG検索・DB問い合わせなど)はあなたのアプリ側が実行し、結果をClaudeに戻します。重要なのは自由実行させることではなく、どのツールを・どの条件で・どこまで許可するかをアプリ側で制御することです。



