การมองแบบเอเจนต์: เราออกแบบเครื่องมือใน Claude Code อย่างไร
Tools
![]()
เคยสงสัยไหมว่าทีมงานเบื้องหลังเครื่องมือ AI สุดเจ๋งอย่าง Claude Code เขาคิดค้นและพัฒนาเครื่องมือต่างๆ ออกมาได้อย่างไร? บทความเรื่อง "การมองแบบเอเจนต์: เราออกแบบเครื่องมือใน Claude Code อย่างไร" (Seeing like an agent: how we design tools in Claude Code) พาเราไปเจาะลึกกระบวนการที่ทีม Claude Code ใช้ในการออกแบบ ทดสอบ และปรับปรุงเครื่องมือสำหรับเอเจนต์ AI โดยใช้มุมมองของโมเดล AI เป็นหลัก ซึ่งเรื่องนี้จัดอยู่ในหมวดหมู่ Claude Code โดยตรงเลยนะ
Claude Code กับการทำงานแบบเอเจนต์
หัวใจสำคัญของการทำงานของ Claude คือการเรียกใช้เครื่องมือ (tool calling) ซึ่งเอเจนต์ของ Claude สามารถทำงานได้อย่างเต็มที่ผ่านการเรียกใช้เครื่องมือเหล่านี้ โดยเครื่องมือต่างๆ สามารถสร้างขึ้นได้ใน Claude API โดยใช้องค์ประกอบพื้นฐานอย่าง bash เพื่อเรียกใช้คำสั่งเชลล์ (ดูเพิ่มเติมเกี่ยวกับ Bash Tool) skills หรือ code execution สำหรับการรันโค้ด (เรียนรู้เพิ่มเติมเกี่ยวกับ Code Execution Tool)
การออกแบบเครื่องมือให้เหมาะสมกับความสามารถของโมเดลเป็นสิ่งสำคัญมาก เหมือนกับการที่เราต้องการเครื่องมือที่ใช่ในการแก้ปัญหาที่ซับซ้อนนั่นแหละ ทีมงานต้องคอยสังเกต ทดลอง และเรียนรู้จากผลลัพธ์ที่ Claude สร้างขึ้น เพื่อ "มองโลกแบบเอเจนต์" และเลือกเครื่องมือที่ใช่ในเวลาที่เหมาะสม
ทำไมต้องมี AskUserQuestion Tool?
ปัญหาหนึ่งที่ทีม Claude Code เจอคือการที่ Claude พยายามถามคำถาม (elicitation) กับผู้ใช้งาน แต่กระบวนการนี้ค่อนข้างช้าและต้องใช้เวลามาก เป้าหมายหลักของการพัฒนา AskUserQuestion tool ก็เพื่อปรับปรุงความสามารถในการถามคำถามของ Claude และลดความยุ่งยากในการสื่อสารระหว่างผู้ใช้กับ Claude ให้ราบรื่นยิ่งขึ้น
การลองผิดลองถูกเพื่อเครื่องมือที่ใช่
กว่าจะมาเป็น AskUserQuestion tool อย่างที่เห็นในปัจจุบัน ทีมงานได้ลองผิดลองถูกมาหลายครั้งเลยทีเดียว:
- ลองแก้ไข
ExitPlanTool: ในตอนแรก ทีมงานลองเพิ่มพารามิเตอร์สำหรับชุดคำถามเข้าไปในExitPlanToolซึ่งเป็นวิธีที่ทำได้ง่ายที่สุด แต่กลับสร้างความสับสนให้กับ Claude เพราะมันต้องจัดการทั้งแผนงานและชุดคำถามไปพร้อมกัน ทำให้เกิดปัญหาว่าถ้าคำตอบของผู้ใช้ไม่ตรงกับแผนที่วางไว้ Claude จะต้องทำอย่างไรต่อ วิธีนี้เลยไม่เวิร์ก - ลองเปลี่ยนรูปแบบการแสดงผล: ทีมงานลองปรับปรุงคำแนะนำการแสดงผลของ Claude ให้ใช้รูปแบบ markdown พิเศษสำหรับคำถาม เช่น กำหนดให้แสดงเป็นรายการคำถามแบบ bullet point พร้อมตัวเลือกในวงเล็บ แม้ว่า Claude จะสร้างรูปแบบนี้ได้บ้าง แต่ก็ไม่น่าเชื่อถือ บางครั้งก็เพิ่มประโยคแปลกๆ เข้ามาบ้าง ลืมตัวเลือกบ้าง หรือละทิ้งโครงสร้างไปเลยก็มี
- สุดท้ายก็มาลงตัวที่
AskUserQuestionTool: ในที่สุด ทีมงานก็ตัดสินใจสร้างเครื่องมือใหม่โดยเฉพาะชื่อAskUserQuestiontool ซึ่ง Claude สามารถเรียกใช้ได้ทุกเมื่อ โดยเฉพาะในช่วงการวางแผน เมื่อเครื่องมือนี้ถูกเรียกใช้ จะมีหน้าต่างป๊อปอัปแสดงคำถามขึ้นมา และจะหยุดการทำงานของเอเจนต์ไว้ชั่วคราวจนกว่าผู้ใช้จะตอบ เครื่องมือนี้ช่วยให้ Claude สามารถสร้างคำถามที่มีโครงสร้างชัดเจน และยังช่วยให้ผู้ใช้มีตัวเลือกในการตอบที่หลากหลาย ที่สำคัญคือ Claude เองก็ดูจะชอบเรียกใช้เครื่องมือนี้ และผลลัพธ์ที่ได้ก็ดีมากๆ เลยนะ
บทสรุปและอนาคต
แม้ว่า AskUserQuestion tool จะช่วยแก้ปัญหาเรื่องการถามคำถามได้ดี แต่ทีมงานเชื่อว่านี่ไม่ใช่จุดสิ้นสุด เพราะเมื่อ Claude มีความสามารถมากขึ้น เครื่องมือที่รองรับก็ต้องพัฒนาตามไปด้วย อย่างที่เราเห็นจากการปรับปรุงเครื่องมือ TodoWrite ที่แต่ก่อนช่วยให้ Claude จดจำงานได้ แต่เมื่อโมเดลฉลาดขึ้น To-do list ก็กลับกลายเป็นข้อจำกัดไปเสียอย่างนั้น สิ่งนี้ย้ำให้เห็นว่าการออกแบบเครื่องมือ AI ต้องเป็นกระบวนการที่ต่อเนื่องและพร้อมที่จะเปลี่ยนแปลงตามความก้าวหน้าของโมเดลอยู่เสมอ
อ่านต่อ: อยากรู้เบื้องหลังการออกแบบเครื่องมือ AI ให้ลึกกว่านี้ คลิกไปอ่านบทความฉบับเต็มได้เลยที่ Seeing like an agent: how we design tools in Claude Code!