Tool: workspace_ls — บังคับให้ agent ดูรายชื่อไฟล์จริงก่อนอ้าง path เอง

workspace_ls แสดงรายชื่อไฟล์และโฟลเดอร์ใน workspace เพื่อให้ agent เห็นโครงสร้างของงานก่อนเลือกไฟล์ที่จะอ่าน ค้นหา หรือแก้ไข
Tool นี้คืออะไร
แสดงรายการไฟล์ทั้งหมดใน workspace เป็นแบบ tree แบบ recursive — ไม่มีพารามิเตอร์ให้ต้องกรอกเลย เรียกแล้วได้รายชื่อไฟล์ทั้งหมดที่มีอยู่จริง (path สัมพัทธ์กับ workspace) กลับมาทันที กรองไฟล์ชั่วคราวของ agent เอง (ที่ขึ้นต้นด้วย ._exec_, มาจาก python_exec) ออกไม่ให้ปนกับไฟล์จริง
ทำไม tool ที่ดูเรียบง่ายที่สุดถึงสำคัญ
จุดสำคัญของ tool นี้ไม่ใช่ตัวมันเอง แต่คือบทบาทที่มันมีต่อ tool อื่น — tool_loop (action read_file) มี HARD RULE เขียนไว้ตรงๆ ในตัวมันเองว่า ก่อนจะเรียกอ่านไฟล์หลายไฟล์พร้อมกัน โมเดลต้องถามตัวเองก่อนเสมอ:
“paths ใน items มาจาก workspace_ls() หรือ bash ที่เพิ่ง call ในรอบนี้ไหม?” YES (มี tool output ในรอบนี้) → ดำเนินการได้ NO (จำ / เดา / copy จาก context) → ต้องเรียก workspace_ls() ก่อนเสมอ
พูดง่ายๆ: ห้ามให้โมเดลอ้าง path ไฟล์จากความจำหรือการเดาเด็ดขาด ต้องเห็นรายชื่อไฟล์จริงจากเครื่องมือก่อนเสมอ — เพราะโมเดลอาจ “จำผิด” ชื่อไฟล์จากบทสนทนาก่อนหน้า หรือเดาชื่อไฟล์ที่ฟังดูสมเหตุสมผลแต่ไม่มีอยู่จริง workspace_ls เป็นแหล่งความจริงเดียว (single source of truth) ที่ตัดปัญหานี้ทิ้งไปเลย
Docstring บอกเงื่อนไขการเรียกตรงๆ
Docstring สั้นแต่ชัดเจน: “Call this when the user mentions a filename or dataset by name only, to discover its full relative path before reading or analyzing it” — เมื่อผู้ใช้พูดถึงไฟล์แค่ชื่อสั้นๆ (เช่น “ไฟล์ sales.csv”) โดยไม่บอก path เต็ม โมเดลควรเรียก workspace_ls ก่อนเพื่อหา path ที่ถูกต้องจริง แทนที่จะเดาว่าไฟล์อยู่ที่ root ของ workspace ตรงๆ ทั้งที่จริงอาจอยู่ในโฟลเดอร์ย่อย
ทำไมเรื่องนี้ถึงสำคัญ
workspace_ls แสดงหลักการที่สำคัญมากแต่มักถูกมองข้าม: tool ที่เรียบง่ายที่สุดบางครั้งมีค่ามากที่สุดในแง่ความน่าเชื่อถือของระบบทั้งหมด — มันไม่ได้ทำอะไรซับซ้อน แค่บอกความจริงว่ามีไฟล์อะไรอยู่บ้าง แต่การบังคับให้ agent ตรวจสอบความจริงนี้ก่อนอ้าง path ทุกครั้ง (แทนที่จะเดาหรือจำจากบทสนทนาเก่า) ป้องกันข้อผิดพลาดประเภท “หาไฟล์ไม่เจอเพราะเดา path ผิด” ได้อย่างมีประสิทธิภาพ โดยไม่ต้องเพิ่มความซับซ้อนอะไรเลยที่ตัว tool เอง
ความคิดเห็น
กำลังโหลดความคิดเห็น...