CLAUDE LABEN
VERSION — 8月10日に v2.1.227 が出ていました。新機能はなく、プラン判定と CI まわりの不具合修正が中心ですAUTO — 8月14日の既定化まで残り2日です。Pro・Max・Team で Claude Code の auto モードが既定で有効になりますCI — claude-code-action で allowed_non_write_users を指定すると GitHub ホストランナー上の Bash が全て失敗していた問題が直りましたBILLING — 期限切れトークンで開始したセッションが加入プランを取り違え、Max 利用者に使用クレジットの有効化を促していた不具合も解消していますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日で、残り5日ですPRICE — Sonnet 5 のプロモ価格 $2/$10 per Mtok は8月31日までで、9月1日から $3/$15 per Mtok になりますVERSION — 8月10日に v2.1.227 が出ていました。新機能はなく、プラン判定と CI まわりの不具合修正が中心ですAUTO — 8月14日の既定化まで残り2日です。Pro・Max・Team で Claude Code の auto モードが既定で有効になりますCI — claude-code-action で allowed_non_write_users を指定すると GitHub ホストランナー上の Bash が全て失敗していた問題が直りましたBILLING — 期限切れトークンで開始したセッションが加入プランを取り違え、Max 利用者に使用クレジットの有効化を促していた不具合も解消していますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日で、残り5日ですPRICE — Sonnet 5 のプロモ価格 $2/$10 per Mtok は8月31日までで、9月1日から $3/$15 per Mtok になります
記事一覧/API & SDK
API & SDK/2026-06-14上級

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

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

Claude API116headless13コスト管理13ログ設計4Fable 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-07-05
Fable 5 が全世界に戻り、Sonnet 5 が既定になった — 個人運用の自動化スタックで3モデルをどの層に置くか
Fable 5 の全世界提供再開と Sonnet 5 の既定化で、個人運用の自動化に使える上位モデルが一気に3つ揃いました。優劣で選ぶのではなく、タスクの持ち場でモデルを割り当てる方針オブジェクトを、フォールバック梯子と記録つきの実装でまとめます。
API & SDK2026-07-04
Claude apps gateway の発表を読んで、個人開発の管制面を作り直した話
セルフホスト型 Claude apps gateway の設計を管制面と実行面の分離として読み解き、個人開発の規模に縮約します。アプリ別コスト帰属・モデル許可リスト・fail-closed の支出上限を Cloudflare Workers で実装した記録です。
API & SDK2026-07-01
新モデルが増えてもコスト集計をズラさない Claude API 単価レジストリと fail-closed 設計
Opus 4.8 と Haiku 4.5 が Messages API に加わったとき、コード中に散らばった単価がコスト集計を静かに狂わせます。単価を1か所に集約し、未知モデルを fail-closed で弾く実装を、実コード付きで紹介します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →