夜中のAI暴走を止める|小さな事業のためのお財布設計・1日2,700円で自動停止

朝起きてスマホを開いたら、クラウドの請求画面に6万円と表示されていた。そんな話を、ここ半年で何度も聞いた。本人はたいてい青ざめた顔で、昨日の夜までは普通に動いていたのに、と繰り返す。原因は決まっている。AI(人工知能)に自動でタスクを任せる仕組みを組んで、その仕組みが夜中に暴走したのだ。ループに入って、同じ処理を何百回も叩き続けた。朝になって人間が気づくまで、誰も止められなかった。

この話を聞くたびに思う。これは不運ではなく、設計の問題だ。お財布の設計さえ最初にしておけば、夜中にどれだけ暴走しても、朝の請求は数千円で止まっている。この記事では、ひとりで小さな事業を回している人が、安心してAIに夜間作業を任せるための、お財布まわりの設計を書いていく。結論から言うと、1日2,700円で自動停止する仕組みさえ作れば、もう夜中の請求を恐れなくていい。

この記事の前提

この記事は、自分の事業にClaude Codeや各種AIのAPI(外部サービスと繋ぐ窓口)を組み込み始めた個人事業主に向けて書いている。法人の情シス部門ではなく、ひとりで経理もサポートも開発もやっている立場の人だ。

読者像はこうだ。日々のルーチン作業をAIに任せ始めて便利さに感動した一方、月末の請求書を見るのが少し怖くなってきた。従量課金(使った分だけ払う方式)というのは理屈ではわかるけれど、上限が見えない仕組みに夜を任せて寝るのは正直こわい。だから夜は仕組みを止めて、朝また自分で起動し直している。これでは自動化の意味が半減する。

この記事のスタンスは単純だ。コストは精神論ではなく、設計で押さえ込む。気をつけます、注意します、では足りない。物理的に止まる仕組みを先に入れる。その前提ができてはじめて、夜に安心して寝られる。

なぜAIのコストは夜中に爆発するのか

夜間暴走が起きる3つの条件

図: 夜間暴走が起きる3つの条件

話を始める前に、どうして夜中に爆発が起きるのかを整理したい。原因を知らずに対策だけ打っても、別の穴から漏れるだけだからだ。

AIを事業に組み込むとき、多くの人は次のような仕組みを作る。決まった時刻に自動で動くプログラムを仕掛け、新着のメールや問い合わせや注文を読み込ませ、AIに判断させ、結果を保存する。いわゆる夜間バッチ(夜中にまとめて処理する仕掛け)だ。

この仕組みが正常なうちは、1回の処理で数円から数十円しかかからない。問題は、プログラムに小さなバグが混じったときだ。例えば、処理が終わった印をつけ忘れるバグがあると、同じ1件を何度も何度もAIに読ませることになる。人間なら10回目で変だと気づくが、プログラムは朝まで素直にループし続ける。

もう一つの典型は、AIが自分でAIを呼ぶ仕掛けだ。AIに調べ物をさせて、足りなければ追加で調べさせて、と連鎖させていく設計。便利なのだが、終了条件の書き方が甘いと、AIは一晩中調べ物を続ける。1回の問いかけで100円だとしても、600回繰り返せば6万円だ。計算は合っている。

つまり、爆発は悪意でも事故でもなく、ループ×従量課金×無人という3つが揃った結果だ。この3つのうち、無人の時間帯をなくすことはできない。ループを100パーセント防ぐこともできない。だから残る手段は一つしかない。従量課金に上限をつけて、物理的に止めることだ。

コスト上限の決め方・先に決めるのは月ではなく日

多くの人は、月のコスト上限から考え始める。月3万円までなら払えるな、よし月3万円にしよう、という具合だ。これは一見正しいが、夜中の暴走には間に合わない。月の上限に達したときには、すでに6万円請求される前の5万9千円が溶けている。

先に決めるのは月ではなく、日だ。1日の上限を決めて、それを24で割った時間あたりの感覚まで落としてから、月の上限をあとで逆算する。この順番が大事だ。

目安をひとつ置いておく。ひとり事業のAI予算は、月8万円以下に収めたい人が多いはずだ。月8万円なら、単純に30日で割って1日およそ2,700円になる。この2,700円という数字を、今日のキーワードとして覚えてほしい。

なぜ2,700円なのか。理由は二つある。一つは、月8万円という水準が、ひとり事業の利益を圧迫しないギリギリのラインとして現実的だからだ。もう一つは、1日2,700円なら、仮に朝まで気づかず暴走しても、一晩の損失が一回の食事分ですむからだ。痛いが、再起不能ではない。これが大事だ。

もちろん事業のフェーズや利益率によって、正解の数字は違う。月3万円で抑えたい人なら1日1,000円、月15万円まで許容できる人なら1日5,000円だ。重要なのは、まず1日あたりの数字を先に決めて、それを絶対に超えない仕掛けを作ることだ。

上限は2段構えにする・単発と累計の両方を見る

1日の上限を決めたら、次にやることはひとつではない。上限の見方は2種類あって、両方仕掛ける必要がある。

ひとつは累計の上限だ。今日1日でいくら使ったかを足し算していき、その合計が2,700円を超えたら止める。これはわかりやすい。

もうひとつは単発の上限だ。1回の処理でいくらまで使っていいかを決める。例えば、1回あたり300円を超えたら即停止、のようにする。

なぜ両方必要なのか。累計だけ見ていると、一晩で900回ループするタイプの暴走は、1回あたりが小さくて監視をすり抜けてしまう。一方、単発だけ見ていると、1回あたりは安いが回数が多いタイプに弱い。両方を組み合わせることで、どちらのパターンでも止められる。

具体例を出そう。1回の処理で300円を超えた時点でアラートと停止。それに加えて、1日の累計が2,700円に達した時点で、全サービス停止。さらに念のため、月の累計が8万円で全停止。この3層を入れておけば、どの層かで必ず網にかかる。

ここで大事な考え方がひとつある。3層のどこで引っかかっても、自動で止まる、という設計だ。アラートメールを自分に送って人間が手で止める、というのは設計としては弱い。通知が遅れたり、寝ていて見逃したりする。そうではなく、サービス側の機能で、閾値を超えたら自動で課金APIを切る、までやる。

物理的な自動停止の仕掛け

ここからはもう少し具体的に、どのサービスにどんな機能があるかを見ていく。技術用語が出てくるので、都度言い換えていく。

Anthropic(Claude APIを提供している会社)

Anthropicの管理画面には、Organization Spend Limitという仕組みがある。要するに組織全体の使いすぎ防止機能だ。ここに月の上限金額を入れておくと、その額に達した時点でAPIの呼び出しが拒否されるようになる。暴走しても、それ以上は請求が進まない。

使い方はシンプルで、管理画面に入り、上限金額を入力し、保存するだけだ。ここに月8万円相当を入れておく。さらに、Usage alertsで月の50パーセント、80パーセント、95パーセントの段階でメール通知を飛ばしておく。通知はあくまで人間向けの補助で、本丸は自動停止の方だ。

OpenAIを併用している場合

OpenAIのダッシュボードにも、Usage limitsとHard limitという設定がある。Hard limitを超えると、それ以降のAPI呼び出しがエラーで返ってくる。こちらも月額で上限を設定するのが基本だ。

大事なのは、両方のAIを併用しているなら、両方に上限を入れることだ。片方だけ上限を入れて安心していると、もう片方で暴走する。

クラウドサーバーの費用

AIだけでなく、仕組みを動かしているサーバー自体の費用にも上限を入れたい。Vercelを使っているなら、Spend Managementという機能で、月の上限と自動停止を設定できる。閾値を超えたら、プロジェクトを自動で一時停止するところまで設定できる。

AWS(Amazonのクラウド)を使っているなら、Budgetsという仕組みで予算と通知を組み、さらにLambda(自動で動く小さなプログラム)を使って、閾値超過時にリソースを自動停止させるのが定番だ。ここは少し技術的な工夫が必要だが、一度組んでしまえばずっと動く。

決済カードを専用にする

もうひとつ、強力な手がある。AI関連の支払いに使うクレジットカードを、日常の事業用カードとは分けることだ。専用カードにして、限度額を月10万円に設定しておく。万が一すべての自動停止を突破されても、カードの限度額で物理的に止まる。

これは最後の砦として効く。ソフトウェアの設定は、ヒューマンエラーで外されることがある。カードの限度額は、外すのに銀行に連絡が必要だ。夜中の勢いで外せないから、最後の安全装置になる。

参考になる事例

お財布設計の有無で結果はこう変わる

図: お財布設計の有無で結果はこう変わる

ある受託系ソロ事業者の話

私が知っているある人は、AIを使った議事録自動化のサービスを自分で作って動かしていた。顧客の会議録音を受け取り、夜中にAIで文字起こしと要約をして、朝には顧客のメールに届くという仕組みだ。便利だった。ある夜まで。

その夜、ひとりの顧客から届いたファイルの形式が、想定と少し違っていた。プログラムは文字起こしを終わらせる印をつけられず、次の朝までに同じファイルを2,400回AIに読ませた。請求は11万円を超えた。

