← กลับไปหน้าบทความ
ขั้นสูง (MarTech)

โมเดลตอบคำถามเฉพาะทางผิดซ้ำ ๆ ทีมพัฒนาแก้ด้วย AI SDK Skills อย่างไร

ทีมบรรณาธิการ linli12 ส.ค. 04:52อัปเดต 12 ส.ค. 04:52อ่าน 3 นาที
โมเดลตอบคำถามเฉพาะทางผิดซ้ำ ๆ ทีมพัฒนาแก้ด้วย AI SDK Skills อย่างไร
บทความนี้จัดทำเพื่อความรู้ ชื่อธุรกิจ ตัวเลข หรือบทสนทนาที่ไม่มีแหล่งอ้างอิงกำกับเป็นกรณีตัวอย่างเพื่ออธิบายแนวคิด ดูรายละเอียดที่ นโยบายกองบรรณาธิการ

สรุปสั้น ๆ

AI SDK Skills คือชุดคำแนะนำและขั้นตอนเฉพาะทางที่แพ็กเป็นไฟล์แยก ให้ Agent เลือกโหลดมาใช้เฉพาะตอนที่งานตรงกับ Skill นั้นจริง แทนที่จะยัดทุกความรู้ไว้ใน System Prompt เดียวจนยาวเทอะทะและทำให้โมเดลสับสน

ทีมที่สร้าง Agent มาสักพักมักเจอปัญหาเดียวกัน คือพอเพิ่มความสามารถให้ Agent ตอบได้หลายเรื่องขึ้นเรื่อย ๆ System Prompt ก็ยาวขึ้นตามไปด้วย จนถึงจุดที่ Agent เริ่มตอบคำถามเฉพาะทางผิดซ้ำ ๆ ทั้งที่เคยตอบถูกตอนที่มีความสามารถน้อยกว่านี้ สาเหตุมักไม่ใช่ว่าโมเดลแย่ลง แต่เป็นเพราะคำแนะนำที่สำคัญถูกฝังปนอยู่กับคำแนะนำที่ไม่เกี่ยวข้องกับงานตรงหน้า จนโมเดลหยิบส่วนที่ผิดมาใช้

AI SDK Skills เป็นแนวทางที่ตอบโจทย์นี้โดยตรง แทนที่จะยัดทุกอย่างไว้ใน Prompt เดียวตั้งแต่ต้น ทีมแยกความรู้เฉพาะทางออกเป็นชุด ๆ แล้วให้ Agent ตัดสินใจเองว่าจะโหลด Skill ไหนมาใช้ตามลักษณะของคำถามที่ได้รับ วิธีนี้ทำให้ Context ที่ Agent เห็นในแต่ละครั้งมีเฉพาะสิ่งที่เกี่ยวข้องกับงานนั้นจริง ๆ

บทความนี้อธิบายว่า Skills ต่างจาก Tool และ MCP ที่เคยพูดถึงไปแล้วอย่างไร ควรออกแบบ Skill อย่างไรให้ Agent เลือกใช้ถูก และข้อผิดพลาดที่ทีมส่วนใหญ่เจอตอนเริ่มใช้งานจริง

Skills คืออะไรกันแน่ ต่างจากการเขียน Prompt ยาว ๆ ตรงไหน

พูดให้เข้าใจง่ายที่สุด Skill คือเอกสารคำแนะนำเฉพาะทางชิ้นหนึ่ง ที่บอก Agent ว่าเมื่อเจองานลักษณะนี้ควรทำตามขั้นตอนอะไร ใช้คำศัพท์เฉพาะทางแบบไหน และมีข้อควรระวังอะไรบ้าง ต่างจาก System Prompt ทั่วไปตรงที่ Skill ไม่ได้ถูกโหลดเข้า Context ตลอดเวลา แต่ถูกโหลดเฉพาะตอนที่ Agent ประเมินแล้วว่างานตรงหน้าต้องใช้ความรู้ในนั้นจริง

