◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/開発ツール
⬡ 開発ツール/2026-05-24上級

AI 機能のコスト上限を実行時に強制する設計 — Rork アプリの予算ガード・アーキテクチャ

AI 機能のコストが想定外に跳ねる事故を、最適化ではなく実行時の強制で防ぐ設計を、廣川政樹がアーティスト兼個人開発者の運用視点から、Cloudflare Durable Objects と React Native のコードレベルで解説します。

Rork585AI コストCloudflare Workers25Durable Objectsアーキテクチャ22個人開発218運用設計8

✦ プレミアム記事

2014 年から個人開発を続けている廣川です。累計 5,000 万 DL のアプリを AdMob 中心で回してきましたが、最近 Rork で組んだ AI 機能つきアプリで一度だけ、月の API 費用が想定の 3.8 倍に跳ねた朝がありました。原因は単純で、クライアントの自動リトライがループに入り、一晩で十数万トークンを呑み込んでいたのです。

その日から「最適化」と「強制」を別物として扱うようになりました。キャッシュやプロンプト短縮はあくまでコストを下げる工夫であって、想定外を止める仕組みではありません。本当に事故を止めるのは、実行時に「これ以上は通さない」と物理的に遮断する壁です。本稿はその壁を、Cloudflare Workers と Durable Objects と React Native のコードで、どこにどう立てるかを書き残します。

なぜ「最適化」だけだと事故が止まらないのか

AI コスト最適化の記事は世の中にあふれています。トークン削減、レスポンスキャッシュ、オンデバイス推論、いずれも筋のいい施策です。ただ、これらは全部「平時のコスト構造を改善する」話で、「異常時にどこで止まるか」を保証してくれません。

過去半年で私が観測したコスト跳ね事象は次の 3 パターンでした。

  1. クライアント側の指数バックオフが上限なしで設定されていて、サーバー過負荷時に同一ユーザーが数千回再試行した
  2. オンボーディングの提案機能が、UI の race condition で 1 タップに対して 6 〜 8 回 API を呼んでいた
  3. 退会済みアカウントのトークンが漏れていて、外部から平均 220 req/min で叩かれていた

どれも「キャッシュ命中率が高い設計」では救えません。命中率は平均化された指標なので、特定ユーザーが特定時間帯に異常に叩いた事故を希釈してしまうからです。本番運用では、平均ではなく「どこで物理的に止まるか」が事業の継続を決めます。

私は Rork で月額 580 円のサブスク型アプリを 3 本回していますが、ARPPU が ¥520 程度のときに、1 ユーザーあたりの AI コストが平均 ¥65、最悪値が ¥4,800 という分布を出したことがあります。最悪値が許容を超えた瞬間に赤字が固定化されるので、強制ガードがない設計はそもそも事業として成立しません。

三層で壁を立てる — どこに何を置くか

予算ガードは 1 か所に立てると必ず破られます。クライアントを信用すると JS の上書きで抜けられ、エッジだけだと暴走ループのリクエスト自体が課金され、オリジン(OpenAI / Anthropic 等)の上限に依存するとそこまでの転送料が無駄になります。

層担当目的効くタイミング
クライアント事前見積もり・UI 制御無駄な発火を未然に止めるリクエスト前
エッジ(Workers)per-user / per-app の残高判定暴走と異常使用を遮断リクエスト着信時
オリジンハード上限・モデル制限プロバイダー側の最終防衛リクエスト到達時

それぞれの層で「何を判定して何を返すか」を明確にしておきます。クライアントは UX を守るために最も賢く、エッジは事業を守るために最も厳しく、オリジンは事故を絶対に通さないために最もシンプルに、というのが私の運用での落としどころでした。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦3層(クライアント・エッジ・オリジン)で予算を二重三重に守る具体的なコード設計
✦Durable Objects を用いた per-user 残高カウンタの強整合実装と、KV では足りない理由
✦残予算に応じてモデルを動的ダウングレードし、サブスク赤字を防ぐ段階制御パターン
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ 開発ツール2026-09-19
Rork が書き換えた箇所だけを読む — 再エクスポートのたびに回している差分確認の手順
再エクスポートしたコードを前回との差分として読むための手順です。追跡ファイルを一度消してから重ねる、雑音を外して数える、合流の前に一度止める——この3つで上書き事故を止めています。
⬡ 開発ツール2026-09-03
リンクを押してもアプリが開かないとき、疑うのは assetlinks.json の置き場所より先に署名鍵です
Android App Links が検証されずブラウザに吸われる原因の多くは指紋の食い違いです。keytool の実出力と、手元で照合できる小さな検査スクリプトの実行結果を添えて整理しました。
⬡ 開発ツール2026-08-14
ライセンス表示に載せる依存は、lockfile の dev/prod では決まりません
AI ビルダーが書き出したプロジェクトの依存を実際に分類し、ライセンス表示に載せる範囲をどう決めたかの記録です。copyleft の検出結果と配布物の境界の食い違いを、本番プロジェクトの実データで確かめました。