この人がその後やったことはシンプルだ。1日あたりの上限を1,500円に設定し、1ファイルあたりの処理に上限時間を設け、同じファイルを続けて処理しようとしたら強制終了する仕組みを入れた。それから1年、同じ事故は一度も起きていない。

あるECサイト運営者の話

別のある個人事業主は、ECサイトの問い合わせ対応にAIを使い始めた。問い合わせを読んでAIがドラフト返信を作り、自分が軽く修正して送る、という流れだ。月のAI費用は平均で4,000円ほどだった。

ある連休の最中、問い合わせの自動取得プログラムが、同じ問い合わせを新着として何度も拾うバグを起こした。連休の4日間で、ふだんの15倍のAPI呼び出しが走り、気づいたときには6万円を超えていた。

その後この人は、月の上限を3万円、日の上限を1,200円に設定した。さらに、同じ問い合わせIDを2回処理しようとしたら無条件でスキップする、という単純なガードを入れた。この単純なガードが、実は何重もの上限設定より効いた、とこの人は言っていた。なぜなら、暴走の根本原因はたいてい同じ仕事を繰り返すことだからだ。

ある一人編集者の話

紙媒体の編集から独立した、ある一人編集者の話もある。この人はコードを書かない。ノーコードツール(プログラムを書かずに仕組みを作れるサービス)でAIワークフローを組んでいた。便利なのだが、ノーコードツールはAIの呼び出し回数がブラックボックスになりがちで、気づいたら月のAI費が2万5千円に膨らんでいた。

この人の対策は二つだ。まず、ノーコードツール内で、1日あたりの実行回数に上限を設定した。次に、AIに渡す入力の長さを制限した。長い文章をそのまま投げると、1回あたりの単価がじわじわ上がる。入力を300字で切る、というだけで、月のコストは半分以下になった。

この3つの話に共通するのは、どれも悪意ではなく、仕組みの穴から漏れた、ということだ。そして、上限設定と簡単なガードで、同じ穴は二度塞げる。

具体的な手順・今夜できるお財布設計

今夜できるお財布設計の流れ

図: 今夜できるお財布設計の流れ

ここからは手を動かす話だ。今夜のうちにここまでやってしまいたい、という内容を順に書く。

手順1・現状の月額を把握する

まず、過去3ヶ月のAI関連の請求を全部並べる。Anthropic、OpenAI、Vercel、Supabase、サーバー代、その他の月額ツール。紙に書いてもいいしスプレッドシートでもいい。合計を出す。

多くの人は、ここで自分が思っていた倍くらい使っていることに気づく。請求が分散しているので、感覚より多く出ているのが普通だ。

手順2・月の上限を決める

現状の月額と、事業の粗利から、許容できる月の上限を決める。粗利の5パーセントから15パーセントが目安だ。迷ったら8万円と置いてみて、そこから調整する。

手順3・1日の上限を逆算する

月の上限を30で割る。月8万円なら1日およそ2,700円。月3万円なら1日1,000円。この数字を紙に大きく書いておく。

手順4・Anthropicに月の上限を入れる

Anthropicの管理画面にログインし、Settings、Limitsと進む。Monthly spend limitに先ほど決めた月額を入れて保存する。

続けて、Usage alertsも設定する。50パーセント、80パーセント、95パーセントの3段階でメールを飛ばすようにする。これはあとで自分の感覚を育てるためのもので、本丸の自動停止とは別だ。

手順5・OpenAIと他のAIサービスにも同じ設定を入れる

併用しているAIサービスそれぞれに、同じ月額上限を設定する。上限を分散させず、全部合計で月の総額に収まるように調整する。

手順6・クラウドインフラに上限を入れる

Vercelを使っているなら、Settings、Billing、Spend Managementから上限を設定する。閾値到達時のアクションをPause Projectにする。これで、夜中に仕組みが暴走してサーバー代が跳ねても、プロジェクト自体が自動で一時停止する。

手順7・カードを分ける

AI関連の支払い専用カードを1枚用意する。すでにあるカードを流用するのではなく、新しく1枚作る。限度額を月10万円、または自分の月の上限の1.2倍程度に設定する。このカードをAIサービスの支払いに登録する。

手順8・ループを切る簡単なガードを入れる

一番効くのは、実はこれだ。自分が作っているAIワークフローに、同じ処理を繰り返させないための小さなガードを入れる。

例えば、処理した案件IDを記録するテーブルを作り、プログラムの最初に、そのIDがすでに記録されていたらスキップする、という分岐を入れる。それだけで、ループ型の暴走は大半が防げる。

