ANTIGRAVITY LABEN
記事一覧/Agents & Manager
Agents & Manager/2026-04-28上級

AIエージェントを「商品」にする — Antigravity で課金可能な自動化サービスを構築する方法

Antigravity のマルチエージェント機能を使って、クライアントに販売できる自動化サービスを構築する方法を解説します。AgentKit 2.0 のオーケストレーション設計から課金モデルまで、実装コード付きです。

antigravity435agents90agentkit-2.0multi-agent21monetization15automation-serviceorchestration15saas10

プレミアム記事

AIエージェントが仕事を自動化してくれる——これはもう多くの人が体験しています。でも、その自動化を「他の人にも売れる商品」として設計するとなると、話は一気に変わります。

有料メンバーシップを自分のサイト群で運用しはじめて、最初に実感したのは「自分のための自動化」と「お金をいただく自動化」のあいだにある、思いのほか深い溝でした。

個人開発として複数のブログを自動投稿の仕組みで回している私にとって、エージェントに記事の下書きを任せること自体は、もう日常の一部です。けれど、その同じ仕組みを「対価をいただくサービス」に変えようとした瞬間、求められる設計の水準が一段も二段も上がることに気づきました。失敗の意味が変わるからです。

ここでは Antigravity のマルチエージェント機能を使って、実際にクライアントへ販売できるエージェントサービスを設計・実装する方法を、実装コード付きで丁寧にたどっていきます。AgentKit 2.0 のオーケストレーション設計から従量課金まで、私自身が運用で踏んだ手順に沿ってご紹介します。

エージェントを「商品」として考える——何が変わるのか

個人用の自動化エージェントと、販売目的のエージェントサービスでは、以下の点で根本的に異なります。

個人用エージェント: 失敗は自分の責任で対応できます。「今日は精度が悪かった」で済みます。

商品化したエージェント: 精度が落ちたら、クライアントからの信頼が失われます。なぜなら、彼らは「月額料金を払ってでも使う価値がある」という期待値を持ってサービスを使うからです。

商品化するには、次の3つが必須です。

  1. 安定性 — エージェントの失敗をハンドリングし、エラー時の回復フローを組む
  2. 測定可能性 — 実行回数・トークン消費量を記録し、usage-based pricing で課金できるようにする
  3. 透明性 — クライアント向けダッシュボードで、彼らが「何にいくら料金を払ったか」を可視化する

これら3つを実装してはじめて、「エージェントという自動化技術」が「ビジネスになる商品」に変わります。

AgentKit 2.0 のマルチエージェントオーケストレーション設計

Antigravity の AgentKit 2.0 では、Manager Surface を使って複数のエージェントを組織的に管理できます。このオーケストレーション層が、商品化の鍵になります。

Manager Surface の役割

Manager Surface は「管理エージェント」として機能し、複数のサブエージェント(Specialist Agents)を制御します。クライアント向けサービスでは、この構成が非常に有効です。

// manager-orchestrator.js
// Manager Surface を使ったオーケストレーション設計
 
const Anthropic = require("@anthropic-ai/sdk");
 
const client = new Anthropic();
 
const managerPrompt = `You are a Manager Agent coordinating multiple specialist agents for client automation.
 
Your responsibilities:
1. Parse client request and determine which specialist agents are needed
2. Delegate work to appropriate agents in sequence or parallel
3. Aggregate results and ensure quality
4. Handle agent failures gracefully with retry logic
5. Log all operations for billing and audit
 
Current specialist agents available:
- ReportGenerator: Creates weekly/monthly reports from data
- DataAnalyzer: Extracts insights from datasets
- ContentProducer: Generates marketing content at scale
 
For each request:
1. Identify required agents
2. Check execution quota (max 10 concurrent)
3. Delegate with context
4. Validate results before returning to client
5. Log execution details for billing`;
 
