Tavily vs Exa vs Serper vs API Pick: ควรเลือก Web Search API ตัวไหนสำหรับ LLM?

Tavily, Exa, Serper และ API Pick ต่างก็สัญญาว่าจะเป็นเลเยอร์การค้นหาให้ LLM ของคุณ แต่ทั้งสี่ตัวแตกต่างกันชัดเจนทั้งรูปแบบผลลัพธ์ ตัวกรอง และวิธีคิดค่าใช้จ่าย นี่คือการเปรียบเทียบเคียงข้างกันจากคนที่ปล่อย agent ขึ้น production จริง
สรุปสั้น
- •เลือก Tavily เมื่อคุณต้องการ RAG endpoint แบบ hosted ตัวเดียวที่คืนคำตอบพร้อมใช้กับ LLM — โดยแลกกับการจัดอันดับที่ไม่โปร่งใสและค่าสมาชิกขั้นต่ำรายเดือน
- •เลือก Exa สำหรับการค้นพบที่เน้น semantic เป็นหลัก ซึ่งการจัดอันดับแบบ neural สำคัญกว่าความสดใหม่ของข้อมูล และเผื่องบประมาณไว้เมื่อใช้งานในสเกลใหญ่
- •เลือก Serper หากคุณต้องการ Google SERP แบบดิบและพร้อมจะทำความสะอาด จัดอันดับ และจัดรูป snippet เอง
- •เลือก API Pick Web Search เมื่อคุณต้องการ snippet JSON ที่จัดรูปมาให้แล้ว ราคาแบบ credit ต่อครั้งที่โปร่งใส ตัวกรองประเทศและวันที่ และจ่ายเฉพาะเมื่อได้รับ response HTTP 200 เท่านั้น
"web search API สำหรับ LLM" หมายความว่าอย่างไรกันแน่
search API ทั่วไปอย่าง Google Custom Search, Bing Web Search และ SerpAPI คืนหน้าผลการค้นหาของ search engine ออกมา — ลิงก์สีน้ำเงินและ rich snippet ชุดเดียวกับที่มนุษย์เห็น รูปแบบนั้นผิดสำหรับ language model เพราะ agent ไม่อยากมา parse SERP มันต้องการรายการสั้น ๆ ที่จัดอันดับแล้ว ประกอบด้วย title, URL และ snippet ข้อความที่สะอาดซึ่งยกไปอ้างใน context window ได้เลย API ทั้งสี่ตัวนี้ต่างสัญญาว่าจะทำสิ่งนั้น แต่แลกกับ วิธี ที่ต่างกัน
เราจะเปรียบเทียบกันบนห้าแกนเชิงปฏิบัติ: รูปแบบผลลัพธ์ การกรอง โมเดลราคา ความง่ายในการเชื่อมต่อ และสิ่งที่มันไม่ทำ
ผู้เข้าแข่งขัน สรุปตัวละหนึ่งย่อหน้า
Tavily
RAG-as-a-service แบบ hosted tavily.search คืน snippet ที่จัดอันดับแล้ว ส่วน tavily.qna รวมการค้นหาเข้ากับคำตอบจาก LLM แบบเร็ว ๆ เหมาะอย่างยิ่งกับ chat assistant ที่คุณอยากได้ "ก้อนคำตอบพร้อมป้อนให้โมเดล" ใช้ระบบสมาชิกพร้อม credit การใช้งาน
Exa (เดิมชื่อ Metaphor)
index แบบ neural / เน้น semantic ออกแบบมารอบแนวคิด "หา URL ที่หน้าตาเหมือน URL นี้ให้หน่อย" และการจัดอันดับด้วย embedding พร้อมตัวเลือกดึง highlight หรือเนื้อหาเต็ม เด่นที่สุดเมื่อความสดใหม่ของข้อมูลสำคัญน้อยกว่าความคล้ายเชิงหัวข้อ ใช้ระบบสมาชิกพร้อมค่า credit ส่วนเกิน
Serper
Google SERP API แบบดิบ คืนรูปแบบ JSON ของหน้าผลการค้นหา Google จริง — organic, knowledge graph, places, videos คุณต้องทำความสะอาด snippet และจัดอันดับเอง ราคาต่อ query ถูก แต่คุณต้องเขียนเลเยอร์จัดรูปให้ LLM ขึ้นมาเอง
API Pick Web Search
การค้นหาเว็บเชิง semantic แบบ pay-as-you-go ที่จัดรูปมาให้พร้อมทำ tool calling POST /api/search/web คืนผลลัพธ์ที่จัดอันดับแล้ว 5 รายการ (สูงสุด 10 รายการ) พร้อม title, URL และ snippet ที่ทำความสะอาดมาแล้ว บวกตัวกรอง country_code และ start_date/end_date แบบ optional คิด 15 credit ต่อครั้ง (~$0.015) หักเฉพาะเมื่อสำเร็จ
เปรียบเทียบเคียงข้างกัน
| Tavily | Exa | Serper | API Pick | |
|---|---|---|---|---|
| รูปแบบผลลัพธ์ | snippet ที่จัดอันดับ + คำตอบจาก LLM แบบ optional | URL ที่จัดอันดับ พร้อม highlight / เนื้อหาแบบ optional | JSON SERP ดิบจาก Google | title + URL + snippet ที่เหมาะกับ LLM |
| ตัวกรองประเทศ | มี | จำกัด | มี | มี (country_code) |
| ตัวกรองช่วงวันที่ | มี | มี | มี (qdr) | มี (start_date / end_date) |
| endpoint สำหรับ tool schema | — | — | — | มี — GET /api/search/web/tool-schema |
| โมเดลราคา | สมาชิก + credit | สมาชิก + credit | ต่อ query | credit แบบ pay-as-you-go, $5 / 5k |
| คิดเงินเมื่อล้มเหลวไหม? | แล้วแต่แผน | แล้วแต่แผน | คิด | ไม่คิด — เฉพาะ HTTP 200 |
| เหมาะที่สุดกับ | RAG แบบ hosted / chat assistant | การค้นพบเชิง semantic / ความคล้าย | pipeline SERP แบบ custom | tool calling ของ AI agent, RAG pipeline |
รูปแบบผลลัพธ์: ส่วนที่สำคัญที่สุด
เหตุผลที่หมวดหมู่นี้มีอยู่ก็เพราะ LLM ไม่สามารถให้เหตุผลได้ดีจากก้อน HTML ของ SERP มันให้เหตุผลได้ดีจากข้อความสั้น ๆ ที่มีชื่อกำกับและจัดอันดับแล้ว ดังนั้นตัวชี้วัดเดียวที่ทำนายได้ดีที่สุดว่า search API จะทำงานได้ดีในฐานะ tool ของ agent หรือไม่ก็คือ: snippet สะอาดแค่ไหน
Tavily และ API Pick ทำความสะอาด snippet อย่างเข้มข้น ส่วน Exa คืน highlight หรือเนื้อหาขึ้นอยู่กับ flag ที่ตั้ง — ก็ดี แต่คุณต้องตัดสินใจเองว่าจะขอมากแค่ไหน ขณะที่ Serper ส่ง SERP ดิบมาให้และสมมติว่าคุณจะรัน extractor ต่อเอง อย่างหลังเป็นทางเลือกที่สมเหตุสมผลหากคุณมี content extractor ใช้งานอยู่แล้ว มิฉะนั้นมันคืองานที่ซ่อนอยู่
เมื่อใช้ API Pick response ทั่วไปจะหน้าตาแบบนี้:
{
"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
}รูปแบบนี้ยกไปใส่ใน response ของ function calling ได้ทันทีโดยไม่ต้อง parse เพิ่ม
การกรอง: ประเทศและความสดใหม่
มีแกนการกรองสองมิติที่สำคัญสำหรับ agent บน production:
- ประเทศ / locale: agent การเงินในสหราชอาณาจักรไม่ควรได้แหล่งข้อมูลเฉพาะของสหรัฐฯ มาเป็นค่าเริ่มต้น
- ช่วงวันที่: agent วิจัยตลาดที่ถาม "สัปดาห์นี้เกิดอะไรขึ้น" ต้องปฏิเสธอะไรก็ตามที่เก่ากว่า 7 วัน
API ทั้งสี่ตัวเปิดให้ใช้ทั้งสองอย่างในรูปแบบใดรูปแบบหนึ่ง แต่ความยืดหยุ่นในการระบุต่างกัน API Pick ใช้ string วันที่แบบ ISO (start_date="2026-04-01") ซึ่งไม่กำกวม ต่างจาก bucket qdr ของ Google ที่หยาบกว่า (ชั่วโมง / วัน / สัปดาห์ / เดือนที่ผ่านมา)
โมเดลราคา: สมาชิก vs pay-as-you-go
API แบบสมาชิก (Tavily, Exa) ทำงานได้ดีเมื่อคุณมีทราฟฟิกที่คาดเดาได้และสม่ำเสมอ แต่จะกลายเป็นเรื่องน่าอึดอัดในสามรูปแบบที่พบบ่อย:
- คุณกำลัง prototype อยู่และไม่อยากผูกมัดรายเดือน
- ทราฟฟิกของคุณมาเป็นช่วง ๆ (เช่น research agent ที่รันเป็นชุด)
- คุณสร้าง agent ที่ retry อย่างหนักเมื่อเจอความล้มเหลวบางส่วน
API Pick ใช้โมเดล credit — $5 ได้ 5,000 credit; Web Search คิด 15 credit ต่อครั้ง; credit ไม่มีวันหมดอายุและ ถูกหักเฉพาะเมื่อได้ response HTTP 200 เท่านั้น ข้อความประโยคสุดท้ายนั้นสำคัญกว่าที่ฟังดู: agent loop ที่ retry ห้าครั้งเพราะเจอ 502 ชั่วคราวจะไม่เสียเงินเลย ไม่ใช่ 5 เท่า
ความง่ายในการเชื่อมต่อ
การเชื่อมต่อที่มี friction น้อยที่สุดคือแบบที่คุณคัดลอก JSON tool schema ไปวางในโค้ด agent ได้เลยโดยไม่ต้องเขียน wrapper API Pick เผยแพร่ schema พร้อมใช้:
# OpenAI function tool schema
curl https://www.apipick.com/api/search/web/tool-schema
# Returns OpenAI tool definition + Claude tool use definitionกับ 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": "What's new in RAG research this week?"}],
)สิ่งที่ API เหล่านี้ไม่ทำ
ไม่มี web search API ตัวไหนที่จะตอบได้อย่างน่าเชื่อถือว่า "ทุก X จากโดเมนนี้ตั้งแต่ปี 2019" สำหรับการครอบคลุมคลังข้อมูลเชิงลึก คุณยังต้องจับคู่การค้นหาเข้ากับ crawler ที่โฟกัสเฉพาะทางหรือชุดข้อมูลเฉพาะโดเมน ไม่มีตัวไหนกำจัด URL ที่คล้ายกันมาก ๆ ซ้ำได้อย่างสมบูรณ์แบบ และไม่มีตัวไหนแก้ปัญหาต้นทางของแหล่งข้อมูลที่ล้าสมัยหรือมีความน่าเชื่อถือต่ำได้ — นั่นเป็นการตัดสินใจเรื่องคุณภาพเนื้อหาที่ agent ของคุณต้องทำเอง
เลือกให้เร็ว
คำถามที่พบบ่อย
API ตัวไหนมีราคาต่อครั้งดีที่สุด?
ราคาต่อครั้งแตกต่างกันไป API Pick Web Search คิด 15 credit ต่อครั้ง (≈ $0.015 ที่อัตรา $5 / 5,000 credit) และหัก credit เฉพาะเมื่อได้ response HTTP 200 เท่านั้น ส่วน Tavily และ Exa ใช้ระบบสมาชิกรายเดือนบวกค่า credit ส่วนเกิน ขณะที่ Serper คิดเงินต่อ query หากทราฟฟิกของคุณมาเป็นช่วง ๆ หรือคุณเรียกซ้ำเมื่อ call ล้มเหลวระหว่างที่ agent retry โมเดลที่คิดเงินเฉพาะเมื่อสำเร็จมักได้เปรียบในแง่ค่าใช้จ่ายจริง
ทุกตัวใช้งานได้กับ OpenAI function calling และ Claude tool use ไหม?
ใช่ ทุกตัวเปิดอินเทอร์เฟซแบบ JSON เข้า / JSON ออก คุณจึงห่อ (wrap) ตัวไหนก็ได้ให้เป็น tool function API Pick ยังเผยแพร่ endpoint สำหรับ tool schema ของ OpenAI/Claude เพิ่มเติม (GET /api/search/web/tool-schema) ให้คุณคัดลอกนิยาม JSON ที่ตรงเป๊ะไปวางลงใน agent loop ได้ทันที
API Pick เป็น wrapper ของ Tavily หรือเปล่า?
ไม่ใช่ API Pick รัน pipeline การรวม index การค้นหา การจัดอันดับ และการจัดรูป snippet ของตัวเอง ผลลัพธ์ถูกออกแบบให้เรียบง่ายกว่าของ Tavily โดยตั้งใจ: title + URL + snippet ที่เหมาะกับ LLM พร้อมตัวกรองประเทศและช่วงวันที่แบบ optional คุณเรียก POST /api/search/web ได้โดยตรงโดยไม่ต้องผ่านเลเยอร์ RAG แบบ hosted
แล้วเรื่อง latency ล่ะ?
ทั้งสี่ตัวออกแบบมาสำหรับ call แบบ synchronous ของ agent ค่า latency ที่ P50 ใกล้เคียงกันคร่าว ๆ (ต่ำกว่าหนึ่งวินาทีสำหรับ query สั้น ๆ) จุดที่ latency พุ่งขึ้นจริง ๆ คือเมื่อ API รัน LLM call ปลายทางไว้ภายใน endpoint การค้นหาด้วย — search API ล้วน ๆ จะคืนผลเร็วกว่า endpoint แบบ "search + answer" รวมกัน
ตัวไหนเป็นทางเลือกแทน Tavily ที่ดีที่สุด?
หากคุณกำลังจะย้ายออกจาก Tavily เพราะค่าสมาชิกขั้นต่ำหรือราคาส่วนเกินที่ไม่โปร่งใส API Pick Web Search คือตัวแทนแบบ pay-as-you-go ที่ใกล้เคียงที่สุด: รูปแบบเดียวกัน (JSON ที่จัดอันดับและจัดรูป snippet มาแล้ว) มีตัวกรองประเทศ/วันที่ และไม่มีขั้นต่ำรายเดือน
API ที่ใช้ในบทความนี้
Sarah Choy เป็น CEO ของ API Pick เธอเขียนเกี่ยวกับการสร้าง API พร้อมใช้งานจริงสำหรับ AI agent และเวิร์กโฟลว์ LLM