Cloudflare OS:エージェント、アプリ、作業のためのオープンプラットフォーム

Phillip JonesDan Carter

20分で読了

この記事は以下でも利用可能です EnglishDeutschEspañolEspañol (Latinoamérica)Italiano한국어繁體中文简体中文Nederlands.

すべての組織には、目標とする使命と存在理由がありますが、社員に代々受け継がれている、組織特有の用語、業務手順、システム、ルール、仕事の進め方などもあります。従業員は、会社が持つこうした背景や知識と自分自身の経験を組み合わせながら、組織の目標達成に向けて業務を遂行しています。

仕事にはさまざまな形があり、プログラムコードを書くこと、文書やプレゼン資料を作ること、人との関係を築くこと、そして現実世界で成果を出すことなども含まれます。

例えばプログラムであれば、正しく動くか、動かないかの結果から成果が明確に判断できるため、ここ数年、エージェントにフィードバック与えることで開発者が使える「動作するコード」を作成できるようになってきましたが、開発者以外の人たちの仕事に変化はあるでしょうか?

組織全体で同じようにAIを活用することは、より難しい課題です。エージェントが組織全体で活躍できるためには、その会社独自の事情や知識を理解し、社員が仕事で利用しているシステムへアクセスできる能力が必要です。そして、そこで得た知識やアクセス権限を活用して、組織の使命達成につながる仕事を実行できなければなりません。

これを実現するため、私たちはCloudflare OSを作りました。Cloudflare OSは、社員一人ひとりに、その会社の仕事の進め方、持っている知識、利用しているシステムに合わせて動作する会社専用のAIエージェントと作業環境(ワークスペース)を提供します。

今年5月、Cloudflareでは全社員が最初のバージョンのCloudflare OSを利用できるようにしました。現在では、エンジニア以外も含むさまざまな部門の数千人の社員が、日常的に利用しています。ドキュメントやプレゼン資料の作成、定型作業の自動化、データを可視化する小規模なアプリ作成など、業務を効率化するために活用されています。

またCloudflare OSには、Cloudflareのチームが作成した「会社共通の知識やスキルのライブラリ」も用意されています。そこには、社内用語、業務手順、繰り返し行う作業の最適な方法などが、エージェントが実行できる指示として登録されています。誰か一人が、より良い仕事の進め方を見つければ、その方法を組織全体で共有し、他の人も利用できるのです。

そして今回、私たちは新しいバージョンのhttps://os.cloudflare.app/Cloudflare OSをオープンソースとして公開します。どの組織でも導入し、自社のシステムと接続し、自分たちの業務に合わせて自由にカスタマイズできます。

最初のバージョンから学んだこと

今回オープンソースとして公開するCloudflare OSは、社内で最初のバージョンを運用した経験(気付き・反省)をベースに作られています。この取り組みについては、CloudflareのCIO(最高情報責任者)であるSam Rheaのブログ記事でも紹介されています。

最初のバージョンでは、社員一人ひとりが専用のプライベートワークスペース上でエージェントを利用する形を中心としていました。しかし、いくつかの課題が見えてきました。まず、アプリは静的なもので、社内システムとリアルタイムにつながるものではありませんでした。また、同じような定型作業であっても、毎回AIエージェントを再実行する必要があり、そのたびに追加のAIモデル利用量(トークン)を消費していました。

さらに、社員同士で情報や成果物を共有し始めると、より根本的な問題が明らかになりました。MCPサーバーへのアクセスによって、エージェントが「どのツールを利用できるか」は分かります。しかし、そのツールを通じてエージェントが「どの情報やデータを実際に確認できるのか」までは管理できませんでした。社員がワークスペース、アプリ、作成物を共有するようになると、権限を持たない情報が誤って他の人に見えてしまう可能性があります。そのため、安全な共同利用を実現する仕組みが必要になりました。

そこで私たちは、これらの問題を解決するためにCloudflare OSを新しい基盤の上に作り直しました。セキュリティは、アプリ制作者やエージェント利用者任せにするのではなく、プラットフォーム自体に組み込まれている必要があります。

