通过 AI Gateway 推出 Web 搜索 API

有趣的事实:当你使用一个代理,并且它需要获取一个实时网页时,代理通常只是猜测页面的 URL,然后发起一个工具调用来 curl 它。这就是为什么你有时会看到网页获取返回 404 Not Found,如果代理错误地猜测了该信息的 URL,就会发生这种情况。正如你可以想象的那样,一直随机猜测 URL 并不是非常高效。
有更好的方法。如果你的代理能够真正浏览互联网,就像人类在寻找信息时从搜索引擎查询开始一样,那会怎样?这就是网络搜索的设计目的——它使代理能够在互联网上搜索相关数据,并根据实时信息为代理的响应提供依据。
今天,我们宣布 Cloudflare 与网络搜索提供商合作,通过 AI Gateway 为您带来有依据的智能。我们与来自 Ceramic.ai、Exa 和 Linkup 的合作伙伴共同启动这一发布。
我可以用 Web 搜索 API 做什么?
AI 模型的好坏取决于你提供给它们的上下文。模型通常经过训练,然后在某个时间点被冻结,仅基于其知识截止日期之前存在的信息运行。这使得与模型讨论近期事件、不断变化的 API 或快速发展的新闻变得相当困难。
将 Web 搜索 API 直接集成到你的推理管道中,为你的代理配备了一个动态上下文层。你的应用程序获得来自网络的新鲜、结构化的片段,直接注入上下文,从而使你的模型能够访问实时信息。
例如,如果你的代理是使用 Cloudflare 开发者工具构建的,它可能会错过我们在这次生日周期间发布的所有新产品和功能!通过网络搜索,你将能够检索到最新最棒的文档和版本,从而更快、更智能地构建。
提升网络搜索的行业标准
在 Cloudflare,我们认为爬虫应该诚实、透明,并尊重所有机器人规则和偏好,网站所有者应该对其内容的使用方式拥有有意义的透明度和控制权。通过今天的发布,我们很高兴地宣布,我们的合作伙伴已承诺满足 Cloudflare 的机器人爬取标准。
网络搜索提供商使用的爬虫必须遵守 Cloudflare 公开声明的“已验证机器人”要求,如我们的开发者文档中所定义,并且网络搜索响应必须包含指向爬取内容位置的链接。这些规则对公平的互联网是净积极的,并允许创作者决定他们想用数据做什么。
我们非常兴奋能够迈出又一步,为互联网上优秀爬虫的标准设定标杆,更自豪的是,网络搜索合作伙伴们迎接挑战,与我们共同维护这些标准。当你在 Cloudflare 上使用网络搜索时,你选择从致力于提供透明度、控制和可见性的运营商那里获取搜索知识,这些运营商通过识别其爬虫、尊重 robots.txt 并提供搜索结果来源,帮助构建更好的互联网。
通过 AI Gateway 使用 Web 搜索 API
Cloudflare 的 AI Gateway 是我们全新 Web Search API 产品的旗舰集成点。AI Gateway 旨在成为你应用的控制平面,内置可观测性、统一计费、安全性和访问控制。自然而然,我们认为网页搜索非常适合融入其中:你可以使用 AI Gateway 额度来消费网页搜索;收集网页搜索调用的日志和请求数据;并控制谁可以访问哪些网页搜索提供商。
请求会显示在你常规的 AI Gateway 可观测性日志中,网页搜索查询会从你的 AI Gateway 额度余额中扣除。我们将标识支持零数据保留(ZDR)的合作伙伴,以便你知晓自己的数据不会被保留。我们还直接以合作伙伴的列表 API 价格提供网页搜索,不收取任何额外加价。更多详情可查阅网页搜索开发者文档。

我们还支持网页搜索提供商的自带密钥(BYOK),就像我们对模型推理提供商所做的那样。这样,你就能沿用现有的组织设置,只需几个简单步骤即可开始使用 AI Gateway 和网页搜索。
直接 REST API
如果你正在从现有后端、移动应用或外部服务发起 HTTP 调用,你可以直接通过标准 REST 端点查询网页搜索。只需传入你的 AI Gateway 身份验证令牌,在请求负载中指定你偏好的提供商,它就会返回网页搜索结果。
curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/websearch/ \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"query": "What are some fun things to do in Salt Lake City as fall approaches?",
"provider": "ceramic",
"limit": 5,
"options": {
"gateway": { "id": "default" }
}
}'
Workers 绑定
对于直接在 Cloudflare Workers 上构建的开发者,集成只需一行代码。我们还提供了一个独立的 worker 绑定,你可以用它为你的 agent 进行网络搜索:
const response = await env.AI.websearch({
gatewayId: "default",
query: "What are some fun things to do in Salt Lake City as fall approaches?",
provider: "exa",
limit: 5,
})
const results = await response.json()
即将推出:服务器工具
我们正在积极将原生服务器工具直接构建到 AI Gateway 中。很快,你就不需要自己定义工具了:它们将内置于我们的控制平面中,这样你就能把更多时间花在构建上,而不是编排工具框架上。网络搜索将是我们纳入服务器工具栈的首批工具之一,我们非常期待你来试用。
不过,如果你想在今天就把网络搜索作为服务器工具自行编排,可以通过以下 Worker 代码片段轻松实现:
const completion = await env.AI.run(
"@cf/google/gemma-4-26b-a4b-it",
{
messages: [{ role: "user", content: "What happened in the last Cloudflare Birthday Week in 2025?" }],
tools: [{
type: "function",
function: {
name: "web_search",
description: "Search the web for current information.",
parameters: {
type: "object",
properties: { query: { type: "string" } },
required: ["query"],
},
},
}],
},
{ gateway: { id: "default" } },
)
const toolCall = completion.tool_calls?.[0]
if (toolCall?.name === "web_search") {
const response = await env.AI.websearch({
gatewayId: "default",
query: toolCall.arguments.query,
limit: 5,
})
const searchResults = await response.json()
const finalResponse = await env.AI.run(
model,
{
messages: [
{ role: "user", content: prompt },
{
role: "tool",
name: "web_search",
content: JSON.stringify(searchResults),
},
],
},
{ gateway: { id: "default" } },
)
}
今天就试试吧!
我们非常高兴能将网页搜索引入我们的平台,并与出色的合作伙伴共同实现这一目标,他们正在倡导成为互联网良好守护者的意义。请通过 AI Gateway、独立的 REST API 以及未来的其他形式,试用我们全新的网页搜索工具。立即通过我们的开发者文档开始使用,或者在此处试用
AI Playground
