blog.dopana

Back

もし、社内のすべてのメンバーが安全にAIエージェントを利用して、業務を自動化し、データを分析し、カスタムのウェブアプリケーションを構築できるとしたらどうでしょうか?

通常、AIエージェントに社内システムへのアクセスを許可するには、APIキーを渡す必要があります。しかし、APIキーは権限が広すぎることが多く、有効期限も長く、露出させるのは非常に危険です。エージェントが暴走したり、悪意のある入力(プロンプトインジェクション)を受け取ったりした場合、セキュリティ侵害は瞬時に発生します。

この問題を解決するために、Cloudflareは Cloudflare OS を発表しました。これは、組織がAIエージェントを安全にデプロイし、決定論的なワークフローを実行し、ビジネスロジックに合わせたコラボレーションアプリを構築できるように設計されたオープンソースプラットフォームです。

10歳でもわかるCloudflare OSの仕組み(ELI5)#

あなたの会社を、厳重に管理された「秘密の図書室」だと想像してください。

通常、AIエージェントが制限区域の本を使ってレポートを書きたい場合、図書室の 「マスターキー(APIキー)」 を渡さなければなりません。キーを手に入れたエージェントは、どの部屋でも開き、どの本でも読め、秘密の情報を外の世界に持ち出したり漏洩させたりする危険があります。

Cloudflare OS は全く異なるアプローチを取ります。エージェントにマスターキーを渡す代わりに、以下の2つの仕組みを導入します。

  1. 防音された閲覧室(隔離されたランタイム): エージェントは安全な部屋に入れられ、そこで本を読んで作業を行いますが、部屋から出たり、外の世界と直接通信したりすることはできません。
  2. 司書(ゲートキーパー): ドアの前には「司書」が立っています。エージェントが本を必要とするときは、司書に頼みます。司書は指定された本だけを持ってきて、極秘のページを黒塗りし、エージェントが何を読んだかを正確に記録(ログ)します。もしエージェントが秘密の情報をハガキに書いて外に郵送しようとしても、司書がそれをブロックします。

この仕組みにより、エージェントにツールの構築、データベースの取得、コードの実行を安全に任せることができます。

コアアーキテクチャ#

Cloudflare OSは、主に3つの柱で構成されています。

graph TD
    User[ユーザーのブラウザ] -->|Capn Web RPC| Workspace[エージェントワークスペース]
    Workspace -->|隔離されたV8ランタイム| Runner[Dynamic Worker / サンドボックス]
    Runner -->|TypeScript APIバインディング| Gatekeeper[Gatekeeper Worker]
    Gatekeeper -->|OAuth & 監査| ExternalService[(社内DB / Github / APIなど)]
    style Gatekeeper fill:#ff5f07,stroke:#333,stroke-width:2px
    style Runner fill:#ff9910,stroke:#333,stroke-width:2px

1. エージェントワークスペース(Agent Workspace)#

ワークスペースは、ブラウザ上の主要なユーザーインターフェースです。以下を統合しています:

  • アクティブな対話セッション。
  • インプット、アウトプット、生成されたファイルの管理システム。
  • 独立したコード実行ランタイム(V8 isolate駆動)。これにより、エージェントは大規模なデータセットをLLMのコンテキストウィンドウに直接読み込む代わりに、コードを書いてデータをローカルで実行・分析できます。

2. ゲートキーパー(Gatekeeper):安全なデータアクセス#

生のAPI資格情報をエージェントに渡す代わりに、Cloudflare OSは Gatekeepers を使用します。

  • ゲートキーパーは、Cloudflare OSと外部API(GitHubやPostgreSQLデータベースなど)の間に位置する軽量なWorkerです。
  • 隔離されたコードに対して制限されたTypeScript API(例:env.PROJECT.listIssues())のみを提供します。
  • 資格情報はゲートキーパーから決して出ないため、厳格な監査ログ、特定フィールドのマスキング、およびレート制限の適用が可能です。

3. 個人用・変更可能なアプリ(Personal, Modifiable Apps)#

Cloudflare OSでは、ユーザーはエージェントに完全なウェブアプリケーションを構築させることができます。

  • すべてのアプリは、Dynamic Worker と Durable Object Facet の組み合わせとして実行され、状態管理のための独立したSQLiteデータベースを持ちます。
  • クライアントUIとサーバーバックエンド間の通信には、オープンソースのオブジェクト機能RPCプロトコルである Cap’n Web を使用します。
  • 作成したアプリは同僚と直接共有できるほか、設計図(blueprints) として配布することも可能です(コード構造はコピーされますが、個人のデータや資格情報は除外されます)。

観察ログとデータ系統(Observation Logs)#

Cloudflare OSの最も優れた機能の一つは、「エージェントが何を見たか」を追跡する能力です。

エージェントがゲートキーパーを介してデータを読み取ると、そのリソースはエージェントの 「観察ログ(Observation Log)」 に追加されます。このデータを表示するダッシュボードを作成してチームメイトと共有すると、Cloudflare OSは観察ログをチェックし、そのチームメイトが元のデータソースへのアクセス権を持っているかを検証します。権限がない場合、アクセスは自動的に拒否されます。

同様に、観察ログに機密データが含まれている場合、プラットフォームのポリシーエンジンは外部へのネットワークコールを自動的に無効化し、データ漏洩を防ぎます。

クイックスタート#

Cloudflare OSはオープンソースであり、数分で自身のCloudflareアカウントにデプロイできます。

1. スターターリポジトリのクローン#

git clone https://github.com/cloudflare/cloudflare-os-starter.git
cd cloudflare-os-starter
bash

2. 依存関係のインストール#

bun install
bash

3. Cloudflareへのデプロイ#

wrangler.tomlにCloudflareのアカウントIDを設定し、デプロイを実行します:

bun run deploy
bash

[!TIP] モデル推論のリクエストをルーティングするために、Cloudflare AI Gateway の設定を忘れないでください。これにより、APIコストの監視、トークン制限の設定、および複数のモデル(Llama 3、Claude、GPT-4など)のシームレスな切り替えが可能になります。

参考文献#