Tool: web_search — ค้นพร้อมกันสูงสุด 4 query ด้วย code-only evidence pipeline

ภาพประกอบ: Tool: web_search — ค้นพร้อมกันสูงสุด 4 query ด้วย code-only evidence pipeline

web_search ใช้เมื่อคำถามต้องพึ่งข้อมูลภายนอกหรือข้อมูลที่เปลี่ยนตามเวลา เช่นข่าวล่าสุด ราคา เหตุการณ์ปัจจุบัน หรือข้อมูลจากเว็บไซต์

รุ่นปัจจุบันรองรับ 1 query หรือ batch 2–4 query ใน tool call เดียว

ตัวอย่าง

คำถามเดียว:

web_search(query="Python latest release notes")

หลาย fact/angle:

web_search(query=[
  "NVIDIA total revenue",
  "NVIDIA data center revenue",
  "NVIDIA gross margin",
  "NVIDIA guidance"
])

เมื่อส่ง list หลาย query ระบบรันการค้นพร้อมกัน แล้วจัดผลกลับแยกตาม query

ทำไม batch ภายใน tool

ถ้าผู้ใช้ถาม 4 ตัวเลขจากแหล่งปัจจุบัน การให้ agent เรียก tool 4 รอบต้องเสีย model/tool round trip 4 ครั้ง

การรวมเป็น call เดียวทำให้ concurrency อยู่ในโค้ดที่ควบคุมได้ และยังสามารถจำกัดจำนวน query สูงสุดไว้ที่ 4

Pipeline รุ่นปัจจุบันไม่เรียก LLM

web_search.py ใช้ deterministic code pipeline:

queries
→ parallel search
→ URL/IP/redirect validation
→ code-only relevance ranking
→ source diversity selection
→ fetch selected pages
→ query-matching passage extraction
→ evidence lines + source URLs

ไม่มี LLM classifier ภายใน web_search และไม่มี model summarizer ซ้อนอยู่ใน browse path

ป้องกัน SSRF / DNS rebinding

URL ที่จะ fetch ต้องผ่าน validation ของ host/IP และ redirect ทุกครั้ง Connection ถูกผูกกับ public IP ที่ผ่าน validation เพื่อไม่ให้ผลค้นพา tool เข้า localhost, private network หรือปลายทางที่เปลี่ยน IP หลังตรวจครั้งแรก

Source diversity

ระบบไม่เชื่อ ranking ของ search engine อย่างเดียว แต่พยายามเลือกแหล่งที่ relevance ดีและไม่กระจุกอยู่โดเมนเดียวโดยไม่จำเป็น

โดยปกติเลือก evidence page แบบ bounded; batch 4 query สามารถคงอย่างน้อยหนึ่ง source ต่อ query เมื่อเหมาะสม

ดึงเฉพาะ passage ที่เกี่ยวข้อง

หน้าเว็บที่ fetch สำเร็จไม่ได้ถูกส่งทั้งหน้าเข้าโมเดล โค้ดลดให้เหลือข้อความสั้นที่ match กับ query เพื่อลด context และลดโอกาสที่ boilerplate/ข้อความที่ไม่เกี่ยวข้องจะปะปน

ถ้า fetch page ไม่ได้หรือไม่มี passage ที่ใช้ได้ search snippet ยังเป็น fallback ได้ตาม policy

Retry ต้องเปลี่ยน query จริง

ถ้าผลขึ้น [needs_retry] agent ต้องปรับ query ให้เจาะจงขึ้น เช่นเพิ่มชื่อ subject, location หรือช่วงเวลา ห้ามยิง query เดิมซ้ำ

เปลี่ยนเพียง whitespace หรือเติมข้อเท็จจริงที่ไม่ได้มีหลักฐานมาก่อนไม่ถือเป็น retry ที่ดี

Citation เป็น code-owned behavior

ผลลัพธ์ทุก evidence line รักษา source URL ไว้ Agent layer สามารถสังเคราะห์คำตอบเป็นภาษาไทย แล้วโค้ดแนบ filtered source links ท้ายคำตอบแทนการหวังให้โมเดล 2B จำ URL และพิมพ์ถูกทุกครั้ง

web_search ไม่ใช่ fallback สำหรับ Knowledge Base หรือ Desktop/Documents

ถ้า local MCP/RAG ใช้ไม่ได้ ระบบต้อง fallback ไป local read-only tool ใน scope เดิม ไม่ส่งชื่อ/เนื้อหาไฟล์ของผู้ใช้ขึ้น search engine เพื่อ “ลองหาแทน”

อ่านต่อ

ความคิดเห็น

กำลังโหลดความคิดเห็น...