ความต่างสำคัญคือเรื่องการจัดการ Context Window ถ้าเขียนทุกความรู้เฉพาะทางไว้ใน Prompt เดียว ทุกครั้งที่ Agent ประมวลผลคำถาม มันต้องอ่านผ่านทุกความรู้แม้จะไม่เกี่ยวข้องกับคำถามนั้นเลยก็ตาม ยิ่ง Prompt ยาว ยิ่งมีโอกาสที่ Agent จะหยิบส่วนผิดมาใช้หรือมองข้ามคำแนะนำที่สำคัญที่สุดของงานนั้นไป

การแยกเป็น Skill ยังทำให้ทีมดูแลความรู้แต่ละก้อนแยกจากกันได้ชัดเจน เมื่อความรู้เฉพาะทางเรื่องหนึ่งเปลี่ยน เช่น ขั้นตอนการคำนวณภาษีเปลี่ยนตามกฎหมายใหม่ ทีมแก้ไฟล์ Skill นั้นไฟล์เดียว ไม่ต้องไล่หาแล้วแก้ในก้อน Prompt ใหญ่ที่ผูกกับความสามารถอื่นของ Agent ปนกันอยู่

Skills ต่างจาก Tool และ MCP อย่างไร เทียบให้เห็นชัด

หลายทีมสับสนระหว่าง Skill, Tool และ MCP เพราะทั้งสามเป็นกลไกที่ทำให้ Agent ทำงานได้มากขึ้น แต่จุดประสงค์ต่างกันชัดเจนเมื่อแยกดูทีละตัว Tool คือความสามารถในการลงมือทำ เช่นเรียก API หรือเขียนไฟล์ MCP คือมาตรฐานเชื่อมต่อ Tool จากภายนอกเข้ากับ Agent ส่วน Skill คือความรู้และขั้นตอนที่บอกว่าควรใช้ Tool เหล่านั้นตอนไหนและอย่างไร ตารางนี้เทียบให้เห็นบทบาทของแต่ละกลไก:

กลไกหน้าที่หลักโหลดเข้า Context เมื่อไร
Toolให้ Agent ลงมือทำ เช่นเรียก API เขียนไฟล์ ค้นข้อมูลอยู่ในรายการที่ Agent เรียกใช้ได้ตลอด
MCPมาตรฐานเชื่อม Tool จากระบบภายนอกเข้ากับ Agentตอนเชื่อมต่อกับ Server นั้นสำเร็จ
Skillให้ความรู้/ขั้นตอนเฉพาะทางว่าควรทำงานอย่างไรเฉพาะตอนที่ Agent ประเมินว่างานตรงกับ Skill นั้น
System Promptกำหนดบทบาทและกฎพื้นฐานของ Agent ทั้งระบบโหลดตลอดเวลาทุกคำขอ

เมื่อ Agent ได้รับคำถามหนึ่งคำถาม กลไกเลือก Skill ทำงานอย่างไร

  1. Agent ได้รับคำถามหรือคำสั่งจากผู้ใช้ พร้อมกับรายชื่อ Skill ที่มีให้เลือกใช้ทั้งหมด แต่ยังไม่โหลดเนื้อหาเต็มของ Skill ใดเข้ามาในตอนนี้
  2. โมเดลอ่านชื่อและคำอธิบายสั้น ๆ ของแต่ละ Skill แล้วประเมินว่าคำถามตรงหน้าเกี่ยวข้องกับ Skill ไหนบ้าง คล้ายกับคนอ่านสารบัญหนังสือก่อนเปิดไปอ่านบทที่ต้องการจริง
  3. เมื่อพบว่า Skill ใดตรงกับงาน Agent จะเรียกโหลดเนื้อหาเต็มของ Skill นั้นเข้ามาเป็นส่วนหนึ่งของ Context ชั่วคราว สำหรับใช้ตอบคำถามรอบนี้เท่านั้น
  4. ถ้างานต้องใช้ความรู้จากหลาย Skill พร้อมกัน เช่นทั้งเรื่องการคำนวณและเรื่องรูปแบบการนำเสนอผลลัพธ์ Agent โหลดได้มากกว่าหนึ่ง Skill ในคำขอเดียว ตราบใดที่ยังอยู่ในขอบเขต Context ที่จัดการได้
  5. หลังตอบคำถามเสร็จ เนื้อหา Skill ที่โหลดมาไม่จำเป็นต้องค้างอยู่ใน Context ตลอดไป ทำให้คำถามถัดไปที่ไม่เกี่ยวข้องไม่ถูกรบกวนด้วยความรู้เฉพาะทางที่ไม่จำเป็นอีก

