Cloudflare、AIエージェント開発のための「Agents SDK」を発表ーーステートフル開発とプラットフォーム統合を実現

Cloudflare Agents SDKはAIエージェント開発のためのJavaScriptフレームワーク。タスクの自律実行、リアルタイム通信、状態管理、スケジューリング機能を提供。開発方法を解説。

はじめに:AIエージェント開発の新時代

Cloudflareが新しい「Agents SDK」を発表し、AIエージェント開発の分野に本格参入しました。このSDKは、AI駆動型エージェントの構築と展開を容易にし、タスクの自律実行、リアルタイム通信、状態管理、スケジューリングなどの機能を提供します。

従来のAIアシスタントが人間の入力を補助するコパイロット型だったのに対し、Cloudflare Agentsは完全にタスクを自動化し、ユーザーに代わって複雑な作業を実行することができます。この記事では、Cloudflare Agents SDKの特徴や機能、そして開発者がこれを活用する方法について詳しく解説します。

Cloudflare Agents SDKとは

Cloudflare Agents SDKは、AIエージェントを構築・展開するためのJavaScriptフレームワークです。このSDKを使用することで、開発者は以下のような機能を持つエージェントを簡単に作成できます:

  • タスクの自律実行
  • クライアントとのリアルタイム通信
  • AIモデルの呼び出し
  • 状態の永続化
  • タスクのスケジューリング
  • 非同期ワークフローの実行
  • ウェブの閲覧
  • データベースへのクエリ
  • ヒューマンインザループ(人間の介入)のサポート

最初のエージェントを構築する

Agents SDKを使用したエージェント開発は非常に簡単です。以下のコマンドで、スターターテンプレートを使用した最初のエージェントを作成できます:

# インストール
npm create cloudflare@latest agents-starter -- --template=cloudflare/agents-starter

# デプロイ
npx wrangler@latest deploy

既存のCloudflare Workersプロジェクトにエージェント機能を追加する場合は、以下のコマンドでパッケージをインストールできます:

npm i agents-sdk

そして、Agentクラスを継承して最初のエージェントを定義します:

import { Agent, AgentNamespace } from 'agents-sdk';

export class MyAgent extends Agent {
  // エージェントにメソッドを定義:
  // https://developers.cloudflare.com/agents/api-reference/agents-api/
  //
  // 各エージェントはthis.setStateとthis.sqlによる組み込み状態管理
  // this.scheduleによる組み込みスケジューリング
  // WebSockets、HTTPリクエスト、状態同期をサポート
  // タスクに必要な限り、数秒、数分、数時間実行可能
}

Cloudflare Agents SDKの主要機能

1. バッテリー内蔵(状態管理)

Agents SDKには、状態管理機能が組み込まれています:

  • エージェントとクライアント間の状態自動同期
  • 状態変更時のイベントトリガー
  • 各エージェント専用のSQLデータベースへの読み書き

この状態管理機能により、エージェントは会話の文脈やユーザー設定を覚えておくことができ、長期的なタスクの実行が可能になります。

2. コミュニケーション機能

Agents SDKは、WebSocketsを通じてリアルタイムの通信を実現します:

  • エージェントとWebSocketsで接続
  • リアルタイムでの更新をクライアントにストリーム配信
  • 長時間実行される推論モデルからのレスポンス処理
  • 非同期ワークフローの結果共有
  • SDK内に含まれるuseAgentフックを使用したチャットアプリ構築

3. 拡張可能性

Agents SDKで構築されたエージェントは非常に柔軟で拡張性があります:

  • 好みのAIモデルを使用可能
  • 独自のヘッドレスブラウザサービスとの連携
  • 他のクラウドでホストされているデータベースからのデータ取得
  • エージェントへの独自メソッド追加と呼び出し

Model Context Protocol (MCP) のサポート

Cloudflare Agentsは、Model Context Protocol (MCP)をサポートしています。MCPは、Anthropicによって最初に導入され、OpenAI、Cursor、Copilotなどのプロバイダーも採用している、AIエージェントと外部サービスの相互作用のための標準プロトコルです。

Agents SDKの最新版では、以下のMCP関連機能が追加されました:

リモートMCPクライアント機能

AIエージェントは、MCPを通じて外部サービスに接続し、相互作用できるようになりました:

  • トランスポート:SSEとHTTP経由でリモートMCPサーバーに接続
  • 接続管理:すべての接続の状態を追跡し、接続が失われた場合に自動的に再接続
  • 機能発見:MCPサーバーが提供するすべての機能、ツール、リソース、プロンプトを自動的に発見
  • リアルタイム更新:サーバーのツール、リソース、プロンプトが変更されると、クライアントは通知を受け取り、内部状態を更新
  • 名前空間:複数のMCPサーバーに接続する場合、すべてのツールとリソースに自動的に名前空間が設定され、競合を回避

認証・認可機能の組み込み

Agents SDKには、OAuth認証フローが直接組み込まれており、AIエージェントが安全にリモートMCPサーバーに接続・認証できます:

  • OAuth 2.1プロトコルのサポート
  • サービスのログインページへのユーザーリダイレクト
  • コードチャレンジの生成と認可コードのアクセストークンへの交換
  • アクセストークンを使用したMCPサーバーへの認証リクエスト

さらに、StytchやAuth0、WorkOSとの統合により、MCPサーバーの認証・認可システムを簡単に構築できます:

  • メール、ソーシャルログイン、SSO、MFAによる認証
  • MCPツールに直接マッピングされるスコープと権限の定義
  • 要求された権限に対応する同意ページの表示
  • エージェントが許可されたツールのみを呼び出せるよう権限を強制