その結果生まれたのが、「利用する企業自身のために設計されたプラットフォーム」です。画面や操作方法を企業側で自由にカスタマイズしたり、自社で利用しているツールと接続することができます。さらに、自社独自の業務知識や仕事の進め方を反映したAIスキルやコンテキスト(背景情報)を追加することもできます。

Cloudflare OSの紹介

Cloudflare OSの始め方は、多くのAIツールと同じように、ブラウザー上で会話することですが、Cloudflare OSが異なる点は、すべての会話が、組織が蓄積・整理した知識やスキルをもとに行われることです。ワークスペースに目的を与えると、Cloudflare OSは会社が用意した知識を活用し、組織ですでに利用しているツールやデータと連携しながら、その目的を達成するための作業を進めることができます。

BLOG-3379 2.png

Cloudflare OSは、以下の3つの要素で構成されています:

  • 会社が整理した知識やスキルを基盤として動作するAIエージェントの作業環境であるエージェントワークスペース。エージェントは、この隔離された実行環境の中でコードを書いたり実行したりできます。
  • 社内データやサービスへ安全にアクセスするための、新しいセキュリティ・ガバナンス基盤
  • 社員が作成・共有・継続的に変更できる、個人向けアプリのプラットフォーム

会話を進めることで、文書作成ツール、アプリ、ワークフローへと発展し、継続して仕事をしてくれるようになります。

社内の誰もが使えるエージェント用のワークスペース

エージェント用のワークスペースは、組織内の誰もが利用できるように設計されています。ブラウザー上で操作するため、扱うために開発者の知識や、ターミナルの使い方の知識も必要もありません。 

ワークスペースには、「エージェントとのセッション」、「ステータスの永続保持」、「出力とファイル」、「各種リソースへのアクセス」、「エージェントがコードを書いたり実行したりするための隔離された実行環境」が統合されています。

また、ワークスペースには、チームや会社が蓄積してきた知識やスキルがあらかじめ登録されています。そのため、同じ作業方法を毎回ゼロから考える必要はありません。また、チームの誰かが最適な方法を見つけた場合、その知識をチーム全員で利用できるため、作業開始時に、モデルに対して同じ業務手順・専門用語・ベストプラクティスを説明し直す必要はありません。

できることの一例:

調査を実施する、質問に回答する

ワークスペースに、あるテーマについて調査するよう依頼すると、エージェントは会社の知識や、利用可能に設定した社内リソースを活用して調査を行います。また、必要な情報をすべてモデルの処理領域に読み込むのではなく、エージェント自身が、情報の検索、フィルタリング、結合、分析を行うコードを自分で記述します。

ドキュメント、プレゼン資料、スプレッドシートを作成する

ワークスペースは、調査結果をもとに、ドキュメント、プレゼン資料、スプレッドシートを作成することができます。成果物は必ずしも静的ファイルだけではなく、元となるデータに接続した、情報源が更新されると内容も更新されるものにすることも可能です。また、Google Driveなどの馴染みのあるフォーマットやサービスにエクスポートすることも可能です。

チームで利用できる、連携型アプリを作成する

ドキュメントやスプレッドシートでは不十分な場合、エージェントは独自のインターフェース、ロジック、状態管理機能を持つアプリを構築することができます。作成したアプリは、接続された社内リソースを利用でき、複数のメンバーが共同で利用できます。

決められた手順を自動実行するワークフロー 

すべての作業に、完全なエージェントによる対話処理が必要なわけではありません。多くの業務は、あらかじめ決められた手順の流れで処理でき、その中の一部だけに人間の判断が必要です。ワークスペースでは、そのような業務を、ほぼ自動化されたワークフローに変換できます。固定処理部分はコードで対応して判断が必要な部分だけモデルを利用することで、効率的かつ安定した処理を実現します。ワークフローは、必要なときに手動で実行したり、スケジュールに従って実行したり、接続されたシステムでイベントが発生した際に自動実行したりすることができます。

Cloudflare OSでは、Gatekeeper(詳細は後述のセキュリティ項目で説明)を通じて、エージェントやアプリがSoRへアクセスする際の権限を管理できます。また、組織ですでに利用している既存のModel Context Protocol(MCP)サーバーについても、MCP Server Portalを通じて連携できます。

社内データやサービスへ安全にアクセスするための、新しいセキュリティ・ガバナンス基盤

社員が仕事でAIを使い始めると、最初に求められることの一つが、社内システムへ接続するための APIキーです。当然ながら、AIは社員が仕事で利用しているシステムにアクセスできなければ、十分な価値を発揮できません。

しかし、APIキーを社員やAIエージェントに直接渡すことは危険であり、大規模な運用には向いていません。APIキーには広範囲かつ長期間有効なアクセス権を与えられていることが多いため、利用範囲を制限したり、安全に共有したり、利用状況を監査したりすることが困難です。

MCPは、エージェントが社内システムを利用するための、より安全な方法を提供します。MCPサーバー側で資格情報を保持し、エージェントにはAPIキーそのものを渡さず、定義された一連のツールを公開することができます。しかし、エージェントが利用できるツールを制御することは、最初の一歩にすぎません。MCPだけでは、エージェントが実際にどのデータや情報を参照したのかまでは管理できません。例えば、エージェントは複数のシステムから得た情報を組み合わせたり、その情報を権限の弱い別の場所へ送ったり、作成したアプリや成果物を通じて、本来その情報を見る権限がない人に公開してしまう可能性があります。承認は、取得したデータがその後どこへ流れる可能性があるかまで考慮する必要があります。

エージェントはどのアクセス権も持たない状態から始まります

Cloudflare Accessは、Cloudflare OSへアクセスできる人を制御します。Cloudflare OS内部では、すべてのエージェントやアプリは、最初はどのアクセス権も持たない状態から開始します。エージェントは特定のリソースへのアクセスを要求でき、その要求に対して、管理者は許可または拒否を行います。許可されたリソースは、生成されたコードに型付きバインディング(typed binding)として渡されます:

const issues = await env.PROJECT.listIssues({
  teamId: "ENG",
  state: "open",
});

env.PROJECTは、特定のポリシーのもとで、特定のリソースを利用する権限(capability)を表します。重要なのは、資格情報はエージェントや生成されたコードから完全に分離されているという点です。

サーバー側のコードは、外部へのネットワーク通信が無効化されたDynamic Worker上で実行されます。クライアント側のコードは、ブラウザー内のサンドボックス化されたフレーム上で動作します。どちらも、明示的に許可された権限(capability)を経由しない限り、インターネットへアクセスすることはできません。

Gatekeeperがリソースと操作を管理する

Gatekeeperは、Cloudflare OSと外部サービスの間に配置される、サービス専用のWorkerで、対象となるサービスのAPI、管理対象のリソース、実行可能な操作を理解しています。

例えば、AIエージェントにGitHubアカウント全体へのアクセス権を与えることは、広すぎる権限になる可能性があります。Gatekeeperは、単一のリポジトリへのアクセス許可、Issueのみの読み取り許可(ソースコードへのアクセスは禁止)、特定フィールドのマスキング、レート制限の適用、Pull Requestのマージ前の承認要求など、細かな権限制御が可能です。

AIエージェントや作成されたアプリから見えるのは、小さなTypeScript APIだけです。Gatekeeperは、OAuth認証の処理、認証情報の管理、アクセスルールの適用、読み取られたデータの記録を行います。さらに、外部に影響を与える操作(データ変更や公開処理など)が発生する場合は、その操作を仲介して制御します。

BLOG-3379 3.png

ポリシーは、エージェントが見た情報に基づいて適用される

最初のデータ取得だけを制御すれば十分、というわけではありません。例えば、AIエージェントがデータウェアハウスから機密性の高いテーブルを読み取り、その情報を使ってリアルタイムダッシュボードを作成する場合を考えます。このとき、そのダッシュボードを共有することが、結果的に「元のテーブル情報を、本来アクセスできない人へ共有する手段」になってはいけません。

Cloudflare OSでは、エージェントが参照したすべてのリソースを記録します。これらの参照履歴は、エージェントやその作業成果物に関連付けられた状態で保持されます。別のユーザーがそのワークスペースを開いたり、AIエージェントとやり取りしたり、AIが作成した成果物を閲覧しようとした場合、Gatekeeperが、そのユーザーが参照元のデータにアクセスする権限を持っているか確認します。

BLOG-3379 4.png

同じ参照履歴は、エージェントが外部へリクエストを送信できる条件を決めるポリシーにも利用されます。エージェントが機密データを参照した場合、その後の操作として、特定の宛先へのデータ書き込み、新規コラボレーターの追加、別のエージェントへの作業委任、外部リクエストの送信などを制限できます。

エージェントを利用する人や、アプリを作成する人が、このようなセキュリティ上の問題を毎回気にする必要はありません。Cloudflare OSのプラットフォーム自体が、このような制御を処理できるようになっています。

個人が作成・共有・変更し続けられるアプリのためのプラットフォーム

多くの業務向けツールでは、文書作成、表計算、プレゼンテーション作成などのあらかじめ決められたアプリケーションが提供されています。しかしCloudflare OSでは、1つ1つの「ファイル」が、それ自体で独立したアプリケーションになります。そのアプリは、AIエージェントが、個人・プロジェクト・チームの目的に合わせて作成します。

これらは、単なるプロトタイプではありません。別の場所へエクスポートしたり、改めて配置したりする必要はありません。それぞれがフルスタックアプリケーションで、クライアントコード、サーバーコード、API、および耐久性のある状態を備えています。アプリは初期状態では非公開ですが、ドキュメントのように共有することもできます。

すべてのアプリはWorkerとして動作する

ワークスペースにアプリ作成を依頼すると、AIエージェントは2種類のコードを作成します:

  • ブラウザー上でアプリの画面(UI)を表示するライアントコード
  • データの状態を保存し、アプリの処理や動作を実装するサーバーコード

サーバー側の処理は必要なときにDynamic Workerとして読み込まれ、Durable Object Facetとして実行されます(どちらも、このプロジェクトのためにCloudflareが開発した機能です)。Durable Object Facetにより、各アプリはCloudflare OS本体の実行環境とは分離された、専用のSQLiteデータベースを持つことができます。Dynamic Workersは軽量のV8アイソレートを使用しているため、すべてのアプリは専用のサーバーやコンテナを必要とせずに、それぞれ独自の分離された実行環境を持つことができます。

BLOG-3379 5.png

ブラウザー上のクライアントは、Cloudflareがオープンソースとして公開しているCap’n Webという、オブジェクト・ケーパビリティ方式のリモートプロシージャーコール(RPC)システムを使ってサーバーと通信します。これにより、サーバー側のメソッドを、クライアント側から通常のJavaScript関数のように呼び出すことができます。

const issues = await app.listIssues({
 status: "done",
});

そして重要なのは、エージェントも同じメソッドを呼び出せるという点です。

したがって、自分で仕事をするためのツールを構築できれば、エージェントはあなたが不在でもそのツールを使用して同じ作業を実行できるようになります。

アプリそのものを共有することも、アプリの設計を共有することも可能

Cloudflare OSで作成したアプリは、2つの方法で共有できます:

  • アプリ自体を共有する:他のユーザーと同じ状態を共有しながらリアルタイムで共同作業する。
  • アプリの設計図(ブループリント)を共有する:他のユーザーにアプリの複製物を作成できるようにする。
BLOG-3379 6.png

ブループリントから作成されたアプリに引き継がれるのは元のアプリのコードのみで、SQLiteデータベースの内容、会話履歴、資格情報、接続済みのリソースは引き継がれません。そのため、新しく作成されたアプリは、それぞれ独立したデータや設定を持った状態で開始されます。

これにより、チームでアプリを共有した場合でも、利用者はAIを使って自分用に自由に変更できます。新しい機能を追加するたびに、開発者へ機能追加を依頼したり、対応を任せたりする必要はありません。

あらゆるAIモデルを利用でき、コストも管理できる

Cloudflare OSは、さまざまなモデルと組み合わせて利用できます。AIモデルへのすべての推論リクエストはCloudflare AI Gatewayを経由するため、組織は利用できるAIモデルや、それぞれの業務にどのモデルを使用するかを一元的に管理できます。

BLOG-3379 7.png

すべての作業に、最も高価なAIモデルが必要なわけではありません。例えば、毎朝未読メールを要約するだけのために、最先端かつ最も高価なAIモデルを使いたいとは限りません。AI Gatewayはこのような制御も可能で、高価なモデルを本当に難しい業務にだけ使用できるようにします。

また、すべての推論リクエストは、それを実行したユーザー、チーム、またはワークスペースに関連付けて記録されます。管理者は、AI推論の利用コストがどこで発生しているかを把握し、予算やレート制限を設定したり、利用上限に達した場合の動作を決めることができます。 

オープンソースだから、自社向けにカスタマイズできる

Cloudflare OSは本日から利用可能になり、オープンソースとして公開されています。ぜひcloudflare-osのGitHubリポジトリをご覧ください。Cloudflare OSは、自身のCloudflareアカウントにデプロイし、自社のAccessポリシー、AI Gatewayの設定、データ、各種連携機能を利用して運用できます。

Cloudflare社内で利用している環境は、Cloudflareのシステム、用語、ポリシー、業務の進め方に合わせて構成されています。同様に、皆さんの環境も、自社の組織に合わせて構成できるようになっています。

Cloudflare OSは、コア部分を変更することなく、画面インターフェースをカスタマイズしたり、独自のGatekeeperを追加したり、組織固有の機能を実装したりできるよう設計されています。

今回公開するリポジトリは2つあります。1つはCloudflare OSのコア、もう1つはCloudflare社内で実際に運用している構成をもとにしたサンプルデプロイメントです。このデプロイメント用リポジトリは、コア部分を変更(パッチ適用)することなく利用でき、設定、独自UI、社内システムとの連携、分析機能、デプロイパイプラインなどを追加・管理するための土台として利用できます。

パートナー企業とともに導入・展開

ソースコードは、あくまでも出発点にすぎません。Cloudflare OSを組織にとってより価値のあるものにするのは、組織独自の知識、スキル、ワークフロー、社内システム、そしてポリシーです。

Cloudflareの戦略パートナーであるPresidioとHappy Cogは、それぞれの組織の業務や運用方法に合わせてCloudflare OSをカスタマイズし、組織全体への導入を支援します。

パートナーは、組織内で共有するスキルやナレッジの整備、独自のユーザーインターフェースの構築、GatekeeperやMCP Server Portalを介した社内システムとの連携、さらにセキュリティ、AIモデル、コスト管理の設定まで幅広くサポートします。

その結果、自社ブランドのCloudflare OSを、自社システムと連携した形でCloudflare上に構築し、実際の業務や働き方に合わせて運用できるようになります。

はじめましょう

Cloudflare OSは本日からGitHubで利用できます。ソースコードを確認したり、デモを試したり、スターターリポジトリを使って数分でご自身のCloudflareアカウントにデプロイしたりできます。

これはまだ始まりにすぎません。今後は、Cloudflareダッシュボードから簡単に利用できるフルマネージド版Cloudflare OSの提供や、開発ワークフロー向けのコンテナ対応、さらにSlackなどのチャットツールで利用できるワークスペース機能の追加を進めていく予定です。

Cloudflare OSについて興味があり、私たちのチームと話してみたい方は、ぜひお気軽にご連絡ください。お問い合わせは、このフォームから受け付けています。