RORK LABEN
PLAY — Google Play の target API level 36 要件が昨日8月31日に発効しました。今日以降、新規アプリと既存アプリの更新は Android 16 対応が必須ですVISIBILITY — API 35 のままのアプリは掲載こそ続きますが、新しい Android 版のユーザーには表示されなくなります。エラーが出ないまま新規インストールだけが減る点に注意が要りますEXTENSION — 間に合わなかった場合は、Play Console から2026年11月1日までの延長申請が出せます。恒久対応の計画とセットで進めるのが実務的ですAPPLE — Apple 側は9月9日にイベント、iOS 27 の正式リリースは9月14日と報じられています。生成したアプリの iOS 27 実機確認はリリース週の前に済ませておきたいところですEXPO — Expo が expo-paste-input を公開しました(8月28日)。React Native の TextInput に画像・GIF・ステッカーの貼り付けを追加するネイティブモジュールですEAS — EAS Observe が8月20日に GA になりました。クラッシュや性能の観測を、ビルドや配信と同じ EAS 上で持てるようになっていますPLAY — Google Play の target API level 36 要件が昨日8月31日に発効しました。今日以降、新規アプリと既存アプリの更新は Android 16 対応が必須ですVISIBILITY — API 35 のままのアプリは掲載こそ続きますが、新しい Android 版のユーザーには表示されなくなります。エラーが出ないまま新規インストールだけが減る点に注意が要りますEXTENSION — 間に合わなかった場合は、Play Console から2026年11月1日までの延長申請が出せます。恒久対応の計画とセットで進めるのが実務的ですAPPLE — Apple 側は9月9日にイベント、iOS 27 の正式リリースは9月14日と報じられています。生成したアプリの iOS 27 実機確認はリリース週の前に済ませておきたいところですEXPO — Expo が expo-paste-input を公開しました(8月28日)。React Native の TextInput に画像・GIF・ステッカーの貼り付けを追加するネイティブモジュールですEAS — EAS Observe が8月20日に GA になりました。クラッシュや性能の観測を、ビルドや配信と同じ EAS 上で持てるようになっています
記事一覧/AIモデル
AIモデル/2026-04-28上級

Rork で AI エージェントを SaaS 化する — サブスクリプション + API 課金 + アフィリエイトの三層収益化モデル

Rork で作った AI エージェントを SaaS として運用するための実装ノートです。Stripe と RevenueCat の二重課金源をどう突合するか、Webhook の冪等化、解約手前の自動リカバリまで、実運用で詰まった箇所を中心に整理しました。

Rork548AI-agent2SaaS3monetization11Stripe17RevenueCat30subscription10API-billingaffiliate

プレミアム記事

個人開発でアプリを公開してきて、いちばん神経を使うのは「お金が正しく動いているか」を保証する部分でした。機能を足すのは楽しいのですが、課金まわりは静かに壊れます。ある月、サブスクの解約をユーザーが行ったのに権限がしばらく残り続けていたことがありました。原因は Webhook の取りこぼしでした。

Rork でエージェントを組み立てるところまでは、本当にあっという間です。難しいのはその先、「動くものを、お金が絡んでも安心して回せるサービスにする」ところです。料金体系、請求エンジン、顧客管理、API キーのローテーション。どれも地味ですが、ここを雑に作ると後でユーザーの信頼を失います。

以下では、Rork で作ったエージェントを SaaS として運用するために私が実際に組んだ構成を、つまずいた箇所を中心に整理していきます。土台になるのは三層の収益化モデルです。

  1. サブスクリプション層 — 月額プラン(Free / Pro / Enterprise)
  2. API 課金層 — 使用量ベースの従量課金
  3. Affiliate 層 — パートナー企業による再販売

このモデルを実装すれば、カジュアルユーザー、中堅企業、大手企業まで、すべてをカバーできます。

エージェント SaaS のアーキテクチャ

Rork で作ったエージェントを SaaS にするには、以下の層が必要です。

┌─────────────────────────────────────────────┐
│         Rork Agent (バックエンド)            │
│   Claude / Gemini / Mixtral API 統合       │
└──────────────┬──────────────────────────────┘
               │
┌──────────────▼──────────────────────────────┐
│         API Gateway (Express / Hono)        │
│   認証・レート制限・使用量トラッキング         │
└──────────────┬──────────────────────────────┘
               │
┌──────────────▼──────────────────────────────┐
│     Billing Engine (Stripe + RevenueCat)    │
│   サブスク・従量課金・支払い処理              │
└──────────────┬──────────────────────────────┘
               │
