2026-04-13 Matt "TK" Taylor Dimitri Mitropoulos Dan Carter 6分読了
Cloudflareの広大なAPI表面
Cloudflareは膨大なAPI表面を持っています。100以上の製品があり、ほぼ3,000のHTTP API操作があります。ますますエージェントが私たちのAPIの主要な顧客になっています。開発者はコーディングエージェントをCloudflareにアプリケーション、エージェント、プラットフォームを構築・デプロイするために持ち込み、アカウントを設定し、分析とログのためにAPIをクエリします。私たちはCloudflareのすべての製品をエージェントが必要とするすべての方法で利用可能にしたいと考えています。
例えば、私たちはCloudflareの全API を1,000トークン未満を使用する単一のCode Mode MCPサーバーで利用可能にしています。ただし、カバーすべき表面積はまだたくさんあります:
- CLIコマンド
- Workers Bindings — ローカル開発とテストのためのAPIを含む
- 複数言語のSDK
- 設定ファイル
- Terraform
- 開発者ドキュメント
- APIドキュメントとOpenAPIスキーマ
- Agent Skills
現在、私たちの多くの製品はこれらのインターフェースのすべてで利用可能ではありません。これは特に私たちのCLI — Wranglerに当てはまります。多くのCloudflare製品はWranglerにCLIコマンドがありません。そしてエージェントはCLIが大好きです。
そこで私たちはWrangler CLIを再構築し、Cloudflare全体のCLIにしています。すべてのCloudflare製品のコマンドを提供し、インフラストラクチャアズコードを使用してそれらを一緒に設定できます。
次のバージョンのWranglerの技術プレビュー
今日、私たちは次のバージョンのWranglerがどのようになるかの初期バージョンを共有しています。非常に初期段階ですが、公開で作業するときに最高のフィードバックを得られます。
npx cf を実行することで、今日技術プレビューを試すことができます。または、npm install -g cf を実行してグローバルにインストールできます。
現在、cfはCloudflare製品のほんの小さなサブセットのコマンドを提供しています。私たちはすでにCloudflare API表面全体をサポートするcfのバージョンをテストしており、エージェントと人間の両方にとって人間工学的な出力を持つために、各製品のコマンドを意図的にレビューおよび調整します。
明確にするために、この技術プレビューは将来のWrangler CLIのほんの小さな部分です。今後数ヶ月で、私たちはこれをあなたが知っていて愛しているWranglerの部分と一緒にもたらします。
スキーマとコード生成パイプラインの再考
Cloudflareでの急速な製品開発のペースと同期を保つ方法でこれを構築するために、私たちはコマンド、設定、バインディングAPI、その他を生成できる新しいシステムを作成する必要がありました。
私たちはすでにCloudflare APIのOpenAPIスキーマに基づいてCloudflare API SDK、Terraformプロバイダー、Code Mode MCPサーバーを生成しています。しかし、CLI、Workers Bindings、wrangler.jsonc設定、Agent Skills、ダッシュボード、ドキュメントを更新することはまだ手動プロセスです。これはすでにエラーが発生しやすく、多くの往復が必要であり、次のバージョンのCLIでCloudflare API全体をサポートするようにスケーリングしません。
これを行うには、OpenAPIスキーマで表現できるもの以上が必要でした。OpenAPIスキーマはREST APIを説明していますが、ローカル開発とAPI要求の両方を組み合わせた複数のアクションを含む対話的なCLIコマンド、RPC APIとして表現されたWorkers バインディング、およびこれをすべて結び付けるAgent Skillsとドキュメントがあります。
CloudflareではたくさんのTypeScriptを書いています。これはソフトウェアエンジニアリングの共通言語です。そして、Cap n' Web、Code Mode、Workers プラットフォームに組み込まれたRPCシステムのように、TypeScriptでAPIを表現する方がはるかに良く機能することを発見し続けています。
そこで私たちは、API、CLIコマンドと引数、およびあらゆるインターフェースを生成するために必要なコンテキストの完全な範囲を定義できる新しいTypeScriptスキーマを導入しました。スキーマ形式は、一貫性を確保するための規約、リント、ガードレールを備えた一連のTypeScript型です。しかし、それが私たち自身の形式であるため、OpenAPIスキーマを生成できながら、今日または将来必要とするあらゆるインターフェースをサポートするように簡単に適応させることができます。
現在、私たちの焦点のほとんどはこのレイヤーにあります — 私たちが必要とする機械を構築しているので、私たちは今、何年も提供したかったCLIおよび他のインターフェースを構築し始めることができます。これにより、Cloudflare全体で標準化できることについてより大きな夢を見始めることができます。特にコンテキストエンジニアリングCLIに関しては、エージェントにとってより良いものにします。
エージェントとCLI — 一貫性とコンテキストエンジニアリング
エージェントはCLIが一貫していることを期待しています。1つのコマンドがリソースに関する情報を取得するための構文として <command> info を使用し、別のコマンドが <command> get を使用する場合、エージェントは1つを期待し、他の存在しないコマンドを呼び出します。数百または数千人の人々がいる大規模なエンジニアリング組織では、多くの製品があり、手動でレビューを通じて一貫性を強制することはスイスチーズです。そしてあなたはCLIレイヤーでそれを強制することができますが、その後、CLIとREST APIとSDK間で命名が異なり、問題をおそらくさらに悪くします。
私たちが最初に行ったことの1つは、スキーマレイヤーで強制されるルールとガードレールを作成し始めることです。常に get であり、決して info ではありません。常に --force であり、決して --skip-confirmations ではありません。常に --json であり、決して --format ではなく、常にコマンド全体でサポートされています。
Wrangler CLIはまた、かなりユニークです — シミュレートされたローカルリソース、またはD1データベース、R2ストレージバケット、KVネームスペースなどのリモートリソースの両方で機能するコマンドと設定を提供します。これは一貫したデフォルトがさらに重要であることを意味します。エージェントがリモートデータベースを変更していると思っているが、実際にはローカルデータベースにレコードを追加していて、開発者がリモートバインディングを使用してリモートデータベースに対してローカルで開発している場合、エージェントは新しく追加されたレコードがローカル開発サーバーへのリクエストを行うときに表示されない理由を理解しません。
一貫したデフォルト、およびコマンドがリモートまたはローカルリソースに適用されているかどうかを明確に示す出力は、エージェントに明示的なガイダンスを確保します。
Local Explorer — リモートで実行できることは、ローカルで実行できるようになりました
今日、私たちはLocal Explorerもリリースしています。これはWranglerとCloudflare Viteプラグインの両方でオープンベータで利用可能な新機能です。Local Explorerを使用すると、ローカルで開発するときにWorkerが使用するシミュレートされたリソース(KV、R2、D1、Durable Objects、Workflows を含む)を内省できます。
Cloudflare APIとダッシュボード経由でこれらのそれぞれで実行できるのと同じことを、同じ基礎となるAPI構造によって駆動される、完全にローカルで実行することもできます。
何年も私たちは完全なローカル開発に賭けてきました — Cloudflare Workersだけでなく、プラットフォーション全体のためです。D1を使用する場合、D1はホストされたサーバーレスデータベース製品ですが、データベースを実行し、バインディング経由でそれと通信することができます。完全にローカルで、追加のセットアップやツールなしで。
Miniflareを通じて、私たちのローカル開発プラットフォームエミュレーター、Workers ランタイムはローカル開発と本番環境で同じAPIを提供し、ローカルSQLiteデータベースを使用して同じ機能を提供します。これにより、ネットワークアクセスを必要とせず、オフラインで機能する高速実行テストを簡単に書いて実行できます。
しかし、これまで、ローカルに保存されているデータが何であるかを理解することは、.wrangler/state ディレクトリの内容をリバースエンジニアリング、内省、またはサードパーティツールをインストールする必要がありました。
今、Wrangler CLIまたはCloudflare Viteプラグインでアプリを実行するたびに、ローカルエクスプローラーを開くように促されます(キーボードショートカット e )。これにより、Workerが現在接続されているバインディングと、それらに対して保存されているデータを確認するための単純なローカルインターフェースが提供されます。
エージェントを使用して構築する場合、Local Explorerはエージェントがデータで何をしているかを理解する素晴らしい方法であり、ローカル開発サイクルをはるかにインタラクティブにします。スキーマを検証したり、テストレコードをシードしたり、単に DROP TABLE を開始し直す必要があるときはいつでも、Local Explorerに頼ることができます。
私たちの目標ここは、ローカルデータのみを変更するCloudflare APIのミラーを提供することです。そのため、すべてのローカルリソースはリモートで使用するのと同じAPIを通じて利用可能です。ローカルとリモート全体でAPI形状を一致させることで、今後のバージョンのCLIでCLIコマンドを実行し、--local フラグを渡すと、コマンドは機能します。唯一の違いは、コマンドがこのローカルCloudflare APIミラーへのリクエストを行うことです。
本日から、このAPIは、Wranglerまたはviteプラグイン駆動アプリケーション上の /cdn-cgi/explorer/api で利用可能です。エージェントをこのアドレスに指すことで、OpenAPI仕様を見つけることができ、エージェントと話すだけで、ローカルリソースを管理できます。
Cloudflare全体のCLIに対するあなたの希望と夢を教えてください
機械を構築したので、今日のWranglerの最良の部分を取り、今可能なことと組み合わせ、Cloudflare全体を使用するための最高のCLIにWranglerを作成する時が来ました。
npx cf を実行することで、今日技術プレビューを試すことができます。または、npm install -g cf を実行してグローバルにインストールできます。
この非常に初期バージョンでは、技術プレビューが今日行うことについてのフィードバックだけでなく、Cloudflareのプラットフォーション全体のCLIから何を望むかについてのフィードバックが必要です。
簡単なワンラインCLIコマンドであるが、今日のダッシュボードで数回クリックかかるものを望むことを教えてください。wrangler.jsoncで設定できることを望むもの — DNSレコードやキャッシュルールなど。そして、エージェントが立ち往生した場所、およびエージェントが使用するためにCLIが提供することを望むコマンド。
Cloudflare Developers Discordにジャンプして、CLIに最初に追加してほしいものを教えてください。そして、すぐに多くの更新を楽しみにしてください。
Local Explorerプロジェクトのキックオフに対する貴重な貢献をしてくれたEmily Shenに感謝します。