Cloudflare AI Searchで手軽にRAGを構築してみる
X-tech推進本部 副本部長 加藤Cloudflare AI Search(旧:AutoRAG)は、RAG向けの検索基盤をフルマネージドで提供するサービスです。データ取り込みから検索、LLMによる回答生成までの一連のRAGパイプラインを、インフラ管理をほぼ意識せずに構築できます。
RAGを自前で構築する場合、本来はデータの取り込み、チャンキング、ベクトル化、検索、回答生成などの工程を個別に設計・実装する必要があります。
Cloudflare AI Searchでは、これらの多くがGUIベースで提供されており、設定中心でRAGを試せる点が特徴です。この記事では、サービスの概要と基本的な使い方を紹介します。
※ Cloudflare AI Searchはまだベータ扱いのサービスのため、利用する際はご注意ください。
Cloudflare AI Searchでできること
Cloudflare AI Searchの主なポイントは以下の通りです。
- シンプルなデータソース構築:Cloudflare R2に保存されたドキュメントや、NLWebを使ってWebサイト全体をデータソースとして接続できます。
- 自動インデックス:接続されたデータソースを定期的に監視し、コンテンツの追加や変更をインデックスへ反映します。
- 精度向上の仕組み:曖昧な質問を検索に適したキーワードに変換するクエリーの書き換えや、検索結果の優先順位を再評価するリランキングなどの便利なオプション機能が提供されています。
構築から利用までの流れは、大きく以下の2つに分かれます。
- インデックス作成:データソースから情報を読み込み、Markdown形式への変換、情報の断片化、ベクトル化を行い、Cloudflare Vectorizeへの保存が自動で行われます。
- クエリー実行:ユーザーの質問に応じて関連情報を検索し、その結果をもとにLLMが回答を生成します。
データソースの選択肢
データソースとしては、Cloudflare R2バケットを使う方法と、NLWebを使う方法の二通りがあります。
R2
R2はオブジェクトストレージで、テキストファイルやPDF、画像などをアップロードするだけで、Cloudflareがスキャンからインデックス化までを自動的に行います。
PDFや画像をアップロードした場合は、内部的にWorkers AIによるMarkdown Conversionが実行されます。サポートされているファイルタイプはFile typesを参照ください。
またR2はAWS S3と互換性があり、S3 APIを使ってファイルをアップロードできます。
GitリポジトリにあるMarkdownファイルなどをGitHub Actionsを通してR2にアップロードし、継続的にデータソースを更新するなども可能です。

NLWeb
NLWebは、Webサイト全体を、会話型AIエージェントがアクセス可能なプロトコルに対応させることを目指したMicrosoft発のプロジェクトです。
NLWebの詳細についてはMicrosoft Build 2025で発表されたThe Making of NLWeb | BRK240 - YouTubeをYouTubeをご覧いただくのがおすすめです。
Cloudflare AI SearchにはNLWeb用のテンプレートが用意されており、このテンプレートを使うと、Webサイトのクロールから、設定の最適化、各種エンドポイント(Cloudflare Worker)のデプロイまで自動で行われます。
NLWebを使うには対象のドメインがCloudflareのカスタムドメインとして登録されていて、かつsitemap.xmlが用意されていることが前提条件などいくつか注意点があります。
作成したAI Searchインスタンスの利用方法
作成したAI Searchインスタンスは、基本的にはREST APIか、Workers Binding(env.AI)を通じてアクセスできます。
REST API
APIトークンとCloudflareのAPIエンドポイント(api.cloudflare.com)を通じて以下のAPIを利用できます。
/ai-search:検索と回答生成を一度に行います。/search:回答は生成せず、関連するドキュメントの断片のみを返します。
Workers Binding
Workers Bindingは、既存のCloudflare WorkerからAI Searchを内部的に呼び出すために接続する方法です。
実装はとても簡単で、まずはwrangler.jsoncに設定を追加します。
{
"ai": {
"binding": "AI"
}
}
次に、Worker内から関数を呼び出します。
const { response } = await env.AI.autorag('AI Searchのインスタンス名').aiSearch({
query: '検索クエリ'
})
呼び出せる関数はREST APIと同様にai-search()とsearch()の2種類です。
NLWebのAPIエンドポイント
NLWeb用テンプレートを使った場合は、Cloudflare Workerが自動的に公開されます。このWorkerは以下を提供します。
- チャットUIを持つ静的サイト
- NLWeb Rest APIで定義された2つのエンドポイント
公開される静的サイトは以下のようなシンプルなUIのページです。

また、エンドポイントは以下の通りです。
/ask:ユーザーからの自然言語による質問を受け付ける対話型のエンドポイント/mcp:ChatGPTのような外部MCP対応クライアントがデータにアクセスするためのエンドポイント
/mcpエンドポイントが公開されるということはつまり、NLWeb用テンプレートを使えば、Webサイトは追加実装なしにRAG基盤として機能し、そのままMCP対応のインターフェースを持つことになります。とても画期的ですね!
プレイグラウンドでの検証
Cloudflareの管理画面にはプレイグラウンド機能が提供されており、簡単に試すことができます。
以下のキャプチャは、当社Webサイトのコラム原稿(Markdown)を約1年分R2にアップロードして試した例です。

「ミツエーリンクスにとっての2025年の1年間の出来事をまとめてください」というクエリーに対し、中期経営計画の策定やX-techの新設など、昨年末に公開したコラムをもとに回答が生成されていることが分かります。
一方で、記事内で言及されている2026年度の予定が2025年の出来事として混ざるなど、精度の課題はあり、より高度なモデルを利用するなどの調整が必要になりそうです。
まとめ
Cloudflare AI Searchは、RAGの検証や小規模導入を非常に低いコストで始められるサービスです。R2やVectorizeには試してみるだけであれば十分なほどの無料枠が用意されています。
社内ドキュメント検索、コラムやナレッジサイトのFAQ化、Webサイトを対象とした会話型インターフェースの試作など、ぜひ試してみてください。