┌──────────────▼──────────────────────────────┐
│    Customer Dashboard (Next.js + Vercel)    │
│   利用状況・請求履歴・API キー管理           │
└─────────────────────────────────────────────┘

Step 1: Rork エージェントの API 化

最初に、Rork で構築したエージェントをプログラマティックに呼び出せるようにします。

Rork の SDK を使い、こんなコードで実装します。

// lib/rork-agent.ts
import { RorkClient } from '@rork/sdk';
 
const client = new RorkClient({
  apiKey: process.env.RORK_API_KEY,
  agentId: 'my-saas-agent',
});
 
export async function callAgent(input: string) {
  const response = await client.chat.completions.create({
    messages: [{ role: 'user', content: input }],
    maxTokens: 2000,
  });
 
  return {
    text: response.choices[0].message.content,
    tokensUsed: response.usage.total_tokens,
    costUsd: calculateCost(response.usage),
  };
}
 
function calculateCost(usage: TokenUsage): number {
  // 入力: $0.003 / 1K tokens, 出力: $0.015 / 1K tokens
  const inputCost = (usage.prompt_tokens / 1000) * 0.003;
  const outputCost = (usage.completion_tokens / 1000) * 0.015;
  return inputCost + outputCost;
}

このエージェントをわかりやすい REST API でラップします。

// app/api/agent/chat/route.ts
import { NextRequest, NextResponse } from 'next/server';
import { callAgent } from '@/lib/rork-agent';
import { trackUsage } from '@/lib/billing';
 
export async function POST(req: NextRequest) {
  const authHeader = req.headers.get('Authorization');
  const apiKey = authHeader?.replace('Bearer ', '');
 
  if (!apiKey) {
    return NextResponse.json(
      { error: 'Missing API key' },
      { status: 401 }
    );
  }
 
  // API キーから顧客を検索
  const customer = await findCustomerByApiKey(apiKey);
  if (!customer) {
    return NextResponse.json(
      { error: 'Invalid API key' },
      { status: 401 }
    );
  }
 
  // レート制限チェック
  const remainingRequests = await checkRateLimit(customer.id);
  if (remainingRequests <= 0) {
    return NextResponse.json(
      { error: 'Rate limit exceeded' },
      { status: 429 }
    );
  }
 
  const { message } = await req.json();
 
  try {
    const result = await callAgent(message);
 
    // 使用量をトラッキング
    await trackUsage({
      customerId: customer.id,
      tokensUsed: result.tokensUsed,
      costUsd: result.costUsd,
      timestamp: new Date(),
    });
 
    return NextResponse.json({
      response: result.text,
      tokens_used: result.tokensUsed,
      cost_usd: result.costUsd,
    });
  } catch (error: any) {
    return NextResponse.json(
      { error: error.message },
      { status: 500 }
    );
  }
}

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

この記事の続きを読む

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

この記事で得られること
Stripe と RevenueCat という2つの課金源を、サーバー側でどう1つのエンタイトルメントに突合するかの設計
Webhook を冪等にして二重課金・権限の取りこぼしを防ぐ実装パターン
支払い失敗から解約までの猶予期間を自動制御し、Win-back につなげる運用フロー
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

AI モデル2026-05-06
Rork で占いアプリを作るときにぶつかる7つの壁と、その乗り越え方
タロット・オラクルカード型の日替わり占いアプリをRorkで作るときにぶつかる7つの壁を扱います。カードデータの設計、毎日リセットロジックの罠、AI解釈文の生成、逆位置の扱い、RevenueCatでの収益化、App Store審査の注意点までを詳しく解説します。
AI モデル2026-04-11
Rork の AI アプリを収益化する — 原価率から逆算する料金モデルの決め方
Rork で作った AI アプリの収益化を、API 原価率から逆算して設計する方法をまとめました。フリーミアム・サブスク・クレジット制の損益構造、RevenueCat でのペイウォール実装、上限到達ユーザーの扱い、毎週見る 5 指標までを実装コード付きで共有します。
開発ツール2026-04-08
Rorkアプリ内課金(IAP)設定エラーの原因と解決方法【StoreKit・RevenueCat対応】
Rorkアプリでアプリ内課金(IAP)が動かない・テストできないエラーの原因と解決方法を徹底解説。StoreKit設定ミス・RevenueCatのAPI Key問題・Sandboxテスト失敗など12パターンのトラブルに対応。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →