AIエージェントの請求が暴走する前に|ハード予算上限の設定と、各社の「止まり方」の違い
エージェントを動かしたまま席を離れるとき、請求のことが頭をよぎらないだろうか。仕事でAPIを使っていたとき、個人で払っていたら絶望的な金額になる請求を経験した。それ以来、請求は通知ではなく、止まる仕組みで守るようにしている。
- 通知だけの予算と、止まる上限(ハードキャップ)の違い
- 4社の上限が、止まるまでの早さ・エラーの出方・止まらないものでどう違うか
- 上限を設定したつもりで見落としやすいポイントと、定額プランという選択肢
通知だけの予算では、請求は止まらない
放置で動かすエージェントは、止まる上限か、定額の枠のどちらかの下で動かしたほうがいい。予算超過をメールで知らせるだけの設定は、請求が増えていることを教えてくれるが、増えること自体は止めてくれない。
Simon Willisonは2026年10月3日の記事で、同じ問題を取り上げている。コーディングエージェントや個人用エージェントのおかげでサービスを立ち上げる手間が減るほど、課金される資源を誤って走らせたまま放置するリスクも上がる。だから従量課金のサービスは、警告メールではなく、停止するハードキャップをデフォルトにすべきだ、という主張だ(原文)。上限を外すときだけ、利用者が責任を負うと明示的に選ぶ形が望ましいとも書いている。
Google Cloudは2026年7月にSpend Caps、AWSは9月に月次のspend limitを発表し、OpenAIのAPIにも組織とプロジェクト単位のハードリミットがある。上限機能は出そろいつつあるが、止まり方は各社でかなり違う。
エージェントの請求は、人が使うときより読みにくい
人がチャットで使うなら、手が止まれば消費も止まる。エージェントは違う。ひとつの失敗に対して自分で再試行し、ツールを呼び、ときには並列に動く。人が気づく前に、呼び出しの回数が自分で増えていく。
人間が使うときは「人の手」が消費の上限になる。放置型のエージェントでは、その歯止めがなくなる。上限は、サービス側か、自分の側に作るしかない。

通知だけの設定は、グラフの赤い線のまま伸び続ける。ハードキャップは、上限額のところで水平になる。定額プランは、そもそも月額が固定されている。この3つは、暴走したあとの請求の形が違う。
各社の上限は「止まり方」が違う
上限機能がある、というだけでは安心できない。確認したいのは、何を単位に、どのくらいの早さで、どのように止まるかだ。公式ドキュメントで確認できた範囲をまとめた。
| サービス | 上限の単位 | 到達したとき |
|---|---|---|
| Anthropic API | 組織の月次上限(Start $500、Build $1,000、Scale $200,000)、自分で下げた上限、ワークスペース単位 | ティア上限は翌月1日0時(UTC)まで停止(HTTP 429、retry-afterなし)。自分で設定した上限はHTTP 400で、上限を上げれば復旧 |
| OpenAI API | 組織とプロジェクトのハードリミット | HTTP 429(project_spend_limit_exceededなど)。反映までの間に少量の追加利用が処理され、設定額をわずかに超えうる |
| Google Cloud Spend Caps | プロジェクト×サービスの月次(Public Preview) | 数分以内に新規の課金利用が止まる。データは削除されない |
| AWS spend limit | プロジェクトの月次(下限は$20か利用予測の大きいほう) | プロジェクト全体が一時停止。データは保持される |
出典は、それぞれAnthropic、OpenAI、Google Cloud、AWSの公式ドキュメントである(2026年10月7日に確認)。
AWSのspend limitは、公式が「実験・学習・サンドボックス向け」と位置づけている。本番に使うなら、短時間の停止が許容できる場合に限られる。
設定したつもりで、止まらない落とし穴
上限を入れたあとでも、止まらない、あるいは止まって初めて困る点がある。
- OpenAIで予算(Budget)だけ設定すると、超えても処理は続き、通知が来るだけになる。止めるには、上限の設定画面で「Enforce a hard limit」をオンにする必要がある
- Anthropicでは、止まったときのエラーが上限の種類で違う。ティア上限は429でretry-afterがなく、SDKの自動リトライは復旧まで失敗し続ける。自分で設定した上限は400になる
- Google Cloudのspend capは、固定コミット料金を止めない。コミットを組んでいるなら、上限を入れても月の下限は残る
- AWSのspend limitは、自分のアカウントでまだ使えない可能性がある。使えても、止まったプロジェクトを90日放置するとデータが消える
- 定額プランに切り替えたつもりでも、環境変数に
ANTHROPIC_API_KEYが残っていると、Claude Codeはサブスクではなく、そのAPIキーで認証する。結果としてAPIの従量課金が走る(公式ヘルプの記載)
Anthropicの400と429の違いは、エージェントの作りに直結する。429なら待てば直る、と考えて再試行するコードは、この上限に当たると復旧しない呼び出しを繰り返し続ける。止まったことを検知して通知する仕組みが、必要になる。
自作の停止と通知から、定額プランへ
仕事でAPIの従量課金を使っていて、個人で払っていたら絶望的になる金額の請求を経験しました。仕事だったから済んだ、というのが正直なところです。
そのあと、個人で立てたサーバーを経由させる形で、アラートと停止を自動化する仕組みを作った。止まったら、通知が届く。通知を読んでから人が止めるのではなく、停止が先にあって、通知はそのあとに来る。
ひとつ白状すると、エージェント側には、暴走を防ぐ仕組みを入れていない。やったのは、スキルを作り込んだことくらいだ。止める役目は、エージェントの外側にあるサーバーに任せている。
いまは、API従量をやめて定額プランで動かしている。この選択は、上限機能とは考え方が違う。上限は「超えたら止める」仕組みだが、定額は月額が先に決まっている。公式ヘルプでは、枠を使い切ったときの選択肢として、上位プランへの変更、usage credits(追加利用)の有効化、API課金への切り替え、リセット待ちが挙げられている。追加利用は自分で有効にする操作として書かれているので、有効にしなければ、月額を超えて請求が増える道は開かない。
上限を「設定する」ことと、請求を構造的に頭打ちにすることは別の話。放置で動かすなら、後者のほうが事故の余地が小さい。


個人の最小構成は、どう選ぶか


- 定額プランで足りるなら、定額で動かす。環境変数に
ANTHROPIC_API_KEYが残っていないか、最初に確認する。 - APIが必要なら、プロジェクト別にハードキャップを入れる。OpenAIは「Enforce a hard limit」をオンにする。Anthropicは、自分で下げた上限を設定する(default workspaceには設定できない)。
- クラウドを使うなら、上限機能が自分のアカウントで使えるかを確認する。AWSは限定展開で、Google CloudのSpend CapsはPublic Previewである。
- 止まったときの合図を決めておく。Anthropicなら429と400の両方を「予算停止」として扱い、通知先を決める。止まったことに気づけないと、復旧の操作が遅れる。
よくある質問
まとめ
- 通知だけの予算は、請求の増加を知らせるだけで止めない。放置で動かすなら、ハードキャップか定額の枠が要る
- 4社の上限は、単位・反映の早さ・エラーの出方・止まらないものがそれぞれ違う。Anthropicは400と429、OpenAIはEnforceのオン、Google CloudはCUD、AWSは限定展開と90日削除に注意する
- 定額プランは、上限を設定する代わりに請求を構造的に頭打ちにする。APIキーの環境変数が残っていないかだけは確認する
この記事が役に立てば嬉しいです。よかったら他の記事も見てみてくださいね。
関連記事















コメント