Skills ช่วยได้จริงในสถานการณ์แบบไหน

Skills เหมาะกับกรณีที่ Agent ต้องรับผิดชอบหลายงานที่ใช้ความรู้เฉพาะทางแตกต่างกันชัดเจน เช่น Agent ตัวเดียวที่ต้องตอบทั้งคำถามด้านบัญชี คำถามด้านสัญญา และคำถามด้านเทคนิคของสินค้า ถ้ายัดความรู้ทั้งสามเรื่องไว้ใน Prompt เดียว โอกาสที่ Agent จะปนความรู้ผิดหมวดสูงมาก แต่ถ้าแยกเป็น Skill สามชุด Agent จะหยิบเฉพาะชุดที่เกี่ยวข้องมาใช้ตามคำถามจริง

อีกกรณีที่ Skills มีประโยชน์ชัดคือทีมที่มีขั้นตอนการทำงานภายในซับซ้อนและเปลี่ยนบ่อย เช่นขั้นตอนอนุมัติเอกสารที่มีเงื่อนไขหลายชั้นตามประเภทของเอกสาร การเขียนขั้นตอนเหล่านี้เป็น Skill แยกทำให้ทีมปรับเงื่อนไขได้โดยไม่กระทบความสามารถอื่นของ Agent เลย เมื่อเทียบกับการฝัง Logic ไว้ในโค้ด Agent โดยตรงซึ่งต้อง Deploy ใหม่ทุกครั้งที่แก้

แต่ถ้า Agent ทำงานเดียวที่ไม่ซับซ้อนและไม่มีแนวโน้มขยายความสามารถ การใช้ System Prompt ตรง ๆ ยังเร็วกว่าและดูแลง่ายกว่า ไม่จำเป็นต้องแยกเป็น Skill ตั้งแต่แรกเพียงเพราะเห็นว่าเป็นแนวทางที่ดูทันสมัย

ออกแบบ Skill อย่างไรให้ Agent เลือกใช้ถูกจริง

จุดที่ทำให้ Skill ใช้งานได้ผลหรือไม่ อยู่ที่คำอธิบายสั้น ๆ ที่ Agent ใช้ตัดสินใจก่อนโหลดเนื้อหาเต็ม ถ้าคำอธิบายกว้างเกินไปหรือคลุมเครือ Agent อาจเลือก Skill ผิดหรือไม่เลือกเลยทั้งที่ควรใช้ คำอธิบายที่ดีควรระบุชัดว่า Skill นี้ใช้กับสถานการณ์แบบไหน ไม่ใช่แค่บอกชื่อหัวข้อกว้าง ๆ

เนื้อหาภายใน Skill เองก็ควรโฟกัสเฉพาะเรื่องนั้นจริง ไม่ควรใส่ความรู้ทั่วไปที่ไม่เกี่ยวข้องปนเข้ามา เพราะจะทำให้ Skill นั้นยาวโดยไม่จำเป็นและลดประโยชน์ของการแยกออกมาตั้งแต่แรก ทีมที่ทำได้ดีมักเขียน Skill แต่ละไฟล์ให้ตอบคำถามเดียวชัดเจนว่า เมื่อเจอสถานการณ์นี้ ต้องทำอะไรตามลำดับ

อีกจุดที่มักถูกมองข้ามคือการทดสอบว่า Agent เลือก Skill ถูกจริงหรือไม่ ด้วยการป้อนคำถามหลากหลายรูปแบบที่ควรตรงกับ Skill นั้นและไม่ควรตรง แล้วดูว่า Agent ตัดสินใจถูกกี่ครั้ง ถ้าพบว่า Agent เลือกผิดบ่อย มักแปลว่าต้องปรับคำอธิบายสั้น ๆ ของ Skill ให้ชัดขึ้น ไม่ใช่ปรับเนื้อหาภายในซึ่งไม่ใช่จุดที่ทำให้เลือกผิด

ทำแบบนี้แล้วพัง เพราะทีมมักพลาดจุดเหล่านี้

  • สร้าง Skill ที่เนื้อหาซ้ำซ้อนกับ Skill อื่น — ทำให้ Agent สับสนว่าควรเลือกอันไหน โดยเฉพาะเมื่อคำอธิบายสั้น ๆ ของทั้งสอง Skill ใกล้เคียงกันเกินไป
  • เขียน Skill ยาวเกินจำเป็นเพราะกลัวข้อมูลไม่ครบ — ยิ่ง Skill ยาว ยิ่งกินพื้นที่ Context ตอนถูกโหลดใช้งานจริง ควรตัดส่วนที่ไม่จำเป็นต่อการตัดสินใจออกไป
  • ไม่ได้อัปเดต Skill เมื่อกระบวนการจริงเปลี่ยน — Agent ยังคงตอบตามขั้นตอนเก่าที่ไม่ตรงกับความเป็นจริงแล้ว ทั้งที่ทีมคิดว่าปรับกระบวนการใหม่ไปแล้ว
  • ใช้ Skill แทนการเขียน Tool ที่ควรมีจริง — บางงานต้องการให้ Agent ลงมือทำ เช่นดึงข้อมูลจากฐานข้อมูล ไม่ใช่แค่รู้ขั้นตอน การเขียนเป็น Skill อย่างเดียวโดยไม่มี Tool รองรับทำให้ Agent รู้ว่าต้องทำอะไรแต่ทำเองไม่ได้
  • ไม่มีระบบเวอร์ชันให้ Skill — เมื่อแก้ Skill แล้วพบว่าผลลัพธ์แย่ลง ไม่มีทางย้อนกลับไปใช้เวอร์ชันก่อนหน้าได้ทันที ต้องไล่จำเองว่าของเดิมเขียนว่าอะไร

ผลต่อ Context Window และต้นทุนการเรียกโมเดลในระยะยาว

ข้อดีที่วัดผลได้ชัดของการแยก Skill คือการลดขนาด Context ที่ต้องส่งเข้าโมเดลในแต่ละคำขอ เมื่อ Agent ไม่ต้องแบก Prompt ยาวที่รวมทุกความรู้ไว้ตลอดเวลา ต้นทุนต่อการเรียกใช้งานหนึ่งครั้งก็ลดลงตามไปด้วย โดยเฉพาะเมื่อ Agent มีความสามารถหลายสิบเรื่องซึ่งถ้ารวมไว้ใน Prompt เดียวจะยาวมากตั้งแต่ยังไม่เริ่มตอบคำถามด้วยซ้ำ

แต่ก็มีต้นทุนแฝงที่ต้องรู้ คือขั้นตอนที่ Agent ต้องอ่านรายชื่อ Skill และตัดสินใจก่อนว่าจะโหลดตัวไหน เพิ่มรอบการประมวลผลอีกชั้นหนึ่งเมื่อเทียบกับการมี Prompt เดียวที่ตอบได้ทันที สำหรับ Agent ที่ทำงานเดียวไม่ซับซ้อน ต้นทุนแฝงนี้อาจไม่คุ้มกับประโยชน์ที่ได้

ทีมที่วางแผนใช้ Skills จริงจังจึงควรวัดผลเทียบกันทั้งสองแบบก่อนตัดสินใจย้ายทั้งระบบ ไม่ใช่เปลี่ยนเพราะเห็นว่าเป็นแนวทางใหม่ที่ Vercel AI SDK รองรับ แต่ควรดูจากจำนวนความสามารถที่ Agent ต้องรับผิดชอบจริงและความถี่ที่แต่ละความสามารถถูกใช้งาน

เริ่มใช้ Skills ในโปรเจกต์ที่มีอยู่แล้ว ควรเริ่มจากตรงไหน

ทีมที่มี Agent ทำงานอยู่แล้วและ System Prompt เริ่มยาวเทอะทะ ไม่จำเป็นต้องรื้อทั้งหมดมาเขียนใหม่เป็น Skill ในคราวเดียว วิธีที่ปลอดภัยกว่าคือเลือกส่วนความรู้ที่ยาวที่สุดและใช้เฉพาะบางสถานการณ์ก่อน แยกออกมาเป็น Skill ตัวแรก แล้ววัดผลว่า Agent ตอบแม่นขึ้นหรือไม่เมื่อเทียบกับก่อนแยก

