エージェントの暴走課金にドル建ての上限を──Claude Managed AgentsのSession Budgets
Claude Managed Agentsに2026年8月7日、セッション単位でハードな支出上限を設定できる「Session Budgets」が追加された。上限に達すると新しいモデルリクエストを止めてセッションが一時停止し、上限を変更・解除すれば自動的に再開する。仕様を公式ドキュメントで確認すると、上限を「少し超えて」止まる設計であることが明記されていた。

目次
自律的に動き続けるAIエージェントを運用する上で一番の不安は「気づかないうちにいくら使われているか」だ。Anthropicは2026年8月7日、Claude Managed Agentsのセッションにドル建てのハードな支出上限を設定できる「Session Budgets」を追加した。公式ドキュメント(platform.claude.com/docs/en/managed-agents/budgets)を確認すると、単なる警告ではなく実際にリクエストを止める仕組みであることと、その挙動の細かいクセが明記されている。
- セッション作成時に
max_list_cost(米セント建ての整数文字列)を指定すると、公開リスト価格換算の累計コストがその額に達した時点で新しいモデルリクエストが止まる- 上限に達したセッションは「終了」ではなく「一時停止(idle、stop_reasonはbudget_reached)」。予算を変更・解除すれば自動的に再開する
- リクエスト単位ではなく「リクエストとリクエストの間」でチェックするため、上限を超えた状態で走り始めたリクエストは最後まで完了する。実際の消費額は上限をわずかに超える
何にいくらかかるかを継続的に値付けする仕組み
Session Budgetsが比較しているのは、公式が「list cost(リスト価格に基づくコスト)」と呼ぶ値だ。これはモデルのトークン消費だけでなく、以下も含めて継続的に算出される。
- モデルトークン:各モデルの公開リスト単価
- Web検索:1,000回あたり$10
- セッションの稼働時間:1時間あたり$0.08
ドキュメントは「これは契約価格ではない。組織が値引き契約をしていても、上限判定はリスト価格ベースの合計で行われるため、実際の請求額が上限より低くなることはあっても、判定自体はリスト価格でのみ行われる」と明記している。値引き契約をしている組織ほど、この差を意識しておく必要がある。
「上限ちょうど」では止まらない
一番実務的に重要な仕様は、予算超過の判定タイミングだ。公式の説明を引用する。
The cap is enforced between model requests, not mid-request. [...] a session capped at "50" (50 cents) can pause with a list_cost of "53". This is expected, not a billing error
(上限はモデルリクエストの合間で強制される。リクエストの途中では強制されない。[中略]50セントで上限を設定したセッションが、53セントで一時停止することがある。これはバグではなく仕様どおりの挙動である)
超過幅は「スレッドごとに最大1リクエスト分」に制限されるとされているが、超過そのものはゼロにはならない。予算は「正確な停止ライン」ではなく「新規作業に対する上限」として扱い、この1リクエスト分の余裕を見込んでセット額を決める必要がある、とドキュメントは注意を促している。
マルチエージェントのセッションでは、予算はスレッド単位ではなくセッション全体で共有され、各スレッドはそれぞれの消費モデル単価で独立して上限に近づいていく。アドバイザーへの相談もこの共有予算に含まれる。
一時停止中にできること・できないこと
予算上限で一時停止したセッションは、user.messageのような「新しい作業を始めるイベント」をすべて400エラーで拒否する。一方で、すでに進行中の作業を片付けるイベント(user.tool_confirmation・user.tool_result・user.custom_tool_result・user.interrupt)は引き続き受け付けられる。再開させるには予算そのものを変更するか、budgetをnullにして解除するしかない。ただし解除は不可逆だ。ドキュメントは「予算を一度外したセッションには、二度と予算を付け直せない。上限を維持したまま調整したいなら、外すのではなく変更する」と明記している。
デプロイメント(定期実行)にも同じbudgetオブジェクトを設定でき、この場合は起動するセッションそれぞれに同じ上限がコピーされる(デプロイメント全体の累計ではなく、実行1回ごとの上限)。デプロイメント側の予算は、セッションと違ってnullでの解除後に再設定できる。
エラー一覧:予算がリジェクトされる5パターン
公式ドキュメントには、予算関連のリクエストが拒否されるケースを整理した表がある。実際にこの表を確認すると、次の5パターンが400エラーになると明記されていた。
| 条件 | ステータス |
|---|---|
予算に達した(または超えた)セッションに、user.messageなど新規作業を開始するイベントを送った |
400 |
| 予算を、セッションがすでに消費したlist costと同額以下に設定しようとした | 400 |
| 予算なしで作成したセッションに後から予算を追加、または解除後に再度予算を付けようとした | 400 |
amountが整数セントでない(例:"25.00")、ゼロ以下、またはcurrencyがUSD以外だった |
400 |
| 公開リスト価格のないモデルを使う予算付きセッションを作成しようとした | 400 |
出典: platform.claude.com/docs/en/managed-agents/budgets「Error reference」節(2026年8月29日確認)
このうち「公開リスト価格のないモデル」については、セッション作成時だけでなく、稼働中に途中でそうしたモデルを使うことになった場合の挙動も明記されている。予算による消費量の計測ができなくなり、セッションはbudget_reachedで一時停止しうるが、その状態で予算を変更しようとしても拒否される。ドキュメントは「予算を解除する以外に再開する方法はない」としている。
Messages APIの「task budgets」とは別物
紛らわしいが、Anthropicには名前の似た別の予算機能がある。Claude Developer Platformの「Task budgets」(ベータ、task-budgets-2026-03-13ヘッダーが必要、対象はClaude Fable 5・Mythos 5・Opus 5・Opus 4.8・Opus 4.7)は、Messages API側で1回のエージェントループに使えるトークン数をモデルに伝え、モデル自身に消費を自己調整させる**アドバイザリー(強制力のない)**な仕組みだ。
これに対し、本記事で扱うSession Budgets(Managed Agents側)は、米ドル建てでプラットフォームが強制するハードキャップであり、モデルへの自己申告ではなく、プラットフォーム側がリクエストを実際に止める。公式ドキュメントの「Session budgets」ページにも、この2つを混同しないよう次の注記がある。
"Session budgets are hard caps in US dollars (written in cents) on a single session, enforced by the platform. They are distinct from the Messages API's task budgets, which are advisory, token-denominated budgets the model uses to self-regulate within one agentic loop."
(訳:Session budgetsは、単一セッションに対する米ドル建て(セント単位で記述)のハードキャップであり、プラットフォームによって強制される。これは、モデルが1回のエージェントループ内で自己調整するために使う、アドバイザリーかつトークン建ての予算であるMessages APIのtask budgetsとは別物である)
| Session budgets(本記事) | Task budgets | |
|---|---|---|
| 提供層 | Claude Managed Agents | Messages API |
| 単位 | 米ドル(セント単位) | トークン数 |
| 強制力 | ハードキャップ(プラットフォームが実際に止める) | アドバイザリー(モデルが自己調整するだけ) |
| ベータ header | 不要 | 必要(task-budgets-2026-03-13) |
| 対象モデル | Managed Agentsで使える全モデル | Fable 5 / Mythos 5 / Opus 5 / Opus 4.8 / Opus 4.7 |
使用量の見方
セッションオブジェクトのusageフィールドには、トークン数・稼働時間・list_costなどが入る。platform.claude.com/docs/en/managed-agents/events-and-streamingの「Tracking usage」節で確認したレスポンス例では、list_costは{"amount": "187", "currency": "USD"}のような形式で、セント単位の文字列として返る。マルチエージェントのセッションでは、スレッドごとのusageも個別に取得できるが、ドキュメントには「スレッドごとの数値は独立して丸められ、セッションの稼働時間コストを含まないため、合計してもセッション全体のlist_costと正確には一致しない。予算の判定に使われるのはあくまでセッション側の数値」との注記もあった。
個人開発者にとっての意味
Managed Agentsは自前のエージェントをAPIで組んで動かすプラットフォームで、複数スレッドが並行して長時間動くことが前提にある。何もガードを入れずに走らせると、想定より長く粘る・想定より多くツールを呼ぶといった振る舞いだけで請求が跳ねるリスクは常にある。Session Budgetsは「絶対にここまでしか使わせない」という機械的な歯止めであって、コストを最適化する機能ではない点は区別しておきたい。予算に達したセッションは仕事を途中で置いていくだけで、賢く節約して仕事を終わらせてくれるわけではない。
手元で予算付きセッションを動かしたわけではない
本記事は公式ドキュメントの説明とコード例のみを情報源としており、Anthropic APIの課金呼び出しは本記事の作業範囲外としたため、実際に予算付きセッションを作成して一時停止・再開の挙動を手元で再現したわけではない。「実際の超過幅がどの程度の分布になるか」「マルチエージェントで複数スレッドが同時に上限へ達したときの体感」は、ドキュメントの記述以上のことは分からない。
関連記事: Claude・GPT・Gemini API料金の読み方 / Claude Code / Claude APIの2026年8月の変更点まとめ / AIエージェントとは
感想・指摘はコメント欄へ。
出典・参照資料
AIニュースの解説を動画でも
YouTubeでは注目ニュースの背景を解説し、Xでは新着記事をお知らせしています。
コメント
まだコメントはありません。最初のコメントを書いてみませんか?
AIについて聞きたいことはありますか?
質問箱で無料で受け付けています。回答は公開され、他の方の参考にもなります。
質問箱を見る →新しい記事をメールで受け取る
AIの新しい発表を、出典付きで整理して届けます。
関連記事
Claude in Chromeのサイドパネルが独立セッションをやめた──Coworkと同じ会話をブラウザで続けられるようになった
Claude APIが2026年8月に踏んだ変更点まとめ──Python SDK v1.0の破壊的変更を中心に
Claude APIが会話の途中でツールセットを変えられるようになった──プロンプトキャッシュを保ったまま
Claude Codeの週次枠+50%が8月31日まで再延長──Anthropicが初めて「恒久化したい」と明言、同時に容量逼迫も認める
非エンジニア15人が1週間でAIエージェントを50体に増やした話──Anthropicが公開した1,100人企業の内側
Claude Fable 5、7月20日からMax・Team Premiumの標準搭載に──延長の繰り返しが終わり、Proはクレジット制へ
