Blackbox Blast
BB Preflight
← 事故ログへ

CASE · 軽微 · financial-loss

検証済み運営者の一次記録

「定額の枠で回す」はずの一括処理が、自動チャージで10回課金していた

Claude Codeで台帳1,500件超の一括処理と、サブエージェントを最大4体同時に動かす調べものを回した数日間に、Claude Proの「使用クレジット」が自動チャージで10回購入され、月額の5倍を超える約115ドルの追加課金になった。気づいたのは、利用者がカードの明細を見たときだった。

約5分で読めます

発生日
分類
financial-loss
影響範囲
financial
検知
billing-statement
タグ
#claude-code #extra-usage #auto-reload #subagents #claude-p #budget-guard

CH 1

原因

Proの設定で使用クレジット(枠を超えた後も使い続けられる追加利用)と自動チャージがオンだった。スクリプトのコメントには「APIの予算ではなく、Claude Codeの利用枠を使う」と書かれ、エージェント自身も定額の範囲で済むと考えていた。自前の予算の見張りはAPIの呼び出ししか数えておらず、サブスクの追加利用は見ていなかった。さらに、Claudeの使用クレジットとAPIのクレジットは別々の画面(claude.aiとAnthropic Console)で管理され、どちらも約11ドルずつ自動チャージされ、カードの明細では同じ会社名で並ぶ。原因を切り分けるには2つの画面を突き合わせる必要があり、それが分かりにくかった。

CH 2

結果

11月の追加課金は10回で約115ドル。APIのほうは1回・約11ドルで、自前の見張りの記録とも合っていた。月間の支出上限(50ドル)は実際に作業を止めていたが、止まるたびに利用者が上限を上げて続け、後で50ドルに戻したため、画面には「50ドル中138.33ドルを使用」と出ていた。

CH 3

対策

一括処理と並行のサブエージェントは、回す前に件数から費用を見積もり、人の承認を取ってから回す。サブエージェントは1体ずつにし、機械的な作業は小さいモデルで回す。予算の見張りに、サブスクの追加利用と自動チャージの請求も入れる。使用クレジットそのものを切るかは、利用者が判断中。

LOG経過

  1. 発生

    記録上の発生日(date_observed)

  2. 検知

    発生から2日後 · 検知の経路: billing-statement

記録された日付(date_observed・date_detected・date_resolved)だけで構成しています。

何が起きたか

事業の種を集めて採点する仕組みを作っている途中だった。AIコーディングエージェント (Claude Code)は、集めた1,500件あまりの声を言い換え、束ね、関門に掛ける処理を、 claude -p を数十回呼ぶ一括処理として回した。同じ日に、資料集めのサブエージェントも 最大4体を同時に動かしていた。

APIで動く部分には、自前の予算の見張りを付けてあった。上限の9割で止まり、 7割で知らせる。その記録では、その月のAPIの使用額は約9ドルで、上限の内側だった。

数日後、利用者がカードの明細を見て気づいた。同じ会社名の請求が11件並び、 1日だけで8件あった。

現場の混乱

最初は、どこの請求なのかが分からなかった。APIの見張りの記録とは桁が違う。 エージェントはメールの領収書を探したが件数しか取れず、ログインの設定を読む操作は 権限の仕組みに止められた。結局、利用者に2つの画面(Claudeの使用量・請求と、 APIのConsoleの請求)を開いてもらって、ようやく照合できた。

カードの11件は、Claudeの使用クレジットの請求10件と、APIの請求1件にきれいに分かれた。 APIは予算どおりで、はみ出していたのは全部、定額プランの枠の外で使ったClaude Codeの分だった。 その週の使用のうち97%がClaude Codeだった。

原因

一括処理のスクリプトには「APIの予算ではなく、Claude Codeの利用枠を使う」と書いてあった。 書いた側(エージェント)は、定額の枠の中で済む、枠に当たれば止まるだけだと考えていた。

実際には、Proの設定で使用クレジットと自動チャージがオンになっていた。枠を超えると クレジットが消費され、残高が5ドルを下回るたびに15ドルまで自動で補充される。 並行で動くサブエージェントと一括処理は、その補充を1日に何度も呼んだ。 「枠を使う」は、この設定では「枠を超えたら従量で払う」と同じ意味だった。

見張りの側にも穴があった。自前の予算の関所はAPIの呼び出しの記録だけを数えていて、 サブスクの追加利用はどこにも数えられていなかった。

月間の支出上限(50ドル)は、実は働いていた。11月4日・6日・7日には 「You've hit your monthly spend limit · raise it at …」という1行で作業が止まっている。 ところが、止まった作業を早く進めたくて、利用者はそのたびに上限を上げて続け、 後で50ドルに戻した。画面の「50ドル中138.33ドルを使用」はその跡で、 上限の仕組みの不具合ではなかった。止まった瞬間に「上げて続ける」を選ぶと、 その場で予算を超える。上限は、上げる前に立ち止まる場所として使うべきだった。

切り分けの難しさも原因の一つだった。お金を払う仕組みが2つあり、見る画面も別々だ。

  • claude.ai(定額のProと、枠を超えた後の使用クレジット):自動チャージは残高5ドルで15ドルまで。
  • Anthropic Console(APIのクレジット):こちらも自動チャージは残高5ドルで15ドルまで。

どちらも1回あたり約11ドルで、カードの明細にはどちらも同じ会社名で、金額の近い行が並ぶ。 明細だけでは、どれがどちらの請求か区別できない。しかもConsoleの請求の画面には 「クレジットはAPI、Claude Code、Playgroundで使用されます」と書かれている。 ここでいうClaude CodeはAPIの鍵で使う場合のことで、定額プランで使うClaude Codeの 追加利用はConsoleには出てこない。Consoleだけを見て「Claude Codeの分もここにある」と 読むと、原因を取り違える。結局、claude.aiとConsoleの両方の請求の画面を開き、 カードの明細の件数と1件ずつ突き合わせて、はじめて内訳が確定した。

対策

  • 一括処理と並行のサブエージェントは、回す前に件数から費用を見積もり、人の承認を取ってから回す。
  • サブエージェントは1体ずつにし、機械的な作業は小さいモデルで回す。
  • 予算の見張りに、APIだけでなく、サブスクの追加利用と自動チャージの請求も入れる。
  • 毎月の点検では、claude.aiとConsoleの両方の請求の画面を見て、カードの明細と件数を突き合わせる。
  • 月間の支出上限で止まったら、上げる前に、続ける作業の費用をエージェントが見積もり、今やるべきかを人が決める。
  • 一括処理の関所は、上限の1行(session limit・weekly limit・monthly spend limit など)を見て止める。終了コードは当てにしない。
  • 使用クレジットそのものを切るか、上限を下げて残すかは、利用者が判断中。

出典

  • 運営者自身が起こした事故の一次記録です。外部に公開された元記事はありません。
PREFLIGHTあなたの Mac の備えは、大丈夫?BB Preflight は、AIエージェントの権限や鍵の置き場所など21項目を、読み取りだけで点検する無料の Mac 用ツールです。点検してみる →