หลังจากเห็นผลชัดจาก Skill แรก ค่อยพิจารณาแยกส่วนอื่นตามลำดับความสำคัญ โดยให้ความสำคัญกับความรู้ที่เปลี่ยนบ่อยหรือใช้เฉพาะบางกรณีก่อนเสมอ เพราะเป็นส่วนที่ได้ประโยชน์มากที่สุดจากการแยกออกจาก Prompt หลัก ส่วนความรู้พื้นฐานที่ Agent ต้องใช้ทุกครั้งยังเก็บไว้ใน System Prompt แบบเดิมได้ตามปกติ

สรุป

AI SDK Skills แก้ปัญหาที่ Agent ต้องรับผิดชอบหลายความสามารถแล้ว System Prompt ยาวจนโมเดลสับสน โดยแยกความรู้เฉพาะทางออกเป็นชุด ๆ ให้ Agent เลือกโหลดมาใช้เฉพาะตอนที่งานตรงกับ Skill นั้นจริง ต่างจาก Tool ที่ให้ลงมือทำ และต่างจาก MCP ที่เป็นมาตรฐานเชื่อมต่อเครื่องมือภายนอก

ประโยชน์ชัดที่สุดเกิดกับ Agent ที่รับผิดชอบหลายเรื่องแตกต่างกันหรือมีขั้นตอนภายในที่เปลี่ยนบ่อย ส่วนงานเดียวที่ไม่ซับซ้อนยังไม่จำเป็นต้องแยกเป็น Skill ตั้งแต่แรก จุดที่ต้องดูแลต่อเนื่องคือคำอธิบายสั้น ๆ ของแต่ละ Skill ต้องชัดพอให้ Agent เลือกใช้ถูก ไม่ใช่แค่เขียนเนื้อหาภายในให้ครบ

  • Skill คือความรู้เฉพาะทางที่ Agent โหลดมาใช้เฉพาะตอนงานตรงกับเนื้อหานั้นจริง
  • ต่างจาก Tool (ลงมือทำ) และ MCP (มาตรฐานเชื่อมต่อภายนอก) ตรงที่ Skill ให้ความรู้และขั้นตอน
  • คำอธิบายสั้น ๆ ของ Skill คือจุดชี้ขาดว่า Agent จะเลือกใช้ถูกหรือไม่
  • เหมาะกับ Agent ที่รับผิดชอบหลายงานต่างกันชัดเจน ไม่เหมาะกับงานเดียวที่ไม่ซับซ้อน

คำถามที่พบบ่อย

Skills ต้องใช้ร่วมกับ Tool เสมอไปไหม

ไม่จำเป็น บาง Skill ให้แค่ความรู้หรือขั้นตอนการอธิบายโดยไม่ต้องเรียก Tool เลยก็มี แต่ถ้างานนั้นต้องลงมือทำจริง เช่นดึงข้อมูลหรือเขียนไฟล์ ต้องมี Tool รองรับควบคู่ไปด้วย Skill อย่างเดียวทำให้ Agent รู้ขั้นตอนแต่ไม่มีทางลงมือทำเองได้

Skill กับ Prompt Template ต่างกันตรงไหน

Prompt Template มักเป็นแม่แบบข้อความที่ใส่ตัวแปรแล้วส่งเข้าโมเดลทันที ส่วน Skill คือชุดความรู้ที่ Agent ประเมินเองว่าจะโหลดมาใช้หรือไม่ตามลักษณะของคำถาม ไม่ได้ถูกยัดเข้าไปทุกครั้งแบบตายตัวเหมือน Template

มี Skill มากเกินไปจะมีปัญหาไหม

มีได้ถ้ารายชื่อ Skill เยอะจนคำอธิบายสั้น ๆ ของแต่ละตัวเริ่มซ้ำหรือใกล้เคียงกัน ทำให้ Agent ตัดสินใจเลือกผิดบ่อยขึ้น ทีมควรจัดกลุ่ม Skill ที่เกี่ยวข้องกันหรือรวมบางตัวเข้าด้วยกันเมื่อจำนวนเริ่มมากเกินจัดการ

