返回 文章 apply CMS 文章

Cloudflare AI Search:为智能体打造数据搜索引擎,简化开发并预览定价

了解 Cloudflare AI Search 如何简化搜索解决方案的构建,为智能体提供数据检索能力,并预览其定价策略。

CloudflareAI Search智能体搜索
成长分 / 100 68 综合收获、行动、留存与影响

Cloudflare AI Search:为智能体打造数据搜索引擎,简化开发并预览定价
为什么值得读了解 AI Search 如何自动整合 Workers AI、Vectorize 等组件,降低开发复杂度。

学习如何通过公共端点、自定义域名和 Access 实现搜索的共享与私有化。

关键洞察
  1. AI Search 自动处理爬取、摄取、嵌入和检索,无需手动拼接多个 Cloudflare 原语。
  2. 支持无站点地图的网站,通过 '发现' 解析选项跟踪链接。
  3. 提供单一公共端点(/search 和 /mcp),可跨命名空间搜索,无需认证。
转成行动

深入阅读

正文与原文对照

原文保真覆盖:全文原文字符:12001

今天,我们很高兴宣布 Cloudflare AI Search 的几项开发者体验改进,让搜索方案开箱即用、易于管理。以前,你需要把 Cloudflare 的各个基础组件(Workers AI、AI Gateway、Vectorize、R2、Browser Run)拼接起来,现在 AI Search 可以自动完成这些工作,而且做得更好。我们的目标是给你的智能体配上它们自己的搜索引擎,让它们能轻松找到数据,从而为自己和它们服务的人提供更好的答案。

我们还为 AI Search 的客户提前预览了定价,方便你了解它如何随规模扩展。我们设计的定价模型可预测、可扩展:使用默认模型时,嵌入(embedding)和重排序(reranking)都是免费的,因此无需操心预估 token 数量。

现在,在 AI Search 中,用户可以:

  • 为你的智能体索引一组数据:让结构化和非结构化数据都能方便地供智能体使用,范围从单个文件到你拥有的网站。(目前它必须是你 Cloudflare 账户下的一个 zone,不过更多的所有权验证方式即将推出。)
  • 网站无需再提供 sitemap:以前,AI Search 要求网站必须有 sitemap 才能使用网站集成。现在你可以选择“Discover”解析选项,把没有 sitemap 的网站添加为数据源。
  • 获得一个可跨命名空间搜索的统一公开端点:在命名空间上启用公开 URL 后,你会得到 /search 和 /mcp 端点,可以无需认证地同时搜索多个实例或网站,方便你轻松分享给客户。
  • 在公开端点上使用你自己的自定义域名:你现在可以在公开 URL 之上添加自己的域名,从而为你的 /search 和 /mcp 端点打上自己的品牌(例如 search.example.com/mcp)。你也可以加上 Cloudflare Access,创建私有的搜索实例。
  • 通过 AI Search 插件,为基于 EmDash 构建的站点添加语义搜索:如果你的站点运行在我们的开源 CMS EmDash 上,AI Search 插件可以为你的内容增加语义搜索。
  • 预览 AI Search 的新定价模型:我们希望定价可预测并能随你一同扩展,因此把嵌入和重排序的成本包含在内:使用 Workers AI 目录中的特定模型时,它们是免费的。

最后,我们还会分享 AI Search 在我们自家平台上的使用示例,包括 Cloudflare.com、我们的开发者文档、EmDash、Cloudflare Dev Stack MCP,甚至你正在阅读的这篇博客文章(试试 cmd+K)。

AI Search 实战:驱动全新的 Cloudflare Dev Stack MCP

我们使用 AI Search 的方式之一,是在全新的 Cloudflare Dev Stack MCP 中,你现在就可以在我们的 AI Playground 里试用。它为编码智能体提供来自整个 Cloudflare 开发者生态系统的最新、带引用的文档,让它们基于最新的功能和修复来构建,而不是依赖过时的训练数据。

下面是我们用 AI Search 现有功能构建它的过程:

1. 为每个来源建立索引

我们为每个 Cloudflare 自有的来源各创建了一个 AI Search 实例:Docs、Blog、API Docs、Community、Astro、Vite、Vitest、Hono、Replicate、OpenNext。(它们都归 Cloudflare 所有。)

它们涵盖不同的领域,但由于网站数据归 Cloudflare 所有,AI Search 可以把它们视为同一组数据,并以相同的方式全部摄取。只要把 AI Search 指向一个或一组站点,它就会处理爬取、摄取、嵌入和检索。创建实例只需一条命令;对于没有 sitemap 的站点,加上 --parse-type discover,就能通过跟踪链接来发现页面(由 Browser Run 的 /crawl 提供支持):

npx wrangler ai-search create cloudflare-community \
  --namespace dev-stack \
  --source https://community.cloudflare.com \
  --type web-crawler \
  --parse-type discover

2. 把多个实例合并成一个搜索

接下来是有趣的部分:用一次查询在全部 10 个实例中得出答案。有两种方式。

方案 A:在 Worker 中实现(我们为 Cloudflare Stack MCP 采用的做法)

我们把命名空间绑定到一个 Worker 上,创建了一个远程 MCP 服务器,并对全部 10 个实例发起一次多实例调用。我们选择这条路径,是因为我们正在把技术栈搜索加入 Cloudflare 的 MCP 服务器,使其作为一个工具,与智能体已经连接的 Cloudflare 工具一起提供。

绑定配置,位于 wrangler.jsonc:

{
  "ai_search_namespaces": [
    { "binding": "AI_SEARCH", "namespace": "cloudflare-stack" }
  ]
}

然后,一个工具只需一次调用,就会分发到你指定的各个实例:

// One tool, one call that searches every surface in the namespace at once.
context.registerTool(
  'search_dev_stack',
  {
    description: 'Search current docs across the Cloudflare stack.',
    inputSchema: z.object({ query: z.string() }),
  },
  async ({ query }) => {
    const res = await context.env.AI_SEARCH.search({
      query,
      ai_search_options: {
        instance_ids: ['developers-cloudflare-com', 'astro', /* ...every surface */],
        retrieval: { max_num_results: 10 },
        reranking: { enabled: true },
      },
    })
    // res.chunks come back cited and tagged with the instance they came from.
    return { content: [{ type: 'text', text: format(res.chunks) }] }
  }
)

方案 B:开启公开端点(无需代码)

如果你根本不想写 Worker,就在命名空间上启用公开 URL。你会立刻得到 /search 和 /mcp 端点,可以查询每一个实例,无需认证,也无需部署任何东西。

BLOG-3390 2.png

如果你像我们一样,要把搜索集成进已有的应用或 MCP 服务器,就选 Worker。如果只想一键获得一个可分享的搜索端点,就选公开端点。

3. 加上品牌并锁定访问

公开端点自带一个默认的公开 URL,但你可以在其上使用自己的自定义域名,为端点打上品牌(例如 search.example.com/mcp)。

如果搜索应当是私有的,就在该域名前加上 Cloudflare Access。这样端点就需要登录,只有获得授权的人(或智能体)才能查询。

BLOG-3390 3.png

亲自试试:使用 Dev Stack MCP

借助 Cloudflare Dev Stack MCP 服务器,你可以询问任何工具,或描述你想构建的应用,然后得到关于如何在 Cloudflare 技术栈上以最佳方式构建它的最新、带引用的回答。

BLOG-3390 4.png

AI Playground 值得一试,但真正的妙处在于把 MCP 接入你的编码智能体,让技术栈的最新文档只需一次工具调用即可获得。这取代了通常的退路(网页搜索,再抓取整页内容),后者既慢、又耗 token,还常常落到错误或过时的来源上。要在你选用的智能体中使用,只需把 Dev Stack MCP 的 URL 填入你的 MCP 配置。例如:

{
  "mcpServers": {
    "dev-stack": { "url": "https://stack.mcp.cloudflare.com/mcp" }
  }
}

驱动我们的博客、开发者文档和 Cloudflare.com 的搜索

我们使用 AI Search 的方式,与客户使用它的方式相同:Cloudflare 博客的搜索早已运行在它之上,今天开发者文档和 Cloudflare.com 也加入了进来。所有这些都使用混合搜索,在一次查询中同时进行语义和关键词搜索,因此既能处理开放式的“这是做什么的”之类的问题,也能精确查找名称或关键词。我们最近用我们新的开源 CMS EmDash 重建了博客,而我们新的

