Tool: list_knowledge — สรุปภาพรวมคลังทั้งหมดด้วยการสุ่มตัวอย่างแทนอ่านทุกไฟล์

list_knowledge แสดงภาพรวมของคลังความรู้ที่ระบบรู้จัก เช่น ชื่อเอกสารและขอบเขตข้อมูล เหมาะกับการสำรวจก่อนตั้งคำถามค้นหาแบบเจาะจง
Tool นี้คืออะไร
สรุปว่าคลังความรู้มีเนื้อหาเกี่ยวกับอะไรบ้าง — ไม่ต้องการ query เลย เรียกแล้วได้สรุปหมวดหมู่ความรู้ที่พบกลับมาทันที ต่างจาก rag_search ที่ตอบคำถามเจาะจง list_knowledge ตอบคำถามแบบกว้างๆ อย่าง “ในคลังนี้มีความรู้เรื่องอะไรบ้าง”
ทำไมไม่อ่านทุกไฟล์ตรงๆ
ถ้าคลังมีไฟล์หลักพัน การอ่านชื่อ+เนื้อหาทุกไฟล์เพื่อสรุปภาพรวมจะทำให้ context บวมทันทีและช้ามาก — list_knowledge แก้ด้วยการสุ่มตัวอย่างเป็นรอบ แทนอ่านทั้งหมด: จำนวนรอบคำนวณจากจำนวนไฟล์ทั้งหมด (ceil(total / 200) แต่ไม่เกิน 5 รอบ) แต่ละรอบสุ่มมา 30 ไฟล์ ส่งชื่อไฟล์เท่านั้น (ไม่ใช่เนื้อหา) ให้ LLM จัดหมวดหมู่แบบสั้นๆ (ไม่เกิน 5 bullet point ภาษาไทย)
รวมสรุปจากหลายรอบเป็นสรุปเดียว
ถ้ามีมากกว่า 1 รอบ ระบบไม่ได้แค่เอาสรุปแต่ละรอบมาต่อกันเฉยๆ แต่ส่งสรุปของทุกรอบกลับเข้า LLM อีกครั้งเป็น prompt ที่สอง ให้สรุปรวมเป็นภาพเดียว (3-6 bullet point) — เป็นรูปแบบ map-reduce แบบง่าย: map คือสรุปแต่ละรอบจากตัวอย่างที่สุ่มมา, reduce คือรวมสรุปย่อยทั้งหมดเป็นภาพรวมสุดท้าย ทำให้แม้คลังจะใหญ่มาก การสรุปก็ยังจบด้วยจำนวนการเรียก LLM ที่จำกัด (สูงสุด 5 รอบ + 1 รอบรวม = 6 ครั้ง ไม่ว่าคลังจะมีกี่พันไฟล์)
ผลลัพธ์บอกความโปร่งใสของการสุ่มด้วย
คำตอบสุดท้ายไม่ได้แกล้งทำเป็นว่าอ่านครบทุกไฟล์ — บอกตรงๆ ว่า “พบไฟล์ทั้งหมด N ไฟล์ (สุ่มตรวจ M ไฟล์ใน K รอบ)” ก่อนแสดงสรุป ให้ผู้ใช้รู้ขอบเขตของสิ่งที่เห็นจริง ว่านี่คือภาพรวมจากตัวอย่างสุ่ม ไม่ใช่การสำรวจครบถ้วน 100%
ทำไมเรื่องนี้ถึงสำคัญ
list_knowledge แสดงหลักการที่ใช้ซ้ำได้ในหลายที่: เมื่อข้อมูลมีมากเกินกว่าจะประมวลผลทั้งหมดได้ในครั้งเดียว การสุ่มตัวอย่างแบบมีโครงสร้าง (sample → summarize → aggregate) ให้คำตอบที่มีประโยชน์ได้โดยไม่ต้องประมวลผลทุกอย่าง — คล้ายกับหลักการ sampling ที่เห็นใน read_file ของ LOCAL AGENT TH ที่สุ่มตัวอย่างเอกสารใหญ่แทนอ่านทั้งไฟล์ เพียงแต่ที่นี่ใช้กับทั้งคลังแทนที่จะเป็นไฟล์เดียว
ความคิดเห็น
กำลังโหลดความคิดเห็น...