Tavily、Exa、Serper、API Pick 對比:給 LLM 用的網頁搜尋 API 怎麼選?

Tavily、Exa、Serper、API Pick 都自稱是「給 LLM 用的搜尋層」。它們在回傳結構、過濾維度與計費方式上差別其實不小。下面是來自第一線工程師的橫向對比。
一句話總結
- •想要一個托管 RAG 端點直接吐 LLM 友善答案,選 Tavily —— 代價是排序不透明、有月費門檻。
- •做語意/相似度發現、能接受時效性弱一點,選 Exa;規模上去後預算要算清楚。
- •需要原始 Google SERP、自己做清洗與排序,選 Serper。
- •想要事先整理好的 JSON 摘要、按呼叫透明計費、有國家與日期過濾,且只對 HTTP 200 收費 —— 選 API Pick Web Search。
「給 LLM 用的網頁搜尋 API」到底指什麼
通用搜尋 API(Google Custom Search、Bing Web Search、SerpAPI)回傳的是搜尋引擎結果頁 —— 也就是真人在瀏覽器裡看到的那一堆藍色連結與富摘要。這種格式對語言模型並不合適。Agent 不想去解析 SERP,它想要的是一份精煉的 ranked 清單:標題、URL、可以直接塞進上下文的乾淨文字。本文這四家 API 都在做這件事,但路徑不同。
我們沿五個實作維度比較:回傳結構、過濾、計費模型、整合體驗,以及它們「都不做什麼」。
四家選手,一段話過完
Tavily
托管型 RAG 服務。tavily.search 回傳 ranked 摘要,tavily.qna 把搜尋與一次輕量 LLM 回答打包在一起。 適合「直接給模型一個答案就緒的 blob」的聊天助理場景。訂閱 + credit 計費。
Exa(前 Metaphor)
以神經 / 語意索引為核心。圍繞「找一些和這個 URL 相似的 URL」、embedding 排序展開,可選拉 highlights 或全文。當時效性不重要、主題相似度重要時表現最好。訂閱 + 超額 credit。
Serper
原始 Google SERP API。回傳的就是真實 Google 搜尋結果頁的 JSON 結構 —— organic、knowledge graph、places、videos 全有。摘要清洗與排序你自己做。單次便宜,但 LLM-shaping 這層得自己寫。
API Pick Web Search
依用量計費、為 LLM tool calling 預先整理好的語意網頁搜尋。POST /api/search/web 預設回傳 5 條(最多 10 條)ranked 結果: title、URL、清洗過的 LLM 友善 snippet,可選 country_code 與 start_date / end_date 過濾。每次呼叫 15 credits(≈ $0.015),且只對成功扣費。
橫向對比表
| Tavily | Exa | Serper | API Pick | |
|---|---|---|---|---|
| 回傳結構 | ranked 摘要 + 可選 LLM 答案 | ranked URL + 可選 highlights / 全文 | 原始 Google SERP JSON | ranked title + URL + LLM 友善 snippet |
| 國家過濾 | 有 | 有限支援 | 有 | 有(country_code) |
| 日期過濾 | 有 | 有 | 有(qdr) | 有(start_date / end_date) |
| Tool schema 端點 | — | — | — | 有 — GET /api/search/web/tool-schema |
| 計費模型 | 訂閱 + credit | 訂閱 + credit | 按查詢次數 | 依用量 credit,$5 / 5,000 |
| 失敗是否扣費 | 視套餐 | 視套餐 | 扣 | 不扣 — 僅 HTTP 200 |
| 最佳場景 | 托管 RAG / 聊天助理 | 語意發現 / 相似度 | 自建 SERP 管線 | AI Agent tool calling、RAG 管線 |
回傳結構:最重要的一項
這一品類之所以存在,根本原因就是 LLM 在 SERP HTML 上推理效果差。它需要的是簡短、命名清楚、有排序的文字。所以「snippet 乾不乾淨」是預測一家搜尋 API 能不能當 Agent 工具用的最強單一指標。
Tavily 與 API Pick 會主動清洗 snippet。Exa 視參數回傳 highlights 或 contents —— 也行,但你來決定要多少。Serper 給原始 SERP,預設你後面會接一個擷取器;如果你已經有擷取管線,這沒問題,否則這就是隱藏成本。
API Pick 的典型回傳長這樣:
{
"results": [
{
"title": "Retrieval-augmented generation - Wikipedia",
"url": "https://en.wikipedia.org/wiki/Retrieval-augmented_generation",
"snippet": "Retrieval-augmented generation (RAG) is a technique that combines\nsearch with text generation, often using vector search to ground LLM\nanswers in retrieved documents."
}
/* …more */
],
"result_count": 5,
"credits_used": 15,
"remaining_credits": 985
}這個結構可以直接作為 function calling 的工具結果回傳給模型,不需要二次解析。
過濾:國家與新鮮度
正式環境的 Agent 通常關心兩個過濾維度:
- 國家 / 地區:英國的金融 Agent 預設不該全是美國來源。
- 日期範圍:「本週發生了什麼」類的市場研究 Agent,必須能拒掉一週以前的內容。
四家都支援,但表達力不同。API Pick 用 ISO 日期字串(如 start_date="2026-04-01")非常明確,比 Google 的 qdr(過去一小時 / 一天 / 一週 / 一月)更細。
計費模型:訂閱 vs 依用量
訂閱型(Tavily、Exa)適合流量穩定可預測的場景。在以下三種常見模式下會變得彆扭:
- 原型階段不想被月費綁住。
- 流量波動大(例如批次跑的研究 Agent)。
- Agent 經常對部分失敗做積極重試。
API Pick 是 credit 模型 —— $5 = 5,000 credits,Web Search 一次 15 credits,credit 永不過期,只對 HTTP 200 扣費。這一點比看起來重要:Agent 因為偶發 502 重試 5 次,是免費的,不是 5×。
整合體驗
最低摩擦的整合是「貼上 JSON 工具定義就能用」。API Pick 直接給現成的:
# OpenAI function tool 定義
curl https://www.apipick.com/api/search/web/tool-schema
# 回傳包含 OpenAI tool 定義 + Claude tool use 定義OpenAI Assistants 整合:
from openai import OpenAI
import requests
client = OpenAI()
schema = requests.get("https://www.apipick.com/api/search/web/tool-schema").json()
assistant = client.beta.assistants.create(
name="Research Agent",
model="gpt-4o",
tools=[{"type": "function", "function": schema["openai"]}],
)Claude tool use:
import anthropic
import requests
schema = requests.get("https://www.apipick.com/api/search/web/tool-schema").json()
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
tools=[schema["claude"]],
messages=[{"role": "user", "content": "本週 RAG 研究有什麼新進展?"}],
)這幾家都不做的事
沒有一家網頁搜尋 API 能可靠地做「這個網域從 2019 年起的全部 X」。深檔案覆蓋仍然需要搜尋 + 定向爬蟲或專門資料源的組合。它們都不能完美去重高度相似的 URL。也沒有一家能解決上游問題 —— 來源是否陳舊、權威度是否夠,仍然要由你的 Agent 自己判斷。
快速選型
常見問題
哪家的單次呼叫成本最低?
因計費模型不同,單價口徑不一致。API Pick Web Search 每次呼叫 15 credits(按 $5 / 5,000 credits 折算約 $0.015),且僅對 HTTP 200 扣費。Tavily 與 Exa 多為月度訂閱 + 超出額度按 credit 計;Serper 按查詢次數計費。如果你的流量波動大,或 Agent 會在失敗時自動重試,「只對成功扣費」往往在真實帳單上更划算。
這幾家都能配 OpenAI function calling 與 Claude tool use 嗎?
都可以。它們都是 JSON in / JSON out,包成 tool function 都能用。API Pick 還額外提供 tool schema 端點(GET /api/search/web/tool-schema),可以直接把生成好的 OpenAI/Claude 工具定義貼進 Agent 程式碼,不用手寫。
API Pick 是 Tavily 的二次封裝嗎?
不是。API Pick 自己跑索引彙整、排序與摘要清洗管線。回傳結構刻意比 Tavily 簡單:title + URL + LLM 友善 snippet,加可選的 country 與 date 過濾。直接呼叫 POST /api/search/web 就行,不需要套一層托管 RAG。
延遲怎麼樣?
四家都為同步 Agent 呼叫設計,短查詢 P50 都在亞秒級。真正的延遲差距在於:是否在搜尋端點內部串了一次下游 LLM 呼叫 —— 純搜尋 API 永遠比「搜尋 + 答案」組合端點更快。
Tavily 替代品裡哪家最像?
如果你想離開 Tavily 是因為月費門檻或超額費用不透明,API Pick Web Search 是最接近的依用量替代:回傳結構相同(ranked 的 LLM 友善 JSON),有 country / date 過濾,無月費下限。
本文使用的 API
Sarah Choy 是 API Pick 的 CEO,專注於為 AI Agent 與 LLM 工作流打造可用於正式環境的 API。