Agent Skills สำคัญยังไง?
AI Agents ทุกวันนี้หลาย ๆ ตัวมีความสามารถที่สูงมากสามารถที่จะให้คำตอบ คิดและทำงานที่มีความซับซ้อนหลากหลายอย่างได้มากมาย แต่ทว่าในการทำงานเฉพาะทางหรืองานที่ต้องการบริบทเฉพาะอย่างนั้นเอไอที่ฉลาดเหล่านี้ก็ไม่สามารถที่จะรู้เองได้ เหมือนกันกับมนุษย์แม้ว่าเราจะเก่งกล้าฉลาดมาจากไหนเราก็ไม่มีทางที่จะรู้ แนวทางการทำงาน ขั้นตอนต่าง ๆ ในการดำเนินงานของธุรกิจที่เราเพิ่งเข้าไปใหม่ และเรื่องอื่น ๆ ที่เป็นความรู้หรือขั้นตอนที่เราไม่รู้จักได้ ดังนั้นแล้วนี่จึงเป็นความสำคัญของ Agent Skills ที่จะทำให้พนักงานใหม่มากความสามารถคนนี้เข้าใจงานและเริ่มปฏิบัติการได้ทันที ด้วยชุดคำสั่ง ขั้นตอนแนวทางปฏิบัติและเครื่องมือต่าง ๆ
Agent Skills คืออะไร
เอเจนต์สกิลคือแนวทางมาตรฐานสำหรับให้ AI Agents มีทักษะและความเชี่ยวชาญใหม่ ๆ ได้ด้วยการเพิ่มความรู้และเวิร์กโฟลว์เฉพาะทางให้กับเอไอ โดยที่หลัก ๆ แล้วสกิลจะสามารถนำไปปรับใช้กับโมเดลเอไอเอเจนต์ตัวไหนก็ได้ และมีรูปแบบเป็นโฟลเดอร์ที่จัดเก็บไฟล์ต่าง ๆ ดังนี้
my-skill/
├── SKILL.md # Required: metadata + instructions
├── scripts/ # Optional: executable code
├── references/ # Optional: documentation
├── assets/ # Optional: templates, resources
├── … # Any additional files or directories
SKILL.md คือไฟล์ Markdown ที่เขียนอธิบายว่าสกิลนี้คืออะไร ประกอบด้วยอะไร ใช้ทำอะไรได้บ้าง พร้อมกับแนวทางปฏิบัติงานตามที่ออกแบบไว้ และสกิลยังสามารถที่จะพ่วงเอา Scripts ที่เป็นโค้ดสำหรับรันฟังก์ชันต่าง ๆ References สำหรับเก็บเอกสารไว้เป็นความรู้หรือข้อมูลอ้างอิง Assets สำหรับเก็บของที่จะใช้ทำงาน
Agent Skills ทำงานอย่างไร?
การใช้งานสกิลนั้นเอไอเอเจนต์จะทำการโหลดสกิลผ่านกระบวนการสามขั้นตอนนี้ทีละขั้น
- Discovery: ตอนเริ่มต้นระบบ เอเจนต์จะโหลดเฉพาะชื่อและคำอธิบายการใช้งานของแต่ละสกิลที่มีเพื่อให้รู้คร่าว ๆ ว่าสกิลเหล่านี้จะได้ใช้เมื่อไหร่
- Activation: เมื่อเจอกับงานที่ตรงกันกับคำอธิบายสกิลที่ระบุไว้ เอเจนต์จะทำการอ่าน SKILL.md ทั้งหมดและใส่เข้ามาใน Context
- Execution: เอเจนต์จะปฏิบัติตามคำสั่งใน SKILL.md และอาจมีการหยิบโค้ดที่ให้ไว้ หรือเอกสารอื่น ๆ ที่เกี่ยวข้องมาใช้ตามที่กำหนดไว้ในสกิลและความจำเป็น
Specification ของสกิลต้องเตรียมยังไง
รูปแบบของสกิลที่ต้องเตรียมให้เอเจนต์จะอยู่ในรูปแบบนี้
skill-name/
├── SKILL.md # Required: metadata + instructions
├── scripts/ # Optional: executable code
├── references/ # Optional: documentation
├── assets/ # Optional: templates, resources
└── … # Any additional files or directories
โดยที่แต่ละส่วนมีรายละเอียดดังต่อไปนี้
SKILL.md จะเป็นไฟล์ Markdown ที่เขียนให้อยู่ในรูปแบบของ YAML โดยจะมีค่าหลัก ๆ ที่ต้องกำหนดคือ
| Field | Required | Constraints |
|---|---|---|
name | Yes | Max 64 characters. Lowercase letters, numbers, and hyphens only. Must not start or end with a hyphen. |
description | Yes | Max 1024 characters. Non-empty. Describes what the skill does and when to use it. |
license | No | License name or reference to a bundled license file. |
compatibility | No | Max 500 characters. Indicates environment requirements (intended product, system packages, network access, etc.). |
metadata | No | Arbitrary key-value mapping for additional metadata. |
allowed-tools | No | Space-separated string of pre-approved tools the skill may use. (Experimental) |
ตัวอย่าง SKILL.md ในส่วน Frontmatter สำหรับประมวลผลไฟล์ PDF
---
name: pdf-processing
description: Extract PDF text, fill forms, merge files. Use when handling PDFs.
license: Apache-2.0
metadata:
author: example-org
version: "1.0"
---
สำหรับในส่วน Body Content ของ SKILL.md สามารถเขียนต่อจากส่วนแรกในตัวอย่างข้างต้นได้ (ข้างใต้ขีด) โดยที่ส่วนเนื้อหาจะไม่ได้จำเป็นต้องมีฟอร์แมตเฉพาะแต่อย่างใด สามารถเขียนสั่งการเอเจนต์ให้ทำงานได้ โดยส่วนนี้จะถูกอ่านก็ต่อเมื่อเอเจนต์ตัดสินใจว่าจำเป็นจะต้องใช้สกิลนี้เท่านั้น สำหรับแนวทางการเขียนคือ
- คำสั่งควรเขียนอย่างเป็นขั้นเป็นตอน ตามสเต็ปให้ชัดเจน
- มีตัวอย่างข้อมูล Input และ Output ให้เพื่อให้ระบบรู้ว่าต้องเอาอะไรเข้า และตอบเป็นอะไร
- มีการระบุกรณีสุดวิสัยที่อาจพบเจอได้ในการทำงานไว้ เพื่อให้เอเจนต์สามารถคิดแก้ปัญหาได้
ส่วนถัดมาคือ Scripts โดยจะเก็บเอาโค้ดสำหรับให้เอเจนต์หยิบไปรันเพื่อทำงานตามฟังก์ชันบางอย่างที่เรากำหนดไว้ได้ โดยสคริปต์ควรมีลักษณะคือ
- สามารถทำงานจบเป็นอย่าง ๆ ได้ในฟังก์ชันนั้นเอง หรือระบุความสัมพันธ์กับฟังก์ชันอื่นเอกสารอื่นให้ชัดเจน
- มีการระบุ Error Message ที่เป็นประโยชน์เพื่อให้ทราบว่าผิดพลาดอะไร ควรแก้ยังไง
- จัดการกับกรณีสุดวิสัยที่เกิดขึ้นได้
References จัดเก็บเอกสารเพิ่มเติมสำหรับให้เอเจนต์อ่านเมื่อต้องใช้งานได้ โดยแต่ละเอกสารควรจะเขียนให้กระชับ ตรงประเด็น ครอบคลุม 1 ด้านเท่านั้น และถ้าควบคุมให้มีเนื้อหาน้อยได้จะช่วยให้ประหยัด Context ได้เช่นกัน
REFERENCE.md– อธิบายรายละเอียดอ้างอิงเชิงเทคนิคFORMS.md-รูปแบบหรือโครงสร้างของข้อมูลที่ต้องใช้- Domain-specific files (
finance.md,legal.md, etc.)
Assets จัดเก็บไฟล์เอกสาร รูปภาพ ไดอะแกรม การตั้งค่าต่าง ๆ ไฟล์ข้อมูล เป็นต้น ไฟล์พวกนี้จะเป็นไฟล์ที่ไว้ใช้เป็นข้อมูลไม่ได้ต้องถูกเปลี่ยนแปลงแต่อย่างใด
จำนวน Tokens การอ้างอิงไฟล์ และการตรวจสอบสกิล
จำนวน Tokens ที่เหมาะสมในแต่ละส่วนของ SKILL.md เพื่อให้เอเจนต์เข้ามาอ่านทีละนิดและไม่หลุดขอบเขตจะอยู่ที่จำนวนดังนี้
- Metadata พวก Frontmatter อย่าง Name และ Description จะอยู่ที่ประมาณ 100 Tokens
- Instructions: ส่วนเนื้อหาขั้นตอนการทำงานของสกิลจะอยู่ที่ไม่เกิน 5000 Tokens
โดยพื้นฐานแล้วพยายามอย่าให้ SKILL.md ยาวเกิน 500 บรรทัด ถ้ามีส่วนประกอบอื่นที่เกี่ยวข้องให้ย้ายไปใส่ใน Reference แทน
การอ้างอิงไฟล์ทำได้ดังนี้ระบุเพียง Path references/ ไฟล์ที่เราจะอ้างอิง
See [the reference guide](references/REFERENCE.md) for details.
Run the extraction script:
scripts/extract.py
การตรวจสอบสกิลสามารถที่จะติดตั้ง skills-ref ได้มันจะทำการตรวจสอบให้ว่า Frontmatter เราถูกต้องไหม
skills-ref validate ./my-skill
Conclusion
โดยสรุปแล้ว Agent Skills คือความสามารถเสริมที่สามารถนำไปประกอบใช้ได้กับทุก ๆ AI Agent เพียงแค่ออกแบบและวางโครงสร้างให้ถูกต้องตามที่กำหนดไว้ และตอนที่ต้องการจะใช้งาน Skills ก็ให้เรานำสิ่งที่เตรียมไว้ไปประกอบเข้ากับ AI ของเรา ในบทความถัดไปจะพูดถึงแนวทางปฏิบัติในการทำสกิลที่ดี และการนำไปใช้กับ Gemini หรือ ChatGPT ด้วย