◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/API & SDK
⬡ API & SDK/2026-06-14上級

応答したモデルを記録する — headless パイプラインでモデル実体とコストを突き合わせる

API 応答が返す model フィールドと usage を毎回記録し、要求モデルと実際に応答したモデルのズレを検出する設計です。6/15 の usage credits 移行に向けたモデル別コスト照合まで実装します。

Claude API127headless13コスト管理14ログ設計5Fable 53

✦ プレミアム記事

先月、私の自動投稿パイプラインの API 請求を見積もりと照合したところ、想定より数百円多い差額が残りました。コール数もトークン数もログと一致しているのに、合計だけが合いません。原因を追ったところ、私が要求していたモデルと「実際に応答したモデル」が一部のリクエストで食い違っていたのです。出力テキストとトークン数は記録していましたが、どのモデルが応答を返したかを残していなかったため、差額の発生箇所を特定するのに半日を要しました。

headless で Claude を回している方なら、似た経験があるかもしれません。model を固定して投げているのだから、返ってくるのも当然その固定モデルだ、と私も思い込んでいました。実際には、応答に含まれる model フィールドこそが「課金の根拠になるモデル」であり、要求した文字列と一致する保証はありません。応答したモデルの実体を毎回記録し、コストと品質の両面で突き合わせる仕組みを、私のパイプラインで実装したコードとともに、ここから順に組み立てます。

月末の請求額が見積もりと合わなかった

私のパイプラインは4サイト分の生成を回しており、1日あたり約480回のリクエストを投げています。月間では約14,000コールです。各コールのプロンプト・出力・入出力トークン数はすべて JSON Lines で残していました。月末に「入力トークン合計 × 単価 + 出力トークン合計 × 単価」で見積もると、請求額とおおむね一致するはずでした。

ところが2026年6月の請求では、見積もりに対して合計が上振れしていました。コール単位で割り戻すと、ごく一部のリクエストだけ、私が想定したモデルより高い単価で課金されているように見えます。私のログには「要求したモデル名」しか入っておらず、「請求された単価が何のモデルのものか」を後から証明できませんでした。これが今回の出発点です。

教訓は単純です。要求したモデルではなく、応答が申告したモデルこそがコストの真実です。そして6月15日からの usage credits 移行で、モデルごとの単価差が請求に直結するようになります。ズレを後から説明できる状態を作っておく価値が、これまで以上に大きくなりました。

API 応答は「実際に応答したモデル」を返している

Messages API の応答ボディには、最初から model フィールドと usage オブジェクトが含まれています。これは要求のエコーバックではなく、サーバ側で「この応答を生成したモデル」を申告したものです。多くの実装は本文だけを取り出して捨ててしまいますが、ここにコスト照合の鍵があります。

import Anthropic from "@anthropic-ai/sdk";
 
const client = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });
 
const res = await client.messages.create({
  model: "claude-fable-5",          // 私が「要求した」モデル
  max_tokens: 4096,
  messages: [{ role: "user", content: "記事の下書きを生成してください" }],
});
 
console.log(res.model);             // ← 実際に応答したモデル(課金の根拠)
console.log(res.usage);             // { input_tokens, output_tokens, ... }
console.log(res.id);                // リクエストごとの一意 ID

res.model が要求した "claude-fable-5" と常に一致するとは限りません。ここがポイントです。一致していれば安心、ずれていれば「なぜずれたのか」を調べる入口になります。res.id はサポート問い合わせや再現調査の際の照合キーになるので、合わせて残します。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦API 応答の model フィールドと usage を毎回永続化し、要求モデルと実際に応答したモデルのズレを検出する実装
✦usage credits 移行後にモデル別単価でコストを突き合わせる照合関数の作り方
✦要求と実体がずれる状況を品質ゲートで早期に捕捉する監視設計
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ API & SDK2026-05-02
Claude API の月額予算を破綻させない設計 — 個人開発者のための実践コスト管理
個人開発で Claude API を組み込んだとき、最初にぶつかるのは月末の請求書です。月額予算を守り抜くための見積もり・モニタリング・上限設定・リトライ設計を、自分のアプリで躓いた箇所と一緒にまとめました。
⬡ API & SDK2026-10-13
Haiku 5.5 は単価が下がるのに、4.5 換算で約 7.7 万トークンを超えると請求が跳ねます
Haiku 4.5 から 5.5 へ移すと、価格表だけ見れば約 1/10 です。ただし同じ文章が約 30% 多いトークンになり、入力が 10 万を超えた時点で単価が 5 倍になります。境目を 4.5 換算で計算し、実際に動かした出力と、移行時に直す 400 の項目を並べました。
⬡ API & SDK2026-10-08
Sonnet 4.5 の退役前に、コードに残った「400 になる引数」を一本のスクリプトで拾いました
claude-sonnet-4-5 は 11 月 30 日に退役します。モデル ID を書き換えるだけでは、budget_tokens・prefill・tool_choice などで 400 が返ります。公式の移行ガイドの該当箇所を正規表現にしたスキャナと、実行結果、直し方の順番をまとめました。