◉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 — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/AIモデル
◉ AIモデル/2026-06-30上級

Rork のハイブリッドAIが知らぬ間にクラウドへ偏って課金が膨らんでいたとき — 経路選択を計測して切り分ける運用メモ

オンデバイス・エッジ・クラウドを振り分けるハイブリッドAIルーターが、判断ログの不在によって静かにクラウドへ偏り、課金が前月比1.7倍に膨らんだ事例の運用メモです。経路選択を記録して原因を切り分け、予算アラームで再発を止めるまでの手順を共有します。

Rork Max236ハイブリッドAIオンデバイスAI13エッジAI4コスト最適化5オブザーバビリティCore ML6Cloudflare Workers AI

✦ プレミアム記事

課金明細を見て初めて気づいた

ハイブリッドAIを載せたアプリで、月末の API 課金が前月比で 1.7 倍になっていました。困ったのは、アクティブユーザーもリクエスト総数もほぼ横ばいだったことです。トラフィックが増えていないのに費用だけが伸びる。最初はモデル単価の改定を疑いましたが、単価は据え置きでした。

原因にたどり着くまで時間がかかったのは、AIルーターがどのリクエストをどこへ流したかを、どこにも記録していなかったからです。オンデバイス・エッジ・クラウドの3層に賢く振り分ける設計にしていたのに、肝心の「実際にどう振り分いたか」は誰も見ていませんでした。設計図はあるのに、走行ログが無い状態です。

このメモは、その走行ログを後付けで仕込み、課金が膨らんだ真因を切り分けるまでにやったことの記録です。コードは Rork Max で生成したアプリ(React Native + Expo 構成)に後から差し込める形にしてあります。

個人開発で長くアプリを運用していると、こうした「壊れていないのに費用だけ伸びる」類の不具合に何度か出会います。私自身、派手なクラッシュより、誰も困らないまま静かに進む劣化のほうが見つけにくく、結局は計測を仕込んでいたかどうかで対応の速さが決まる、と感じてきました。今回もまさにその一例でした。

なぜ「静かに」偏るのか

ハイブリッドAIの振り分けは、たいていこういうヒューリスティックで書かれています。個人情報を含むならオンデバイス、最新情報や複雑な推論が必要ならクラウド、それ以外はエッジ、という具合です。

// src/ai/AIRouter.ts — よくある初期実装(判断を記録していない版)
export type AILayer = 'on-device' | 'edge' | 'cloud';
 
export function determineAILayer(req: AIRequest): AILayer {
  const c = req.context ?? {};
  if (c.offlineMode || c.containsPersonalInfo) return 'on-device';
  if (c.requiresLatestInfo || c.complexReasoning) return 'cloud';
  if (req.message.length <= 50) return 'on-device';
  return 'edge';
}

問題は、この requiresLatestInfo や complexReasoning といったフラグを誰が立てているか、です。多くの場合、上流の軽い分類器やプロンプト側のキーワード判定がふんわり立てています。そこの基準がほんの少し緩むだけで、クラウド送りの割合が静かに増えます。トラフィックの総量は変わらないので、ダッシュボードのどのグラフも異常を示しません。気づけるのは課金明細だけ、という事態になります。

私が見た範囲では、静かなクラウド偏りの原因はだいたい次の3つに収束しました。

原因起きること気づきにくい理由
フラグの過剰付与上流分類器が complexReasoning を立てすぎてクラウド送りが増える各リクエストは正常に応答するため、エラー率に出ない
暗黙のフォールバックオンデバイスモデルの初期化失敗時に黙ってクラウドへ流すユーザー体験は維持されるので、誰も困らない
会話履歴の肥大履歴が長くなるとエッジ層の上限を超えクラウドへ昇格セッション後半だけで起きるため再現しにくい

3つに共通するのは「ユーザーから見ると何も壊れていない」点です。だからこそ計測なしには見つかりません。

✦

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

この記事の続きを読む

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

この記事で得られること
✦AIルーターの判断を1リクエストずつ記録し、レイヤー別シェア・実測レイテンシ・推定トークン課金を集計する計測コード
✦トラフィック横ばいなのに課金が伸びる「静かなクラウド偏り」の3つの典型原因と、それぞれの切り分け手順
✦オンデバイス初期化失敗時の暗黙クラウドフォールバックを可視化し、予算アラームで早期検知する運用設計
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

◉ AI モデル2026-09-12
iOS 27 の新機能を Rork に頼むと、エラーにならないまま古い書き方へ戻ります
9月14日に iOS 27 が配信されます。生成 AI が知らない API を頼まれたときには、落ちる失敗と落ちない失敗の二種類が起きます。標準 Rork と Rork Max で性質が違う理由と、返ってきたコードを確かめる三つの順番を整理しました。
◉ AI モデル2026-06-24
Rork Max の AI 機能を本気で使い倒す — Vibe Coding を超える実装力の引き出し方
Rork Max を実装パートナーとして使い倒すための深掘りガイドです。プロンプト設計とコンテキスト管理に加え、無印 Rork と Rork Max の選び分け、クレジットを無駄にしない作り方、App Store 提出前の検証までを、個人開発の実体験からまとめました。
◉ AI モデル2026-05-05
Rork Max で AI 面接コーチアプリを作る:音声録音・Claude 評価・進捗管理の実装ガイド
Rork Maxで音声録音、Whisperによる文字起こし、Claude APIでの回答評価を組み合わせたAI面接コーチアプリを構築します。Cloudflare Workersでの評価API実装、セッション管理と進捗トラッキング、フリーミアム課金設計、本番環境の注意点まで一気通貫で扱います。