Tool-calling / Function-calling: กลไกที่ทำให้ agent ลงมือทำ
วงจรเบื้องหลังที่ทำให้ agent เลือกและเรียกใช้เครื่องมือเองได้ เป็นรากฐานของ agent ทุกตัวในปี 2026
🎯 สิ่งที่คุณจะทำได้หลังเรียนโมดูลนี้
- อธิบายวงจรของ tool-calling ได้ครบทั้งรอบ: บอกเครื่องมือด้วย JSON Schema, AI ตัดสินใจ, ส่งคำสั่งเรียกออกมา, ระบบทำงานจริง, แล้วป้อนผลลัพธ์กลับไปให้ AI
- รู้ว่าแต่ละเจ้าเรียกไม่เหมือนกันแต่คือเรื่องเดียวกัน: OpenAI เรียก function calling, Anthropic เรียก tool use, Gemini ใช้ response_schema
- บอกสาเหตุได้ว่าทำไมบางครั้ง agent ถึงวนไม่หยุด (loop) ค้างกลางทาง (stall) หรือเรียกเครื่องมือถี่เกินไป (over-call)
เนื้อหา
การให้ AI เรียกใช้เครื่องมือเอง (tool-calling หรือ function-calling) คือรากฐานของ agent ทุกตัว ของระบบ RAG และของการดึงข้อมูลแบบมีรูปแบบในปี 2026 พูดง่าย ๆ มันทำงานแบบนี้: คุณบอก AI ไว้ก่อนว่ามีเครื่องมืออะไรให้ใช้บ้าง โดยเขียนอธิบายเครื่องมือแต่ละตัว (function) เป็นแบบฟอร์มมาตรฐานที่เรียกว่า JSON Schema จากนั้นพอมีคำถามเข้ามา ตัว AI (model) ก็จะดูคำถามพร้อมรายการเครื่องมือทั้งหมด แล้วตัดสินใจเองว่าจะหยิบเครื่องมือไหนมาใช้ไหม พอตัดสินใจแล้วมันก็ส่งคำสั่งเรียกออกมาชัด ๆ ว่าจะใช้ตัวไหนและใส่ค่าอะไร ต่อมาโค้ดหรือ workflow ของคุณก็ไปทำงานนั้นจริง แล้วส่งผลลัพธ์กลับมาให้ AI ซึ่งมันอาจจะเรียกเครื่องมืออีกรอบ หรือตอบเลยก็ได้ วนแบบนี้ไปเรื่อย ๆ จนจบ แต่ละเจ้าเรียกไม่เหมือนกันแต่กลไกเดียวกันหมด: OpenAI เรียกว่า function calling (มี tools array กับ tool_calls อยู่ใน response), Claude ของ Anthropic เรียกว่า tool use, ส่วน Gemini ของ Google ใช้ response_schema ทั้ง OpenAI และ Anthropic ยังเรียกหลายเครื่องมือพร้อมกันในรอบเดียวได้ด้วย (parallel tool calls) ถ้าคุณใช้เครื่องมือแบบลากวางไม่ต้องเขียนโค้ด (no-code) คุณแทบไม่ต้องยุ่งกับเรื่องพวกนี้เลย เพราะ AI Agent node ของ n8n/Make/Zapier เขาเปิดคำสั่ง (action) ต่าง ๆ ให้ AI เลือกใช้เป็นเครื่องมือให้อยู่แล้ว แต่ถ้าคุณเข้าใจวงจรนี้ คุณจะเดาออกทันทีว่าทำไมบางทีเจ้า agent ถึงวนไม่หยุด ค้างกลางทาง หรือเรียกเครื่องมือถี่เกินจำเป็น
🧪 ตัวอย่างจริง + ผลลัพธ์ที่ได้
พอลูกค้าถามว่า "ออเดอร์ ORD-12345 ถึงไหนแล้ว" ตัว AI ก็จะปล่อยคำสั่งเรียกเครื่องมือออกมา: check_order_status({"order_id": "ORD-12345"}) → workflow ไปเรียก API จริง → ป้อนผลลัพธ์กลับมา → AI ก็ตอบลูกค้าเป็นภาษาไทย
คำอธิบาย (description) ของเครื่องมือและของแต่ละช่องกรอกที่ชัดเจน คือตัวที่ทำให้ AI เลือกและเรียกได้ถูก ส่วนการเขียนคำอธิบายคลุมเครือ คือสาเหตุหลักที่ทำให้ agent เรียกเครื่องมือผิดตัวหรือไม่ยอมเรียกเลย
สาเหตุที่เจอบ่อย: (1) คำอธิบายเครื่องมือกว้างเกินจน AI คิดว่าต้องใช้ตลอด (2) ในคำสั่งไม่มีเงื่อนไขบอกให้หยุดชัด ๆ (3) ผลลัพธ์ที่เครื่องมือคืนมาไม่ชัดจน AI เรียกซ้ำ วิธีแก้: เขียนคำอธิบายให้แคบลง ใส่คำแนะนำว่าตอนไหนไม่ต้องเรียก และทำให้เครื่องมือคืนผลลัพธ์ที่ชัดเจน
ถ้าเข้าใจวงจรนี้ คุณจะไล่หาสาเหตุพฤติกรรมของ agent ได้ ปัญหาวนไม่หยุดหรือเรียกถี่เกิน มักแก้ที่คำอธิบายเครื่องมือกับตัวคำสั่ง (prompt) ไม่ใช่ที่ตัว AI
แบบฝึกหัดท้ายโมดูล
- เขียน JSON Schema สำหรับเครื่องมือ 2 ตัวที่ agent ฝ่ายซัพพอร์ตควรมี (เช่น ค้นนโยบายคืนเงิน, เปิดใบแจ้งปัญหา) พร้อมคำอธิบายที่ชัดเจน
- วิเคราะห์บันทึกการทำงาน (log) ของ agent ที่ให้มา (แบบสมมติ) ชี้ว่าจุดไหนที่ agent เรียกเครื่องมือถี่เกิน แล้วเสนอวิธีแก้ที่คำอธิบายเครื่องมือหรือที่ตัวคำสั่ง