Skills ใช้ได้กับ Agent ที่สร้างด้วย WorkflowAgent ไหม

ใช้ได้ เพราะ Skills เป็นกลไกเสริมความรู้ที่ทำงานแยกจากการควบคุมลำดับขั้นตอนของ <a href="/blog/vercel-workflowagent">WorkflowAgent</a> แต่ละ Step ใน Workflow ยังเรียกใช้ Skill ที่เกี่ยวข้องได้ตามปกติเมื่อจำเป็น

ต้องเขียน Skill เป็นภาษาอังกฤษเสมอไปไหม

ไม่จำเป็น เขียนเป็นภาษาไทยได้ถ้าทีมและ Agent สื่อสารกันด้วยภาษาไทยเป็นหลัก สิ่งสำคัญกว่าคือคำอธิบายสั้น ๆ ต้องชัดเจนพอให้ Agent แยกแยะได้ว่าควรใช้ตอนไหน ไม่ว่าจะเขียนด้วยภาษาไหนก็ตาม

โปรเจกต์เล็กที่มี Agent ทำงานเดียวควรใช้ Skills ไหม

ส่วนใหญ่ยังไม่จำเป็น ถ้า Agent รับผิดชอบงานเดียวไม่ซับซ้อนและไม่มีแผนขยายความสามารถ การใช้ System Prompt ตรง ๆ ยังเร็วกว่าและดูแลง่ายกว่าการแยกเป็น Skill

วัด Conversion LINE ทุกแบรนด์ รวมศูนย์ที่เดียว

องค์กรที่มีหลายแบรนด์ หลายสาขา หลาย LINE OA — linli รวม Tracking และส่ง Conversion กลับทุกแพลตฟอร์ม พร้อม Custom Limit เริ่มฟรี 14 วัน

ติดต่อทีม Sales

บทความที่เกี่ยวข้อง

300 Action ที่ Agent ยิงอัตโนมัติทุกวัน แล้วใครเป็นคนอนุมัติก่อนมันลงมือทำจริง

300 Action ที่ Agent ยิงอัตโนมัติทุกวัน แล้วใครเป็นคนอนุมัติก่อนมันลงมือทำจริง

เมื่อ Agent เรียก Action สำคัญหลักร้อยครั้งต่อวัน ไม่มีใครตรวจได้ทันทุกครั้ง Tool Approval ใน Vercel AI SDK คือกลไกให้หยุด Agent ไว้ก่อนลงมือ รอการอนุมัติจากคนหรือกฎที่วางไว้ล่วงหน้า
ธุรกิจแบบไหนที่ยังไม่จำเป็นต้องใช้ Vercel Sandbox รัน Code จาก AI Agent

ธุรกิจแบบไหนที่ยังไม่จำเป็นต้องใช้ Vercel Sandbox รัน Code จาก AI Agent

Vercel Sandbox เปิดให้ AI Agent รัน Code ที่ไม่ไว้ใจในสภาพแวดล้อมแยกออกจากระบบจริง แต่ไม่ใช่ทุกทีมที่ต้องรีบใช้ บทความนี้ชี้ว่าเมื่อไรควรลงทุน เมื่อไรควรรอ และมีทางเลือกอื่นที่ถูกกว่าไหม
ดูให้ออกว่า Agent เรียก Tool ผิดจุดไหนก่อนผู้ใช้ร้องเรียน

ดูให้ออกว่า Agent เรียก Tool ผิดจุดไหนก่อนผู้ใช้ร้องเรียน

Agent ที่ทำงานอัตโนมัติเรียก Tool หลายตัวต่อคำถามเดียว เมื่อผลลัพธ์ผิดพลาด ทีมต้องรู้ว่าพังที่ขั้นตอนไหน Observability คือชุดข้อมูล Telemetry และ Log การเรียก Tool ที่ทำให้สืบสาเหตุได้จริงก่อนผู้ใช้เป็นคนแจ้งปัญหาเข้ามาเอง