OpenRouter 终于上线 Web 搜索插件了
- Authors
- @SLIPPERTOPIA
之前 DeepSeek 刚推出 V3 的时候,我其实就一直期待能用上 web API,网页版虽然有支持网络搜索,但是 API 迟迟还没有上。当然,竞对 OpenAI 也没有上,所以 DeepSeek 开发团队也不着急,是吧 😂。
当时想着,只要 OpenAI 率先推出支持 web search 的 API,其他平台肯定也很快跟上,但没想到是居然是第三方代理商 OpenRouter 先了 OpenAI 一手。
今天 OpenRouter 在官推上就提到了这个新特性:API web 搜索插件,可以让任何 AI 模型都能接入实时网络信息。这个“任何 AI 模型”就很棒,OpenRouter 的 API 几乎支持了市面上所有主流的 AI 模型,像 GPT 系列、Claude 系列、Gemini 系列、Llama 系列、Mixtral 系列等等,用户的可选余地就大了。

Web search 为什么不推广?
这个功能理论上没什么技术障碍,如果让普通开发者去做,只要有稳定的 web search API,自己也能实现,一个朴素的思路:
- 先对用户提问做关键信息提取,输出一句话或者若干关键词,比如 "小红书 难民";
- 再通过这个 web search API 做搜索;
- 把结果(可能需要做一下过滤、重排)作为外部知识传给 LLM,然后让 LLM 有的放矢。
但理论归理论,实现上有很多棘手之处,比如上哪儿去找稳定、可靠、便宜的 API?如何实现重排。
众所周知,黄金三角不可兼得,实际上这次的 OpenRouter 的搜索插件,三角也只能说占稳了一角半:
- 勉强可以说稳定,每次搜索都能返回点东西。
- 可靠性一般,结果是返回了,但相关性没那么高或者时效性不强。我问它 bitcoin 价格,它返回的居然还是 6 万刀的价格,要不是我谷歌搜了一下,还以为抄底时间到了。
- 价格也说不上便宜,目前 1000 条搜索结果 $4,差不多一条结果 3 毛钱。重点:是每 1000 条搜索结果收费 4 刀,不是 1000 次搜索。 因为走的是第三方平台 exa.ai 的接口,这个价格 OpenRouter 也没有多少定价权,可以理解。
所以也不难理解为什么像 OpenAI、Anthropic 这样的 AI 公司,也没有在搜索上大做文章,这本来就是跟传统搜索引擎抢入口、抢流量的事,有门槛有难度。
LLM 兴起后的搜索平台,比如 exa.ai 或者 firecrawl 本质上还是依赖于爬虫及搜索 API 包装,它们自己是没有数据积累的,新数据收集更是困难。只不过结合 LLM 的能力,把数据清洗、输出这块做的漂亮些。
但无论如何,有了这个 web 搜索插件,在需要用时还是能顶事的。
怎么用
💡 方法一
直接在原来的模型后面加上 :online
后缀,就能自动接入 Web 搜索功能。请求发送过去后,OpenRouter 会自动调用 exa.ai 的 API 来搜索用户的 query(比如 What happened in the news today?
)。
对用户来说,唯一的区别是用什么模型去处理这个结果,并做后续的推理。比如 deepseek/deepseek-chat:online
就能使用 deepseek-chat
来处理搜索的结果。 如果不确定用什么模型,也可以先试试 openrouter/auto:online
,据我的观察,后台调用的多数是 anthropic/claude-3.5-sonnet
。
{
"model": "deepseek/deepseek-chat:online",
"messages": [
{
"role": "user",
"content": "What happened in the news today?"
}
]
}
💡 方法二
当然,如果觉得每次请求都返回 5 条结果太费钱了(约 1.5 元 RMB),用户也可以自定义搜索结果的条数。 这种方式不改动模型参数,而是添加一个 web 插件,可调用的参数有:
- 通过
id
指定插件类型web
- 通过
max_results
指定搜索结果的条数 - 通过
search_prompt
指定搜索提示词
{
"model": "deepseek/deepseek-chat",
"plugins": [
{
"id": "web",
"max_results": 1, // 默认 5 条
"search_prompt": "Some relevant web results:" // 自定义提示词
}
]
}
这个提示词是给 LLM 看的,告诉它:"注意了,我给你找了点网络信息,你参考一下"。如果不写这个提示词也没关系,现在 LLM 都挺聪明,自己能判断。
不写的时候,有一条简洁的用法,即 {"model": "deepseek/deepseek-chat", "plugins": [{"id": "web"}]}
,这样效果跟上面方法一是一样的。
应用场景
如果是日常工作、生活,多数场景下都用不到 web search 这个功能。 更适合需要实时性不那么强的场景,侧重于近期发生的事情,比如查询近期的电影资讯,或者查前几天的新闻。
但强实时性的需要,比如查询股票价格、赛事,这个功能肯定不适用,上面也提到了,返回的结果有时是滞后的。 如果有这个需求,不如直接调用靠谱的 API 或者写个爬虫(收费的 firecrawl 也可以)。
小结
平台能提供 web search API 这件事,开发者还是挺喜闻乐见的。虽说这个功能目前还处于早期阶段,价格偏贵,搜索结果时效性、准确性都还有待提高,但至少现在有东西可以用了。
希望后面各家平台也多跟进,比如 DeepSeek 也该支持了 。