AIエージェントに支出上限と緊急停止スイッチを付ける方法
本番のエージェントには公開前に3つの制限が必要です。1回の実行と1日ごとのモデル費用の上限、1回の実行の最大ステップ数、そして再デプロイなしで止められる緊急停止スイッチです。これがないと、1つの暴走ループが一晩で1か月分の予算を使い切ります。
AIエージェントをマーケティング、営業、プロダクトに活かす方法を学べます。毎週、学んだことを5,400人以上の読者と共有しています。
✓ メールをご確認ください — 確認リンクをクリックして登録を完了してください。
✓ 登録が完了しました!
✓ すでに登録済みです。
制限のないエージェントは、眠らない超高速のインターンにクレジットカードを渡すようなものです。ほとんどの場合は問題ありません。しかし一度でも、ツールがエージェントに理解できないエラーを返すと、再試行し、エラーを読み、また再試行し、APIの残高がなくなるまで続けます。
私はたくさんのエージェントを動かしていて、ルールは単純です。支出上限、ステップ上限、緊急停止スイッチの3つが揃うまで、どのエージェントも本番に出さない。 どれも追加は難しくありません。高くつくのは省略したときです。
エージェントが使いすぎる理由
通常のスクリプトは毎回同じ量の仕事をします。エージェントは仕事の量を自分で決めます。それが使う理由でもあり、リスクでもあります。暴走した請求のほとんどは、次の4つが原因です。
- 再試行ループ。 ツールが失敗し、エージェントが少し違う入力でやり直し、また失敗して繰り返す。
- 膨らみ続けるコンテキスト。 ステップごとに会話が増えるので、呼び出しのたびに前より高くなる。40ステップの実行は、1ステップの実行の40倍よりずっと高くつく。
- ファンアウト。 エージェントがサブタスクを作り、それぞれがさらにサブタスクを作る。
- 頻繁すぎるトリガー。 スケジュールされたジョブや受信Webhookが、5回のはずが500回動く。
1回の呼び出しあたりのコストの数字はAI agent cost mathで詳しく分解しました。この記事で扱うのは平均ではなく上限です。
制限1:厳格な支出上限
エージェントごとに2つの数字を決めます。1回の実行あたりの最大支出と、1日あたりの最大支出です。
仕事の価値から逆算して選んでください。受信トレイを仕分けして1日20分を節約してくれるエージェントに、1回の実行で40ドルを使わせるべきではありません。出発点としては、通常の実行コストの5倍が目安です。典型的な実行が20セントなら、1回を1ドル、1日を10ドルに制限します。正当な仕事が初めて上限に止められたときに引き上げればよく、それは歓迎すべき問題です。
適用する場所は2つあります。
- プロバイダー側。 AnthropicやOpenAIのコンソールで月間の支出上限を設定します。これが最後の砦で、2分で終わります。自分のコードが間違っていても、最悪の事態は防げます。
- 自分のコード内。 実行中に使ったトークンの累計を持ち、ドルに換算し、1回の上限を超えたら止めます。1日の合計は永続的な場所に保存し、再起動でリセットされないようにします。
制限2:最大ステップ数
ステップ上限は最も簡単な防御で、ドル上限では遅すぎるループを捕まえます。健全な実行が踏む最大のステップ数を決め、余裕を足して、そこで止めます。
通常の最長の実行がツール呼び出し12回なら、上限は25にします。エージェントが上限に達したら、黙って続行させてはいけません。実行を終了し、理由を記録し、自分にメッセージを送ります。ステップ上限に当たった実行はバグ報告であり、読む価値があります。
同じ入力で同じツールを繰り返し呼ぶ場合も同じ考え方が使えます。エージェントが同じツールを同じ入力で3回続けて呼んだら止めてください。それは進捗ではなくループです。
制限3:デプロイ不要の緊急停止スイッチ
午前2時に何かがおかしくなったとき、コードを編集してビルドし直して再デプロイしたくはありません。スイッチを1つ切り替えたいはずです。
緊急停止スイッチは、エージェントが各ステップの開始時に確認する1つのフラグです。実行の開始時だけではありません。フラグが停止を示したら、エージェントは止まります。フラグの置き場所よりも、スマホから変更できることのほうが大切です。キーバリューストアのキー、データベースの1行、再デプロイなしで編集できる環境変数などが使えます。
細部も押さえてください。
- 頻繁に確認する。 起動時にしか読まないフラグでは、すでに動いている実行を止められません。
- 安全に止める。 エージェントは途中のアクションを完了するか元に戻すべきで、送信途中のメールや予約途中の予定を残してはいけません。
- 失敗時は止まる側に倒す。 フラグが読めないなら、エージェントは止まります。フラグの保存先が壊れたせいで支出が無制限になってはいけません。
- 一度は試す。 ステージング用のコピーでスイッチを切り替え、止まるのを見てください。試していない緊急停止スイッチは願望にすぎません。
関連する制御である承認ステップはhuman-in-the-loop agentsで扱いました。承認は悪い操作を止め、上限は悪い支出を止めます。両方が必要です。
最初に気づけるようにアラートを付ける
制限は予算を守りますが、発動したことは知る必要があります。1日の上限の50%と80%に達したとき、そしてステップ上限か緊急停止スイッチで実行が打ち切られるたびに、メッセージを送ってください。そして読んでください。無視するようになったアラートには価値がないので、頻繁に鳴るものがあれば原因を直すか、制限を調整します。
各ステップをトレースIDつきで記録していれば、どの実行がお金を使ったのかが正確にわかります。その構成はhow to debug an AI agent in productionで説明しています。
3つの制限をまとめて追加するプロンプト
自分で書く必要はありません。エージェントのコードがあるフォルダでClaudeを開き、次を貼り付けてください。
Read my agent's code. Add three safety limits and show me every file you change:
1. A per-run and per-day spending cap, computed from token usage. Read the limits
from configuration, and stop the run with a clear logged reason when either is hit.
2. A maximum step count per run, plus a stop if the same tool is called with the same
input three times in a row.
3. A kill switch: a flag checked before every step that stops the agent safely.
If the flag can't be read, the agent must stop.
Then list what you assumed about where the flag should live, and give me a short
checklist to test each limit on a non-production copy.結果を信用する前に、3点を確認してください。ドルの計算があなたのモデルの現在の価格を使っていること(モデルは価格を推測で書くことがあります)、フラグが毎ステップ読まれていること、そして各制限を一度は実際に発動させて確認したことです。モデルは、決して発動しない上限を平気で書きます。
許容できる最も厳しい数字から始める
初日は制限を厳しめにし、実績を見ながら緩めてください。正当な実行を止める上限のコストは数分です。上限がないことのコストは、一晩で1か月分の予算になりえます。エージェントが本物の何かに触れる前に制限を入れておけば、残りの構築はずっと落ち着いたものになります。
AIエージェントをマーケティング、営業、プロダクトに活かす方法を学べます。毎週、学んだことを5,400人以上の読者と共有しています。
✓ メールをご確認ください — 確認リンクをクリックして登録を完了してください。
✓ 登録が完了しました!
✓ すでに登録済みです。
関連記事
SaaSのAIエージェント:最初に自動化すべきこと
AIエージェントの意思決定に使っているティアとROIのフレームワークを、SaaSで本当に最初に自動化する価値があるワークフローに当てはめて考える。
AI AgentsClaudeエージェント対Zapier:使い分けの実際
Zapierはルールに従ってアプリ間でデータを動かす。Claudeエージェントは雑然とした入力を判断する。私が実際に使い分けている基準を紹介する。
AI AgentsAIエージェントを構築すべきでない時(代わりにすべきこと)
AIエージェントが不適切な選択肢だと分かる5つのサインと、コードを書く前に試すよりシンプルな代替策の階層。
AIプレイブックをメールでお届け
AIエージェントをマーケティング、営業、プロダクトに活かす方法を学べます。毎週、学んだことを5,400人以上の読者と共有しています。
メールをご確認ください。
確認メールをお送りしました — リンクをクリックして登録を完了してください。1分以内に届かない場合は迷惑メールをご確認ください。
登録が完了しました。
ようこそ — 次号がまもなくお手元に届きます。
すでに登録済みです — 毎週水曜日にお届けします。