EmDash AI Search 集成正是现在驱动该搜索的组件。你也可以把它添加到自己的 EmDash 站点,开箱即得对你的内容的同样搜索。

AI Search 遵守所有机器人政策

AI Search 在后台由 Browser Run /crawl 提供支持,但更进一步,它以自己专属的机器人身份来表明自己:Cloudflare-AI-Search。与 Browser Run 一样,它遵循 robots.txt,使用不可更改的公开 user agent 表明身份,并会遵守站点设置的任何机器人管控措施。

预览定价:可预测的定价

AI Search 在测试期间目前免费,尚未启用计费;在开始计费之前,我们会提前很久给你发送邮件通知。在我们迈向正式发布(GA)的过程中,以下是摄取、存储和查询,以及嵌入和重排序的定价预览(预览价格在开始计费前可能会有变动):

预览使用价格 每月免费额度(所有 Workers 套餐)
摄取
基础摄取 $0.75 / 1M tokens 5M tokens †
图像处理(附加项) +$0.50 / 1M tokens 5M tokens †
存储
已存储数据 $2.00 / GB-月 10 GB
查询
语义(混合搜索和向量搜索) $0.75 / 1k 次查询 2,000 次查询 ‡
全文 $0.10 / 1k 次查询 2,000 次查询 ‡
嵌入与重排序
摄取与查询 使用特定的 Workers AI 模型时免费;第三方模型另行计费 不适用

† 每月共用一个 5M 摄取 token 的额度池,涵盖当前支持的任何文件类型(例如文本、图像)。‡ 每月共用一个 2,000 次查询的额度池,两种查询类型共享。

我们的目标是提供你能预测的定价,首先从你的搜索所依赖的模型做起。嵌入把你的文本转换成搜索用来匹配的向量,重排序则对结果重新排序,让最相关的排在前面。使用 AI Search 默认设置或 Workers AI 目录中的特定模型时,两者都是免费的,因此索引和每次搜索背后的模型不是你需要操心的成本。答案生成和查询改写是可选步骤,运行在你选择的模型上,按 Workers AI 用量计费,你也可以对任意模型/提供商使用 AI Gateway 额度。

预览定价下的账单示例

下面是 Workers Paid 套餐下的一份月度账单示例:为一个包含 20,000 份文档(约 2000 万 token 的文本)外加 1,000 张图像(假设每张约 1,000 token)的数据源创建一个新的 AI Search 实例,每月 30,000 次语义查询,使用默认的 AI Search 嵌入和重排序模型。摄取时按约 10% 的重叠进行分块,下面表现为 × 1.1:

项目 用量 价格 本月
基础摄取 (20M token 文本 + 1M token 图像)× 1.1 - 5M 免费 = 18.1M tokens $0.75 / 1M tokens $13.58
图像附加项 1M token 图像 × 1.1 = 1.1M tokens $0.50 / 1M tokens $0.55
存储 约 1.2 GB(在 10 GB 免费额度内) $2 / GB-月 $0
查询(语义) 30,000 - 2,000 免费 = 28K $0.75 / 1k $21.00
嵌入(Workers AI) 用量已包含在所选 Workers AI 模型中 $0 $0
重排序(Workers AI) 用量已包含在所选 Workers AI 模型中 $0 $0
总计 ~$35

图像计入基础摄取,同时还会产生图像附加项费用。存储按每份文档约 10 KB、每张图像 1 MB 估算。索引主要是一次性成本,因此之后的月份主要是查询费用,接近 $21。

立即开始

AI Search 现已可以启用和使用。把它指向你的站点,开启同时支持语义和关键词匹配的混合搜索,你就有了一个属于自己数据的搜索引擎,随时供你的智能体使用。一条命令即可创建:

npx wrangler ai-search create my-search \
  --namespace my-namespace \
  --source https://my-website.com \
  --type web-crawler \
  --hybrid-search

之后,你可以查询它,通过 /mcp 把它接入智能体,或者在公开的 /search 端点上设置自定义域名,与你的用户分享。更多信息请查阅 AI Search 文档。