コードで書けば、発想はこれだけだ。

  1. 処理を始める前に、このIDを前に処理したか確認する
  2. 処理していたらスキップする
  3. 処理していなければ進める
  4. 最後に、処理したことを記録する

この4ステップさえ入れておけば、同じ仕事を一晩で2,400回繰り返すタイプの事故は起きない。

手順9・AIへの入力長に上限を入れる

入力文字数が長ければ長いほど、1回の呼び出しが高くつく。とくに要約系のワークフローは、想定外の巨大ファイルが入ってきたときに跳ねやすい。

ワークフローの中に、入力が一定の長さを超えたら、そもそもAIに渡さずエラーとして返す、という分岐を入れる。この上限は、自分の通常業務で扱う最大サイズの1.5倍程度にするといい。通常業務は通し、異常だけ弾ける。

手順10・毎朝の5分チェックを習慣にする

ここまでの仕掛けで夜間は守られる。だが、仕掛けが正しく動いているかは、毎朝の軽いチェックで確かめたい。

毎朝5分だけ、AnthropicとOpenAIのUsage画面を開く。昨日の使用額が、普段と比べておかしくないかだけ見る。異常値があれば、なぜかを追う。この5分を続けていると、自分の事業の通常コスト感覚が育つ。通常を知っている人だけが、異常に気づける。

よくある失敗・落とし穴

上限を設定した気になって放置する

管理画面で上限を入れたあと、そのまま1年放置する人は多い。事業が成長して処理量が増えると、以前の上限が現実離れしてくる。3ヶ月に1回は、上限の数字を見直したい。高すぎても低すぎてもよくない。

通知だけに頼る

自動停止を入れずに、通知メールだけ設定している人も多い。メールが届いたら止めればいい、という発想だ。これは寝ている間は機能しない。通知は補助、自動停止が本丸、という順番を崩さないこと。

新しいサービスを試すときに上限を忘れる

新しいAIツールを試すときに、試しだから大丈夫だろうと上限を設定しないことがある。試しだからこそ使い方を間違えやすい。新規サービスを入れる日は、真っ先に上限を入れる日、と決めておきたい。

サブアカウントや別プロジェクトを見落とす

仕事用のメインアカウントには上限を入れたが、副業用や検証用の別アカウントには入れていない、というパターン。請求は合算されて来ることがあるので、アカウント単位ではなく、請求単位で上限を把握する。

例外を作る

夜中にどうしても大きな処理を走らせたいから、今夜だけ上限を外す、という判断は危ない。外した上限は戻ってこない、が経験則だ。どうしても必要な夜は、上限を一時的に1.5倍にするなど、ゼロにはしない。ゼロにするときは、翌朝必ず戻す、と紙に書いてから外す。

カード限度額を高いまま放置する

事業用カードの限度額を、銀行が提示してくれた満額のまま使っている人は多い。月10万円しか使わないのに、限度額が150万円に設定されているのは、危ない。限度額は実際の必要額に合わせて下げておく。限度額は下げることができる。銀行に連絡すれば無料だ。

夜中の暴走を経験していないうちから油断する

まだ事故を経験していない人ほど、この記事の内容は重たく感じるかもしれない。しかし、事故は一度起きると精神的にかなり削られる。事故の前にやる方が安い。

明日からやる3つのこと

長く書いてきたので、明日からやる3つにだけ絞っておく。

  1. 月の上限を決め、Anthropicの管理画面に入れる

    • 迷ったら月8万円、1日2,700円と置いてみる。数字は後から調整できる。大事なのは、今日、数字を入れてしまうことだ。
  2. 1つのAIワークフローに、同じIDを2回処理させないガードを入れる

    • 一番事故が起きそうなワークフローを1つ選び、ループを切る小さなガードを入れる。完璧でなくていい。1つだけ、今夜のうちに。
  3. AI関連の支払い専用カードを作る申込みを出す

    • カードの発行には数日かかるので、申込みだけ先に出しておく。届いたら限度額を月10万円に設定して、支払い登録を移し替える。最後の砦をひとつ持っておく。

この3つをやれば、夜中の請求を恐れる理由の大半は消える。完璧な仕組みではない。しかし、朝起きて6万円の請求を見るか、2,700円以内で止まっているのを見るかの差は、この3つで決まる。

ひとりで事業を回していると、設計に時間を使う余裕がないと感じがちだ。しかし、お財布の設計だけは、今夜のうちにやってほしい。ここに1時間使っておくことが、来月の自分を救う。夜を安心して放置できる事業だけが、翌朝ちゃんと進んでいる。