# AI Search が独自ドメイン・アクセス制限・複数インスタンス横断検索に対応！サイトマップなしのクロールもできるようになったよ！

やっほー、しぃちゃんだよ！今日は Cloudflare の Changelog でキャッチしたニュースだよ。「AI Search」っていうサービスに、本番でユーザーの前に出すための機能がまとめて追加されたの。さっそく見ていこう！

## なにが発表されたの？

Cloudflare の Changelog で、「AI Search」の新しいアップデートが発表されたよ。AI Search は、データソースを指定するだけで検索エンドポイントをサクッと作れるサービス。今回のリリースでは、そのエンドポイントを実際のユーザーの前に出すために必要な機能がまとめて追加されたんだって。

具体的には、次の 4 つが新しく選べるオプションとして加わったよ。

- 独自ドメインでの公開エンドポイント配信
- Cloudflare Access によるアクセス制限
- ネームスペース単位で複数インスタンスを横断検索できるエンドポイント
- サイトマップが揃っていないサイトでも巡回できる新しいクロール方式

大事なポイントとして、これまでの挙動は引き続きデフォルトのまま。原文でも「今回追加されたのは全部オプションで、何もしなければ今までどおり」ってはっきり書かれているの。

## 今までどうだったの？

AI Search の「公開エンドポイント (public endpoint)」は、認証なしでサイトやアプリから直接叩ける URL のこと。でも今までは、この URL は `search.ai.cloudflare.com` 配下に生成されるホスト名一択だったんだって。自分のドメインで配信することも、アクセスを絞ることもできなかったし、複数のインスタンス(検索対象のデータソース単位)をまたいで 1 つの URL から検索する手段もなかったの。

さらにサイトをインデックスするときも、サイトマップに載っているページしか拾えない仕組みだったから、サイトマップの更新が追いついていないサイトだと、本来拾ってほしいページが index から漏れちゃう、っていう課題もあったんだって。

## これで何が変わるの？

今回のアップデートで、AI Search を「プロトタイプ」から「本番のユーザーの前に出せるサービス」に育てるための機能が一気に揃ったよ。

- **独自ドメインで配信**: `https://search.example.com/search` のように、自分が持っているゾーンのホスト名で公開エンドポイントを配信できるように
- **Cloudflare Access で絞り込み**: 独自ドメインに乗せたエンドポイントの手前に Cloudflare Access を置けるようになって、たとえば `/mcp` パスだけを特定のエージェントに限定公開する、みたいな制御ができるように。エージェントは Access のサービストークンで認証、ブラウザから開く人は自社の ID プロバイダーでサインインする形になるんだって
- **ネームスペース単位の横断検索**: ネームスペースが `/search` `/chat/completions` `/mcp` の 3 つのパスを持つ専用の公開エンドポイントを持てるようになって、複数のインスタンスをまとめて 1 つの URL から検索できるように
- **サイトマップなしでもクロール**: Web データソースに新しい `discover` パースタイプが追加されて、起点 URL から出発してサイトマップとクロール中に見つけたリンクの両方からページを拾ってくれるように

サイトを検索エンジン化したい開発者さんにとっては、「まず動くものを作る」から「実際に人前に出す」までの距離がぐっと縮まった発表だね。

## 深く潜ってみよう

原文に載っているサンプルを見ながら、それぞれもうちょっと具体的に見てみるよ。

**複数インスタンス横断検索の例**:
```bash
curl https://ns-{NAMESPACE_ENDPOINT_ID}.search.ai.cloudflare.com/search \
  --header "Content-Type: application/json" \
  --data '{
    "messages": [{ "content": "How do I configure AI Search?", "role": "user" }],
    "ai_search_options": { "instance_ids": ["docs", "support"] }
  }'
```
`ai_search_options.instance_ids` に検索したいインスタンスの ID を並べるだけで、`docs` と `support` みたいに複数のデータソースをまとめて 1 回のリクエストで検索できるの。

**`discover` パースタイプの設定例**:
```bash
curl -X POST "https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai-search/instances" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "my-ai-search",
    "type": "web-crawler",
    "source": "example.com",
    "source_params": {
      "web_crawler": {
        "parse_type": "discover",
        "discover_options": { "source": "links", "limit": 5000, "depth": 3 }
      }
    }
  }'
```
`discover_options` では `source`(ページの発見元)・`limit`(収集ページ数の上限)・`depth`(起点からたどるリンクの深さ)を指定できて、原文のサンプルでは `limit` を 5000、`depth` を 3 に設定した例が示されているよ。サイトマップに載っていないページでも、クロール中にリンクをたどって見つけてくれるから、更新が追いついていないサイトマップに悩まされてきた人には嬉しい仕組みだね。

Access まわりは、認証済みエージェント向けの `/mcp` と、社員やパートナー向けのブラウザアクセスを、同じ独自ドメインの上で認証方式を分けて設定できる、っていうのがポイント。サービストークンと ID プロバイダーのサインインを組み合わせられるから、「検索エンドポイントは公開したいけど誰でも叩ける状態は避けたい」っていうニーズにちゃんと応えられる作りになっているの。

なお、独自ドメインやアクセス制限、ネームスペースの詳しい設定手順は、[AI Search のドキュメント](https://developers.cloudflare.com/ai-search/) にまとまっているよ。

## まとめ

- AI Search の公開エンドポイントが、生成されたホスト名だけじゃなく独自ドメインでも配信できるように
- Cloudflare Access を組み合わせて、`/mcp` などのパスを特定のエージェントやユーザーだけに絞り込めるように
- ネームスペース単位の公開エンドポイントで、複数インスタンスを 1 つの URL からまとめて検索できるように
- 新しい `discover` パースタイプで、サイトマップに載っていないページもクロールで拾えるように
- どれもオプトインの追加機能で、これまでの挙動はデフォルトのまま変わらないよ

自社サイトやドキュメントを AI Search で検索エンジン化して、実際にユーザーやチームの前に出したいと思っていた人には、まさに待ってました、なアップデートだね！