エージェントのユースケース

休暇予約の例

バケーションの予約というユースケースを通じて、エージェント、ワークフロー、コパイロットの違いを理解しましょう:

従来のワークフロー自動化

従来の自動化システムは、日付、場所、予算などの入力を受け取り、定義済みのAPIを固定順序で呼び出します。ただし、フライトの売り切れやホテルの空室がないなど、予期しない状況が発生すると適応できません。

AIコパイロット

コパイロットは、ホテルや旅程の推奨事項をユーザーの好みに基づいて提供する知的アシスタントとして機能します。質問があれば、自然言語クエリを理解し応答することができますが、エンドツーエンドのアクションを自分で実行することはできません。

エージェント

エージェントは、AIの判断能力と関連ツールを呼び出す能力を組み合わせてタスクを実行します。エージェントの出力は、以下の要素により非決定的です:

  • リアルタイムの空室状況と料金の変化
  • 制約条件の動的な優先順位付け
  • 障害からの回復能力
  • 中間結果に基づく適応的な意思決定

つまり、フライトやホテルが満室の場合、エージェントは再評価し、変更された日付や場所を使用して新しい旅程を提案し、旅行予約を継続して実行できます。

Cloudflareプラットフォームで構築する理由

使用した分だけ課金されるプラットフォーム

エージェントの実行には、停止、進行、待機のパターンをシームレスにサポートできるシステムが必要です。Cloudflareでは、コードが実行されていないときの長時間実行プロセスに対して支払う必要はなく、CPU時間のみが課金されます。これは、壁時計時間とは対照的です。「壁時計時間」とは、文字通り壁にかかった時計で計測される時間、つまり処理の開始から終了までに経過した実時間のことです。

例えば、LLMを呼び出す場合、CPU時間(2〜3ミリ秒)と壁時計時間(10秒)の差は桁違いになることがあります。Workersを使用すると、この差額はコスト削減として還元されます。

サーバーレスAI推論

Cloudflareは、推論にも同様のサーバーレスアプローチを採用しています。Workers AIを使用すると、推論APIを呼び出すときにのみ支払いが発生し、使用されていないインフラではなく、インフラ全体について考える必要がなくなります。

耐久性のある実行のためのプラットフォーム

Durable ObjectsとWorkflowsは、永続性と信頼性を必要とする非同期タスクの保証された実行を提供するロバストなプログラミングモデルです。これらは以下のような複雑な操作に理想的です:

  • 長時間実行の深い思考LLM呼び出し
  • 人間介在の承認プロセス
  • 信頼性の低いサードパーティAPIとの相互作用

リクエスト間で状態を維持し、再試行を自動的に処理することで、これらのツールは複雑なマルチステップタスクを実行できる洗練されたAIエージェントの構築に堅牢な基盤を作ります。

Durable Objectsの無料利用枠

Cloudflareは、Agents SDKを使用する開発者をサポートするために、これまで有料プランでのみ利用可能だったDurable Objectsを無料利用枠でも利用できるようにしました。これにより、コミットメントなしでAIエージェントの構築を開始できます。

Durable Objectsは、コンピュートと耐久性のあるストレージを提供し、Workersと組み合わせることで、ステートフルでサーバーレスなアプリケーションを実現します。各Durable Objectは、以下のタスクを行うステートフルなコーディネーターです:

  • クライアントのリアルタイム相互作用の処理
  • LLMなどの外部サービスへのリクエスト
  • ゼロレイテンシーSQLiteストレージでのエージェント「メモリ」の作成

Durable Objectsは数百万のエージェントへの簡単なスケールアウトを可能にし、各エージェントはユーザーの近くで作成され、高速なパフォーマンスを実現します。

無料利用枠の制限

無料プランでは、以下の制限内でDurable Objectsを使用できます:

  • コンピュート:リクエスト - 1日あたり100,000
  • コンピュート:期間 - 1日あたり13,000 GB-秒
  • ストレージ:読み取り行数 - 1日あたり500万
  • ストレージ:書き込み行数 - 1日あたり100,000
  • ストレージ:SQLストアデータ - 合計5 GB

始め方

Cloudflare Agentsについて詳しく知りたい場合や、エージェント構築の開始方法については、agents.cloudflare.comを参照してください。

このサイトには、エージェントの基本から、Cloudflareがエージェント構築をどのようにサポートできるかまでの情報が掲載されています。

まとめ:AIエージェント開発の未来

Cloudflare Agents SDKは、AIエージェント開発の新しい時代を切り開くツールです。状態管理、リアルタイム通信、AIモデル統合などの機能を組み合わせることで、開発者は複雑なタスクを自律的に実行できるエージェントを構築できます。

プラットフォームの特性上、使用した分だけ課金される経済的なモデルと、エージェントを必要に応じて休止させる機能により、コスト効率の良いソリューションが実現します。また、OAuth統合やMCPサポートにより、セキュアなエージェント開発が可能になります。

AIエージェントは、単なるコパイロットを超え、完全に自動化されたタスク実行のためのインテリジェントなシステムとなりつつあります。Cloudflare Agents SDKは、そのような未来を構築するための強力なツールといえるでしょう。


参考資料

Cloudflare Agents公式ドキュメント

Cloudflare、AIエージェント構築に最適なプラットフォームを目指す - Cloudflare Blog

MCP、認証・認可、Durable Objects無料利用枠 - Cloudflare Blog

AIモデルの使用 - Cloudflare Docs

Cloudflare Agents GitHubリポジトリ

On this page