AI Tool Schema Builder: สร้าง Tool Schema สำหรับ OpenAI, Anthropic และ MCP จากฟอร์มเดียว
เรียนรู้วิธีใช้ AI Tool Schema Builder แปลงฟอร์มแบบ visual ให้กลายเป็น JSON schema ที่ผ่านการตรวจสอบสำหรับ OpenAI function calling, Anthropic tool use และ MCP tool definitions
Table of Contents
การทำให้ LLM เรียกใช้ tool ของเราเองเป็นหนึ่งใน pattern ที่ทรงพลังที่สุดในการพัฒนา AI ยุคนี้ แต่จุดเริ่มต้นคืองานน่าเบื่ออย่างหนึ่ง นั่นคือการเขียน JSON schema ที่บอกให้โมเดลรู้ว่า tool แต่ละตัวทำอะไร ทุกผู้ให้บริการต้องการ schema แบบนี้ ไม่ว่าจะเป็น OpenAI สำหรับ function calling, Anthropic สำหรับ tool use หรือระบบนิเวศ MCP (Model Context Protocol) ที่กำลังเติบโต โดยแต่ละเจ้าห่อแนวคิดเดียวกันไว้ในซองที่ต่างกันเล็กน้อย AI Tool Schema Builder บน Online Tools Forge เปลี่ยนงานนี้ให้เหลือเพียงการกรอกฟอร์มไม่กี่นาที
แทนที่จะแก้ไข JSON ด้วยมือแล้วหวังว่าโครงสร้างจะถูก คุณกรอกฟอร์มแบบ visual: ตั้งชื่อ tool เขียนคำอธิบาย แล้วเพิ่ม parameters ทีละตัวพร้อมกำหนด type, array element type, enum values, คำอธิบาย และ required flag ระบบ validation แบบ real-time จะตรวจทุกอย่างที่คุณพิมพ์และแสดงปัญหาไว้ใน Errors panel ทำให้เห็นข้อผิดพลาดทันที แทนที่จะปล่อยให้ไปโผล่ตอนเรียก API
เมื่อพอใจแล้ว เครื่องมือจะสร้าง schema ที่พร้อมนำไปใช้สำหรับทั้งสามผู้ให้บริการในครั้งเดียว คัดลอกผลลัพธ์ ดาวน์โหลดเป็นไฟล์ หรือกด Load example เพื่อดูตัวอย่าง tool get-current-weather ที่สมบูรณ์ว่า tool ที่ดูดีมีหน้าตาอย่างไร บทความนี้จะพาไปดูวิธีใช้งานและแนวคิดเรื่อง tool schema ในแต่ละผู้ให้บริการ
ทำไมต้องใช้ AI Tool Schema Builder?
- ฟอร์มเดียว ครบสามผู้ให้บริการ นิยาม tool ครั้งเดียว ได้ผลลัพธ์สำหรับ OpenAI function calling, Anthropic tool use และ MCP tool definitions โดยไม่ต้องท่องจำรูปแบบซองสามแบบที่ต่างกันเล็กน้อย
- ตรวจสอบแบบ real-time ระหว่างพิมพ์ Errors panel แจ้งปัญหาทันทีที่เกิด ตั้งแต่ชื่อ tool ว่างเปล่าไปจนถึง enum ที่ผิดรูปแบบ เพื่อไม่ให้ schema ที่พังหลุดไปถึง production
- parameters มีโครงสร้างโดยไม่ต้องจำ syntax เพิ่ม type, array element type, enum values, คำอธิบาย และ required flag ผ่านช่องกรอก ส่วนการประกอบโครงสร้าง JSON Schema ที่ถูกต้องเป็นหน้าที่ของเครื่องมือ
- มีตัวอย่างจริงให้ศึกษา ปุ่ม Load example เติมฟอร์มด้วย tool get-current-weather ที่สมบูรณ์ ช่วยให้เห็นชัดว่าแต่ละช่องแมปไปยังผลลัพธ์ schema อย่างไร
- คัดลอกหรือดาวน์โหลดได้ทันที หยิบ JSON จากคลิปบอร์ดหรือดาวน์โหลดเป็นไฟล์ แล้ววางลงแอปพลิเคชัน, agent configuration หรือ MCP server ของคุณได้เลย
- ไม่ต้องติดตั้งอะไรเลย ทุกอย่างทำงานในเบราว์เซอร์บน Online Tools Forge เปิดหน้าเว็บ สร้าง schema เสร็จแล้วไปต่อ
ฟีเจอร์หลัก
| ฟีเจอร์ | ทำอะไร |
|---|---|
| ช่องชื่อ tool | ตั้งชื่อ tool โดยชื่อเป็นฟิลด์บังคับและมีการตรวจสอบ เพื่อไม่ให้ export schema ที่ API จะปฏิเสธ |
| ช่องคำอธิบาย | บันทึกว่า tool ทำอะไร ซึ่งเป็นข้อความที่โมเดลอ่านเพื่อตัดสินใจว่าจะเรียกใช้เมื่อไรและอย่างไร |
| Parameter builder | เพิ่ม parameters พร้อม type อย่าง string, number, boolean รวมถึง array element type, enum values, คำอธิบาย และ required flag |
| Errors panel | ตรวจสอบฟอร์มแบบ real-time ขณะพิมพ์ และแสดงรายการปัญหาทุกข้อพร้อมข้อความที่ชัดเจนจนกว่า schema จะสะอาด |
| Load example | เติมฟอร์มด้วย tool get-current-weather ฉบับสมบูรณ์ ให้แก้ไขต่อได้ทันทีโดยไม่ต้องเริ่มจากศูนย์ |
| Copy และ Download | ส่งออกผลลัพธ์ไปยังคลิปบอร์ดหรือดาวน์โหลดเป็นไฟล์ พร้อมนำไปใช้ในโค้ดของคุณ |
| ผลลัพธ์หลายผู้ให้บริการ | สร้าง schema ในรูปทรงที่ OpenAI function calling, Anthropic tool use และ MCP ต้องการ |
- required flag ที่คุณสลับในฟอร์มจะกลายเป็น required array ใน schema ที่สร้างขึ้น ซึ่งเป็นสิ่งที่ป้องกันไม่ให้โมเดลละเว้น parameters สำคัญจริง ๆ
- enum values ที่กำหนดต่อ parameter จะถูกแปลงเป็น enum list ช่วยจำกัดโมเดลให้เลือกจากตัวเลือกตายตัว เช่น unit เป็น celsius หรือ fahrenheit เท่านั้น
- เพราะการตรวจสอบทำงานต่อเนื่อง workflow ที่เร็วที่สุดคือพิมพ์ไปแล้วกวาดตาดู Errors panel แทนการเซฟแล้วไปเช็คซ้ำที่เครื่องมืออื่น
วิธีใช้งาน AI Tool Schema Builder
-
ตั้งชื่อ tool เปิด AI Tool Schema Builder แล้วกรอกชื่อในช่อง tool name ควรใช้ชื่อตัวพิมพ์เล็กสไตล์คำกริยา เช่น get-current-weather, search-orders หรือ create-ticket เพราะผู้ให้บริการคาดหวัง identifier ที่อ่านเหมือนชื่อ function ช่องนี้มีการตรวจสอบ หากชื่อหายไปหรือผิดรูปแบบ Errors panel จะแจ้งให้ทราบก่อนที่คุณจะ export อะไรออกไป
-
อธิบายว่า tool ทำอะไร กรอกคำอธิบายสั้น ๆ หนึ่งถึงสองประโยคที่โมเดลนำไปใช้ตัดสินใจได้ เช่น "ดึงสภาพอากาศปัจจุบันของเมืองที่ระบุ" ข้อความนี้คือสิ่งที่ LLM อ่านเพื่อเลือกว่าจะเรียก tool เมื่อไร จึงควรบรรยายหน้าที่ให้ชัด มากกว่ารายละเอียดการ implement
-
เพิ่ม parameters พร้อม type, enum และ required flag เพิ่ม parameter แต่ละตัวในฟอร์มแล้วเลือก type เช่น string, number, boolean หรือ array ที่ระบุ element type ของตัวเอง ใส่ enum values ในจุดที่ input ควรเป็นหนึ่งในไม่กี่ตัวเลือก เขียนคำอธิบายสั้นให้แต่ละ parameter และติ๊ก Required สำหรับค่าที่ tool ขาดไม่ได้จริง ๆ
-
ตรวจผล validation แบบ real-time จับตาดู Errors panel ขณะทำงาน และแก้ให้หมดทุกข้อความ ไม่ว่าจะเป็นชื่อที่หายไป, enum ที่ว่างเปล่า หรือ required field ที่ยังไม่มี type ก่อนไปขั้นถัดไป ถ้าอยากเทียบเคียง ให้กด Load example เพื่อโหลด tool get-current-weather มาเทียบโครงสร้าง
-
ส่งออกสำหรับผู้ให้บริการของคุณ เลือกผลลัพธ์สำหรับ OpenAI function calling, Anthropic tool use หรือ MCP แล้วคัดลอก JSON ไปยังคลิปบอร์ดหรือดาวน์โหลดเป็นไฟล์ จากนั้นวางลงใน API request, agent configuration หรือ manifest ของ MCP server
Tool Schema ในแต่ละผู้ให้บริการ
Function calling คืออะไรกันแน่ Function calling คือสัญญาระหว่างคุณกับโมเดล: คุณอธิบาย tools เป็น JSON โมเดลอ่านคำอธิบายเหล่านั้น และเมื่อคำขอของผู้ใช้ตรงกับ tool ใด โมเดลจะส่งกลับ arguments แบบมีโครงสร้างแทนข้อความลอย ๆ จากนั้นโค้ดของคุณรัน function จริงแล้วส่งผลลัพธ์กลับเข้าบทสนทนา schema ที่ละเอียดแค่ไหนจึงกำหนดความแม่นยำของการเรียกใช้โดยตรง
รูปแบบของ OpenAI function calling OpenAI ต้องการรายการ tools โดยแต่ละรายการมี type เป็น function และ function object ที่ประกอบด้วย name, description และ parameters ซึ่งเป็น JSON Schema object มาตรฐานที่มี type เป็น object พร้อม properties map ข้อผิดพลาดตรงจุดนี้ เช่น การปล่อย parameters ว่างทั้งที่จำเป็น ทำให้เกิดทั้งการเรียกใช้ที่เพี้ยนแบบเงียบ ๆ และ request ที่ถูกปฏิเสธ
รูปแบบของ Anthropic tool use Anthropic ก็ใช้ tools array เช่นกัน โดยแต่ละรายการมี name, description และ input_schema object ส่วนข้างใน input_schema เป็น JSON Schema มาตรฐานเช่นเดียวกัน นิยาม parameters ชุดเดียวกันที่คุณสร้างไว้จึงย้ายข้ามไปใช้ได้ทันที เปลี่ยนแค่ wrapper ด้านนอกเท่านั้น
MCP tool definitions Model Context Protocol คือมาตรฐานการเปิดเผย tools จากแอปพลิเคชันสู่โมเดล โดย MCP server จะประกาศแต่ละ tool ด้วย name, description และ inputSchema ถ้าคุณกำลังสร้าง MCP server ที่ต้องรองรับหลาย client การเขียนประกาศนี้ให้ถูกต้องคือหัวใจของทั้งงาน
enum และ required flag สำคัญตรงไหน สองฟิลด์นี้ทำงานหนักที่สุดเรื่องความน่าเชื่อถือ required flag ป้องกันไม่ให้โมเดลละเว้นชื่อเมืองตอนเรียก get-current-weather ส่วน enum ป้องกันไม่ให้โมเดลแต่งค่า unit ขึ้นมาเองอย่าง "C" หรือ "degrees" ทั้งที่ API ของคุณเข้าใจแค่ celsius กับ fahrenheit enum ที่แน่นพอควบคู่กับ required flag ที่ซื่อสัตย์ต่อความจริง จะเปลี่ยนผลลัพธ์จาก "ปกติใช้ได้" ให้เป็น "ทำนายผลได้แน่นอน"
ตัวอย่างการใช้งานจริง
เครื่องมือพยากรณ์อากาศและ API สำหรับ Agent
tool แรกในตำนานคือ get-current-weather ที่มี city เป็น string (required), unit ถูกจำกัดด้วย enum เป็น celsius และ fahrenheit และอาจเพิ่ม array parameter สำหรับหลายเมืองโดยใช้ตัวเลือก array element type ตัวอย่างในตัวของเครื่องมือสะท้อน pattern นี้พอดี และโครงสร้างเดียวกันใช้ต่อยอดกับ REST API ใด ๆ ที่ agent ควรเข้าถึง ไม่ว่าจะค้นหาสินค้า ตรวจสถานะออเดอร์ หรือดึงอัตราแลกเปลี่ยน
ตัวช่วยดึงข้อมูลแบบมีโครงสร้าง
ไม่ใช่ทุก tool ต้องลงมือทำอะไร บางตัวมีหน้าที่จัดระเบียบข้อมูล ลองนิยาม tool ชื่อ extract-invoice-details ที่มี parameters อย่าง invoice_number (string, required), total_amount (number), currency (string พร้อม enum สั้น ๆ) และ line_items (array) โมเดลจะคืน JSON ที่สะอาดและคาดเดาได้ แทนข้อความอิสระที่ต้องใช้ regex มาแยกวิเคราะห์ และ schema นี้ยังทำหน้าที่เป็นเอกสารประกอบทีมให้ด้วย
เครื่องมือสำหรับ MCP Server
ถ้าคุณดูแล MCP server ทุก tool ที่เปิดให้ใช้งานต้องมี inputSchema ที่แม่นยำ สร้างนิยามแต่ละ tool ผ่านฟอร์ม ดาวน์โหลด JSON แล้ววางลงในรายการ tools ของ server เพราะเครื่องมือสร้างรูปแบบของ OpenAI และ Anthropic ออกมาให้ด้วย คุณจึงเสนอความสามารถชุดเดียวกันให้ client ที่เรียกตรงผ่าน API ได้โดยไม่ต้องเขียนใหม่เลย
สอนแนวคิด Function Calling
ไฟล์ schema เป็นวิธีที่เร็วที่สุดในการอธิบายว่า function calling ทำงานจริงอย่างไร กด Load example ชี้ให้เห็นว่าช่องกรอกแต่ละช่องแมปไปยัง JSON อย่างไร แล้วให้ผู้เรียนลองแก้ parameter สักหนึ่งตัวแล้วดูว่า Errors panel ตอบสนองอย่างไร มันเปลี่ยนแนวคิดนามธรรมให้กลายเป็นสิ่งที่จับต้องได้ในแท็บเบราว์เซอร์เดียว
แนวปฏิบัติที่ดี
- เขียน description เพื่อโมเดล ไม่ใช่เพื่อคน คุมแต่ละ description ไว้หนึ่งถึงสองประโยคที่ลงมือทำได้ เพราะโมเดลใช้ข้อความนี้ตัดสินว่า tool เหมาะกับงานนั้นหรือไม่ ความคลุมเครือตรงนี้นำไปสู่การเรียกใช้ที่ผิดพลาด
- เลือก enum แทนข้อความอิสระเมื่อ input เป็นชุดปิด หน่วยวัด สกุลเงิน ลำดับการเรียง และตัวกรองสถานะ อะไรก็ตามที่มีตัวเลือกตายตัวควรอยู่ในรูป enum
- ทำเครื่องหมาย required เฉพาะค่าที่จำเป็นจริง ๆ ใส่มากเกินไปโมเดลจะแต่งค่าขึ้นมาเอง ใส่น้อยเกินไปโมเดลจะข้ามค่าสำคัญทิ้ง
- ตรวจสอบก่อน deploy เสมอ เคลียร์ Errors panel ให้หมดก่อน แล้วนำ JSON ที่ export ไปตรวจซ้ำใน schema validator เพื่อความมั่นใจอีกชั้น
- ตั้งชื่อให้สม่ำเสมอและมีรูปคำกริยา get-current-weather ดูดีกว่า weatherData2 เสมอ โมเดลจับ convention การตั้งชื่อได้และเลือก tool ได้แม่นขึ้นเมื่อชื่อคาดเดาได้
- ปรับปรุงจาก transcript จริง ดูว่าโมเดลเรียก tool ของคุณในสถานการณ์จริงอย่างไร แล้วเข้มงวด description, type และ enum ตามข้อผิดพลาดที่เจอ
พร้อมเลิกทะเลาะกับ syntax ของ JSON ด้วยมือเปล่าหรือยัง เปิด AI Tool Schema Builder กด Load example แล้วรับ schema ที่ผ่านการตรวจสอบสำหรับ OpenAI, Anthropic และ MCP ภายในห้านาทีถัดไป
เครื่องมือที่เกี่ยวข้องที่คุณอาจสนใจ:
- JSON Schema Validator — ตรวจ schema ที่ export ซ้ำอีกชั้นความมั่นใจ
- JSON Formatter — จัดรูปแบบและอ่าน JSON ที่สร้างขึ้นอย่างเป็นระเบียบ
- JSON to TypeScript — แปลงโครงสร้าง parameters เป็น interface แบบมี type
ขอให้สนุกกับการสร้าง tool นะครับ
คำถามที่พบบ่อย
ถ: ต้องรู้ syntax ของ JSON Schema ก่อนใช้ AI Tool Schema Builder หรือไม่? ตอบ: ไม่จำเป็นเลย ฟอร์มแบบ visual จัดการโครงสร้างที่ซ้อนกันทั้งหมดให้ คุณเพียงเลือก type เพิ่ม enum values และสลับ required flag เครื่องมือจะประกอบ JSON Schema ที่ถูกต้องให้เบื้องหลัง การอ่านผลลัพธ์ที่สร้างขึ้นยังช่วยให้คุณเรียนรู้ syntax ไปในตัวอีกด้วย
ถ: นิยามชุดเดียวใช้ได้จริงกับทั้ง OpenAI, Anthropic และ MCP หรือ? ตอบ: ได้ครับ ทั้งสามผู้ให้บริการห่อแกนเดียวกันไว้ คือ ชื่อ tool, description และ JSON Schema ของ parameters ในซองที่ต่างกันเล็กน้อย เครื่องมือจะสร้างรูปทรงที่ถูกต้องของแต่ละเจ้าจากนิยามฟอร์มเดียวของคุณ
ถ: ควรใช้ enum แทน string parameter ปกติเมื่อไร? ตอบ: เมื่อ input ที่ถูกต้องเป็นชุดตัวเลือกเล็ก ๆ ที่ตายตัว เช่น หน่วยอุณหภูมิ รหัสสกุลเงิน ทิศทางการเรียง หรือชื่อสถานะ enum ช่วยกันไม่ให้โมเดลเดาตัวแปรที่ backend ไม่รองรับ และถูกกว่าการเขียน error handling ตอน runtime มาก
ถ: จะตรวจสอบ schema ก่อนนำไปใช้งานจริงอย่างไร? ตอบ: แก้ทุกข้อความใน Errors panel ให้หมดก่อน เพราะระบบตรวจสอบขณะพิมพ์อยู่แล้ว จากนั้นนำ JSON ที่ export ไปวางใน JSON Schema Validator ที่ลิงก์ไว้ด้านล่าง เพื่อตรวจอย่างเป็นอิสระอีกรอบก่อนส่งไปยัง production API