Tool: create_plan — ให้โมเดลตัวเบาที่ temperature=0 วางแผน แทน main agent วางแผนเอง

create_plan แปลงงานที่มีหลายขั้นเป็นรายการแผนที่ติดตามสถานะได้ ช่วยให้ agent เห็นงานที่ทำแล้ว งานถัดไป และจุดที่ยังต้องตัดสินใจตลอด session
Tool นี้คืออะไร
วางแผนงานหลายขั้นตอนสำหรับคำถามที่ซับซ้อน (ค้นหลายมุม, ทำหลายไฟล์, เปรียบเทียบหลายสิ่ง) — คืนขั้นตอน 2-6 ข้อเป็นภาษาไทยให้ agent ทำตามลำดับ ห้ามเรียกสำหรับคำถามง่าย/ทักทาย/คณิตศาสตร์
จุดออกแบบที่สำคัญที่สุด: ไม่ให้ main agent วางแผนเอง
คอมเมนต์ในซอร์สอธิบายการตัดสินใจนี้ตรงๆ ว่าเป็น “Option B (advisor)”: create_plan ห่อหุ้ม LLM call แยกต่างหาก (ฟังก์ชัน plan() ใน planner.py ที่มี prompt เฉพาะทาง, temperature=0, JSON retry, และ validation ว่าต้องมีอย่างน้อย 2 ขั้นตอน) แทนที่จะให้ main agent สร้างขั้นตอนเองตรงๆ ซึ่งรันที่ temperature=0.3 และอยู่ท่ามกลาง context ที่เต็มไปด้วย tool schema จำนวนมาก (tool-laden context)
เหตุผล: การวางแผนเป็นงานที่ต้องการความนิ่ง (deterministic) มากกว่าความคิดสร้างสรรค์ — LLM call แยกที่ตั้ง temperature=0 และมี prompt ที่ออกแบบมาเฉพาะสำหรับงานวางแผนอย่างเดียว (ไม่ต้องแข่งความสนใจกับ tool schema ของอีก 21 tools ที่ main agent ต้องเห็นตลอดเวลา) ให้ผลลัพธ์ที่สม่ำเสมอกว่า — เป็นหลักการเดียวกับที่เห็นใน AGENT LITE (โค้ด/กลไกเฉพาะทางดีกว่าฝากทุกอย่างไว้กับโมเดลตัวเดียวที่ทำทุกอย่าง) แต่ประยุกต์ในรูปแบบ “โมเดลเฉพาะทางแยกต่างหาก” แทนที่จะเป็น “โค้ด deterministic ล้วนๆ”
Contract ที่ชัดเจน: simple หรือ complex เท่านั้น
plan() คืนผลได้แค่ 2 รูปแบบ: {"mode": "simple"} (บอกตรงๆ ว่าไม่ต้องวางแผน ตอบได้เลย) หรือ {"mode": "complex", "plan": [ขั้นตอน...]} — contract ที่ตายตัวแบบนี้ทำให้ทั้ง create_plan tool และกลไกบังคับสร้างแผนใน graph.py (_force_plan_or_directive, อธิบายไว้ใน บทความ how it works) ใช้ข้อความแผนเดียวกันแบบ byte-identical ผ่านฟังก์ชัน format_plan() ร่วมกัน — ไม่มีการ format แยกสองที่ที่อาจไม่ตรงกัน
แผนที่ได้มาพร้อม “EXECUTE NOW” block กำกับ
ผลลัพธ์ที่คืนกลับไม่ใช่แค่รายการขั้นตอนเฉยๆ แต่มี block คำแนะนำต่อท้ายที่จับคู่ประเภทงานกับ tool ที่ควรใช้ตรงๆ เช่น “search/find → web_search → scratch_write ทันที”, “browse หลาย URL พร้อมกัน → batch_browse” พร้อมส่วน “FORBIDDEN during plan execution” ที่ห้าม bash (บอกตรงๆ ว่า “bash cannot search the web and has no research capability”) และห้ามเรียก create_plan ซ้ำ (แผนนี้เป็นที่สุดแล้ว) — ลดความเสี่ยงที่โมเดลจะเบี่ยงเบนออกจากแผนที่วางไว้ระหว่างดำเนินการจริง
ทำไมเรื่องนี้ถึงสำคัญ
create_plan แสดงแนวคิดที่ต่างจาก AGENT LITE ในระดับสถาปัตยกรรม: แทนที่จะใช้ โค้ด Python ล้วนๆ ควบคุมพฤติกรรม (แบบที่ LITE ทำกับ guardrail ต่างๆ) LOCAL AGENT TH เลือกใช้ LLM เฉพาะทางตัวที่สอง (ตั้งค่าต่างจาก main agent) สำหรับงานที่ต้องการความเข้าใจภาษาธรรมชาติแต่ก็ต้องการความนิ่งเป็นพิเศษ — ทั้งสองแนวทางมีเป้าหมายเดียวกันคือไม่ฝากทุกการตัดสินใจสำคัญไว้กับ main agent ตัวเดียวที่ทำงานหลายอย่างพร้อมกัน
ความคิดเห็น
กำลังโหลดความคิดเห็น...