ทดลอง
5,000 การค้นหา
US$9.25
US$1.85/1K การค้นหา
- เชื่อมต่อเข้ากับ agent ตัวเดียว
- API เดียวกับแพ็กที่ใหญ่ที่สุด
- เครดิตไม่มีวันหมดอายุ
กรณีการใช้งาน · AI Agent · ชื่อเครื่องมือ web_search
Agent ที่ค้นหาได้แต่ไม่สามารถอ่านได้จะเดาจาก snippet ให้มันมีเครื่องมือเดียวที่ทำทั้งสองอย่าง: ค้นหาเว็บแบบเรียลไทม์และคืนหน้าเว็บแรก ๆ เป็น Markdown ที่สะอาด กำกับหมายเลขเพื่อให้โมเดลอ้างอิงได้
คำตอบสั้น
ฉันจะมอบเครื่องมือค้นหาเว็บให้ AI Agent ที่คืนเนื้อหาหน้าเว็บได้อย่างไร?
ห่อ web search API เป็นเครื่องมือที่รับคำค้นหาและคืนแหล่งข้อมูลที่กำกับหมายเลขพร้อมเนื้อหาหน้าเว็บ LLMWebSearch ทำเช่นนี้ในการเรียกครั้งเดียว: ผลลัพธ์ที่จัดอันดับจากการค้นหาแบบเรียลไทม์ พร้อมหน้าเว็บ 3 หน้าแรกที่อ่านเป็น Markdown ในราคาหนึ่งเครดิต ราคาเริ่มต้นที่ US$9.25 สำหรับ 5,000 การค้นหา และลดลงไปจนถึง US$1.20/1K การค้นหา ไม่ต้อง KYC จ่ายด้วยคริปโต
| เครื่องมือ | web_search(query, recent) เรียก POST https://llmwebsearch.com/api/v1/search |
|---|---|
| ส่งคืน | ผลลัพธ์ที่จัดอันดับสูงสุด 20 รายการ; 3 รายการแรกพร้อมเนื้อหาหน้าเว็บใน Markdown |
| การควบคุมความยาว | max_chars ต่อหน้า, read สำหรับจำนวนหน้า, max_results สำหรับรายการ |
| ค่าใช้จ่าย | หนึ่งเครดิตจ่ายสำหรับการค้นหาหนึ่งครั้ง: ผลลัพธ์แบบจัดอันดับสูงสุด 20 รายการ โดยอ่านหน้าเว็บของ 3 รายการแรกและส่งกลับเป็น Markdown การอ่าน 4 ถึง 10 หน้าใช้ 2 เครดิต การเรียกที่จบลงด้วยข้อผิดพลาดไม่มีค่าใช้จ่าย |
| ตัวกรอง | เลือกประเทศและภาษาของผลลัพธ์ ช่วงเวลา (วัน สัปดาห์ เดือน หรือปีที่ผ่านมา) ผลการค้นหาแบบเว็บหรือข่าว และโดเมนที่ต้องการรวมหรือยกเว้น |
| การเชื่อมต่อสำเร็จรูป | MCP server, OpenAI function calling, LangChain และ LlamaIndex, n8n, OpenClaw |
เพราะคำตอบแทบไม่เคยอยู่ใน snippet หน้าผลการค้นหาให้ชื่อเรื่องและหนึ่งหรือสองบรรทัดที่ search engine เลือกมา ตัวเลข วันที่ หรือกฎที่ผู้ใช้ถามถึงมักอยู่ลึกลงไปในหน้า
agent ที่เห็นแค่ snippet มีสองทางเลือกที่ไม่ดี ทางแรกตอบจากเศษข้อความและเสี่ยงผิด ทางที่สองเรียกเครื่องมืออีกตัวเพื่อดึงแต่ละหน้า ทางที่สองทำให้ round trip และนิยามเครื่องมือเพิ่มเป็นสองเท่า
กับ LLMWebSearch หน้าแรกๆ มาถึงแบบอ่านแล้วNavigation, โฆษณา และแบนเนอร์คุกกี้ถูกตัดออก โมเดลจึงใช้ token ไปกับเนื้อหา ผลลัพธ์ที่เหลือยังมี snippet ติดมาด้วย ช่วยให้โมเดลตัดสินใจว่าจะค้นต่อหรือไม่
ทำให้ schema เล็ก: มี query แบบ required หนึ่งตัว และสวิตช์อย่างมากหนึ่งหรือสองตัว โมเดลเรียกเครื่องมือที่เรียบง่ายได้น่าเชื่อถือกว่า ตัวอย่างด้านล่างเปิด flag recent ที่แมปกับ time_range=month ส่วนที่เหลือกำหนดตายตัวในโค้ดของคุณ
ฟังก์ชันคืนค่าเป็น plain text ไม่ใช่ JSON แต่ละแหล่งเริ่มด้วยตัวเลข ชื่อเรื่อง และ URL ตามด้วย Markdown ทำให้การอ้างอิงแบบ [2] เป็นเรื่องธรรมชาติสำหรับโมเดล
ถ้า agent ของคุณมีเครื่องมือชื่อ web_search อยู่แล้ว เช่นเดียวกับ Claude Code และ OpenClaw ให้ตั้งชื่อของคุณเป็นอย่างอื่น เช่น search_web เพราะเครื่องมือสองตัวชื่อเดียวกันจะทำให้โมเดลสับสน
import json
import os
import requests
API = "https://llmwebsearch.com/api/v1/search"
HEADERS = {"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]}
# Tool definition in the OpenAI function-calling format; most agent frameworks accept the same JSON schema.
WEB_SEARCH_TOOL = {
"type": "function",
"function": {
"name": "web_search",
"description": "Search the live web. Returns numbered sources; the first ones include the page text in Markdown.",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "A short search query, 3 to 8 words"},
"recent": {"type": "boolean", "description": "True to keep only results from the past month"},
},
"required": ["query"],
},
},
}
def web_search(query, recent=False, read=3, max_chars=4000):
"""Run one search (1 credit with read <= 3) and return compact text the model can cite."""
body = {"q": query, "max_results": 5, "read": read, "max_chars": max_chars}
if recent:
body["time_range"] = "month"
resp = requests.post(API, headers=HEADERS, json=body, timeout=60)
resp.raise_for_status()
lines = []
for r in resp.json()["results"]:
lines.append(f"[{r['position']}] {r['title']} — {r['url']}")
if r.get("content_status") == "ok":
lines.append(r["content"])
else:
lines.append(r.get("snippet", ""))
lines.append("")
return "\n".join(lines)
def run_tool_call(call):
"""Execute a tool call returned by the model and give back the text for the tool message."""
args = json.loads(call["function"]["arguments"])
return web_search(args["query"], recent=args.get("recent", False))ค้นหาเมื่อคำตอบขึ้นกับข้อเท็จจริงที่เปลี่ยนได้หรือที่โมเดลไม่รู้ ราคา เวอร์ชัน กฎหมาย ตารางเวลา และเหตุการณ์ล่าสุดเข้าข่าย คำจำกัดความและความรู้ที่มั่นคงมักไม่ต้องค้น
เขียนกฎนี้ลงใน system prompt และเพิ่ม budget สามนิสัยช่วยได้:
พารามิเตอร์สามตัวกำหนดว่าข้อความเท่าไรส่งถึงโมเดล read กำหนดจำนวนหน้าที่อ่าน ตั้งแต่ 0 ถึง 10 max_chars จำกัดแต่ละหน้า ตั้งแต่ 500 ถึง 50,000 ตัวอักษร max_results กำหนดจำนวนผลลัพธ์ที่แสดง ตั้งแต่ 1 ถึง 20
สำหรับ chat agent read=3 กับ max_chars=4000 คืนข้อความจากหน้าเว็บประมาณ 12,000 ตัวอักษรต่อการค้นหา ซึ่งเหลือที่ให้ค้นได้หลายครั้งในบทสนทนาเดียว สำหรับงานวิจัยที่สรุปไปด้วยระหว่างทำ หน้าที่ยาวกว่าก็ใช้ได้
ฟิลด์ word_count บอกว่าหน้าเต็มยาวเท่าไรก่อนถูกตัด agent ใช้ค่านี้ตัดสินใจว่าจะดึงเพิ่มด้วย extract endpoint หรือไม่
ผลลัพธ์ยังส่งกลับมาพร้อมชื่อเรื่อง URL และ snippet แต่ไม่มีเนื้อหา ฟิลด์ content_status บอกเหตุผล
blocked_by_robots: robots.txt ของไซต์ไม่อนุญาตให้ reader ของเราเข้าถึงblocked_by_site_policy: เว็บไซต์ที่ตั้งค่า Content-Signal: ai-input=no ใน robots.txt จะกันหน้าเว็บของตนออกจากเนื้อหาในผลลัพธ์ของคุณtarget_refused: ไซต์ตอบกลับด้วยการปฏิเสธ status อยู่ใน target_statusfetch_failed หรือ fetch_timeout: หน้าเว็บโหลดไม่ทันเวลาเมื่อเว็บไซต์ปิดกั้นตัวอ่านของเรา ผลลัพธ์จะกลับมาโดยไม่มีเนื้อหาและมีสถานะของเว็บไซต์: เราไม่แก้ CAPTCHA ไม่ลงชื่อเข้าใช้บัญชี และไม่หลบเลี่ยงการบล็อกหรือ paywall บอก agent ให้ใช้ snippet หรือแหล่งอื่นเมื่อหน้าเว็บกลับมาเปล่า การค้นหายังคงใช้หนึ่งเครดิต ไม่ว่าแต่ละหน้าจะเกิดอะไรขึ้น
เครื่องมือที่ติดมามีความสะดวกแต่ให้การควบคุมน้อยกว่า ณ วันที่ 22 ตุลาคม 2026 เครื่องมือ web_search ของ OpenAI คิดราคา $10 ต่อ 1,000 ครั้ง บวกค่าเนื้อหาการค้นหาที่คิดเป็น input token Claude web search ของ Anthropic ก็คิด $10 ต่อ 1,000 การค้นหา บวกค่า token Gemini 3 grounding มีการค้นหาฟรี 5,000 ครั้งต่อเดือนในแพ็กเกจแบบชำระเงิน จากนั้นคิด $14 ต่อ 1,000
เครื่องมือเหล่านี้ส่วนใหญ่คืนคำตอบที่เขียนขึ้นพร้อมการอ้างอิง ไม่ใช่หน้าเว็บดิบ อีกทั้งผูกการค้นหาของคุณไว้กับผู้ขายโมเดลรายเดียว เครื่องมือแบบแยกทำงานได้กับโมเดลใดก็ได้ และให้คุณกำหนดความยาวของแต่ละหน้า การเปรียบเทียบเครื่องมือที่ติดมากับโมเดล มีตารางเต็ม
หนึ่งเครดิตต่อการค้นหาเมื่อ read เป็น 3 หรือน้อยกว่า ผู้ช่วยที่ทีมใช้ตอบ 100 คำถามต่อวันด้วยการค้นหา 4 ครั้งต่อคำถาม ใช้ประมาณ 12,000 การค้นหาต่อเดือน ค้นหา 25,000 ครั้ง ที่ US$41.25 ครอบคลุมเดือนนั้นและเกือบทั้งเดือนถัดไป
coding agent ที่นักพัฒนาคนเดียวใช้ค้นหาอาจ 20 ครั้งต่อวัน หรือประมาณ 600 ครั้งต่อเดือน 5,000 การค้นหา ที่ US$9.25 จะอยู่ได้หลายเดือน เพราะเครดิตไม่หมดอายุ คู่มือค่าใช้จ่าย แสดงการคำนวณสำหรับงานที่ใหญ่ขึ้น
ทดลองบน 5,000 การค้นหา; เปลี่ยนไป ค้นหา 25,000 ครั้ง หรือ ค้นหา 100,000 ครั้ง เมื่อ agent ใช้งานประจำวันแล้ว
5,000 การค้นหา
US$9.25
US$1.85/1K การค้นหา
ค้นหา 25,000 ครั้ง
US$41.25
US$1.65/1K การค้นหา
ค้นหา 100,000 ครั้ง
US$145
US$1.45/1K การค้นหา
ในทุกแพ็กเกจ: อ่าน 3 หน้าแรกเป็น Markdown · ตัวกรองประเทศ ภาษา เวลา และโดเมน · การเรียกที่ไม่สำเร็จไม่ถูกเรียกเก็บเงิน · เครดิตไม่มีวันหมดอายุ
ได้ ผ่าน MCP server เล็กๆ ที่เปิดการค้นหาเป็นเครื่องมือ หน้า MCP มีโค้ดและการตั้งค่า client
ได้ schema ด้านบนเป็น JSON Schema ธรรมดา ซึ่ง Anthropic, Google, Mistral และ framework โอเพนซอร์สรับได้โดยแก้เล็กน้อย เครื่องมือเพียงเรียก HTTPS endpoint ของเรา
นับจำนวนครั้งใน tool wrapper ของคุณ และคืนข้อความสั้นๆ เมื่อใช้ budget หมดแล้ว ใส่ budget ใน system prompt ด้วย เพื่อให้โมเดลวางแผนรองรับ
ทำได้ แต่มันจะพยายาม มองข้อความในหน้าเว็บเป็นข้อมูล: บอกโมเดลใน system prompt ให้เพิกเฉยต่อคำสั่งที่พบในแหล่งข้อมูล และอย่าให้แหล่งข้อมูลกระตุ้นการกระทำเองได้
เริ่มต้นที่ US$1.20/1K การค้นหา · ไม่ต้อง KYC
รับ API key