async function orchestrateClientRequest(clientId, request, executionLog) {
  const response = await client.messages.create({
    model: "claude-3-5-sonnet-20241022",
    max_tokens: 2048,
    system: managerPrompt,
    messages: [
      {
        role: "user",
        content: `Client ID: ${clientId}\nRequest: ${request}\n\nExecution Log (for context): ${JSON.stringify(executionLog, null, 2)}`,
      },
    ],
  });
 
  const managerDecision = response.content[0].text;
  const usage = response.usage;
 
  // ここがポイント: トークン消費量をログに記録
  executionLog.push({
    timestamp: new Date().toISOString(),
    agentType: "Manager",
    inputTokens: usage.input_tokens,
    outputTokens: usage.output_tokens,
    totalTokens: usage.input_tokens + usage.output_tokens,
    clientId: clientId,
    operation: "orchestration_decision",
  });
 
  return {
    decision: managerDecision,
    tokenUsage: usage,
    executionLog: executionLog,
  };
}
 
module.exports = { orchestrateClientRequest };

エージェント失敗時の回復フロー

実際のクライアント運用では、エージェントが失敗することは必ずあります。その時にいかに「見た目は正常に機能している」ように見せるかが重要です。

// agent-resilience.js
// エージェント失敗時の回復ロジック
 
async function executeAgentWithRetry(
  agentName,
  task,
  maxRetries = 3,
  executionLog
) {
  let lastError = null;
 
  for (let attempt = 0; attempt < maxRetries; attempt++) {
    try {
      const result = await executeSpecialistAgent(agentName, task);
 
      executionLog.push({
        timestamp: new Date().toISOString(),
        agentName: agentName,
        status: "success",
        attempt: attempt + 1,
        taskSummary: task.substring(0, 100),
      });
 
      return { success: true, result, attempts: attempt + 1 };
    } catch (error) {
      lastError = error;
 
      executionLog.push({
        timestamp: new Date().toISOString(),
        agentName: agentName,
        status: "failed",
        attempt: attempt + 1,
        error: error.message,
        retriedAt: new Date().toISOString(),
      });
 
      // エクスポーネンシャルバックオフ: 1秒、2秒、4秒...
      if (attempt < maxRetries - 1) {
        await new Promise((resolve) =>
          setTimeout(resolve, Math.pow(2, attempt) * 1000)
        );
      }
    }
  }
 
  // すべてのリトライ失敗時は、フォールバック結果を返す
  executionLog.push({
    timestamp: new Date().toISOString(),
    agentName: agentName,
    status: "fallback_triggered",
    reason: `All ${maxRetries} retries failed. Error: ${lastError.message}`,
  });
 
  return {
    success: false,
    fallbackResult: generateFallbackResponse(agentName, task),
    attempts: maxRetries,
    error: lastError.message,
  };
}
 
function generateFallbackResponse(agentName, task) {
  // フォールバック: 前回のキャッシュ結果やテンプレート応答を返す
  return {
    source: "fallback",
    message: `${agentName} temporarily unavailable. Returning cached result.`,
    timestamp: new Date().toISOString(),
  };
}
 
module.exports = { executeAgentWithRetry, generateFallbackResponse };

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

この記事の続きを読む

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

この記事で得られること
自分用の自動化を有料サービスへ引き上げる際に必要な、安定性・測定可能性・透明性の実装勘所
AgentKit 2.0 のオーケストレーションと従量課金(API Gateway+トークン計測+Stripe)の具体コード
運用して初めて分かる、失敗検知・計測ログ・価格設計のリアルな判断軸
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Agents & Manager2026-04-10
Antigravityマルチエージェント設計の実践ガイド — エージェント間通信エラーから本番安定稼働まで
Antigravityでマルチエージェントを設計・実装する完全ガイド。エージェント間通信エラーの解決から本番稼働パターン、パフォーマンス最適化まで体系的に解説します。
Agents & Manager2026-06-19
並列にするか、順番に残すか — 複数エージェントを束ねるときの損益分岐
複数のエージェントを並列で走らせるべきか、直列のまま残すべきか。調整コストと待ち時間短縮の損益分岐をざっくり見積もる式と、4サイト運用での実際の線引き、判定を自動化する小さなスクリプトまでまとめました。
Agents & Manager2026-06-19
複数エージェントをどう束ねるか: 並列化する仕事と直列に残す仕事の線引き
Antigravity 2.0 で複数エージェントの真の並列実行が可能になりました。ただ全部を並列にすれば速くなるわけではありません。どの作業を並列に分け、どこを直列のまま残すか。依存関係と競合の観点から、破綻しないオーケストレーション設計を考えます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →