- Agent Skills คือโครงสร้างส่วนขยายที่เพิ่ม ความสามารถเฉพาะทางตามงาน ให้กับ Codex เพื่อให้ทำเวิร์กโฟลว์บางอย่างได้อย่างเสถียร
- แต่ละสกิลประกอบด้วยไฟล์
SKILL.md และ สคริปต์·ทรัพยากร·แอสเซ็ต แบบเลือกใช้ ทำให้ แชร์กันได้ ระหว่างทีมหรือชุมชน
- Codex เรียกใช้สกิลได้ทั้งแบบ เรียกใช้โดยชัดแจ้ง (คำสั่ง
/skills หรือการป้อน $) และแบบ เรียกใช้โดยปริยาย (ใช้อัตโนมัติเมื่อคำอธิบายงานตรงกัน)
- สกิลถูกจัดการผ่าน ตำแหน่งจัดเก็บและระบบลำดับความสำคัญ หลายแบบ เช่น REPO, USER, ADMIN, SYSTEM และสามารถสร้างสกิลใหม่ได้ด้วย
$skill-creator
- ฟีเจอร์นี้ ใช้งานได้ทั้งใน CLI และส่วนขยาย IDE และสามารถติดตั้งสกิลจาก GitHub เป็นต้น เพื่อขยายความสามารถได้
ภาพรวมของ Agent Skills
- Agent Skills คือโครงสร้างที่มอบ ความสามารถและความเชี่ยวชาญใหม่ ให้กับ Codex
- สกิลจะบรรจุ คำแนะนำ ทรัพยากร และสคริปต์แบบเลือกใช้ สำหรับการทำงานเฉพาะอย่าง
- สามารถ แชร์กันได้ ระหว่างทีมหรือชุมชน และอิงตาม open Agent Skills standard
- ใช้งานได้ทั้งใน CLI และส่วนขยาย IDE ของ Codex
โครงสร้างและองค์ประกอบของสกิล
- แต่ละสกิลมีไฟล์
SKILL.md เป็นแกนหลัก และมีโครงสร้างโฟลเดอร์ดังนี้
SKILL.md: จำเป็น ต้องมีคำแนะนำและเมทาดาทา
scripts/: โค้ดสำหรับรันแบบเลือกใช้
references/: เอกสารแบบเลือกใช้
assets/: เทมเพลตและทรัพยากรแบบเลือกใช้
- Codex ใช้วิธี progressive disclosure เพื่อจัดการคอนเท็กซ์อย่างมีประสิทธิภาพ
- ตอนเริ่มจะโหลดเฉพาะชื่อและคำอธิบายของสกิล และจะอ่านคำแนะนำทั้งหมดเมื่อจำเป็น
วิธีการเรียกใช้สกิล
- การเรียกใช้โดยชัดแจ้ง (Explicit invocation)
- ระบุสกิลได้โดยตรงด้วยคำสั่ง
/skills หรือการป้อน $
- Codex เวอร์ชันเว็บและ iOS ยังไม่รองรับการเรียกใช้โดยชัดแจ้ง แต่สกิลที่รวมอยู่ในรีโพซิทอรียังสามารถใช้ผ่านพรอมป์ต์ได้
- การเรียกใช้โดยปริยาย (Implicit invocation)
- เมื่อสิ่งที่ผู้ใช้ต้องการทำตรงกับคำอธิบายของสกิล Codex จะใช้สกิลนั้นโดยอัตโนมัติ
ตำแหน่งจัดเก็บสกิลและลำดับความสำคัญ
- Codex จะโหลดสกิลจากหลายตำแหน่ง และ สกิลจากตำแหน่งที่มีลำดับความสำคัญสูงกว่าจะเขียนทับสกิลชื่อเดียวกันในระดับล่างกว่า
- สโคปและตำแหน่งหลัก
REPO: $CWD/.codex/skills, $CWD/../.codex/skills, $REPO_ROOT/.codex/skills
USER: $CODEX_HOME/skills หรือ ~/.codex/skills
ADMIN: /etc/codex/skills
SYSTEM: สกิลที่มีมาให้ใน Codex โดยค่าเริ่มต้น
- แต่ละสโคปถูกใช้ตาม วัตถุประสงค์ในการจัดการระดับบุคคล ทีม และระบบ
วิธีสร้างสกิล
- สามารถใช้สกิลในตัวของ Codex อย่าง
$skill-creator เพื่อสร้างสกิลใหม่แบบอัตโนมัติได้
- หากใช้ร่วมกับสกิล
$plan ก็สามารถวางแผนก่อนสร้างสกิลได้
- หากสร้างเองด้วยมือ ให้สร้างโฟลเดอร์ในตำแหน่งที่ถูกต้องและเขียนไฟล์
SKILL.md
- รายการที่จำเป็น:
name, description
- รายการที่เลือกใช้ได้:
metadata.short-description
- สกิลอิงตาม Agent Skills specification
การติดตั้งสกิลและตัวอย่าง
- สามารถใช้สกิล
$skill-installer เพื่อติดตั้งสกิลจาก คลังสกิลสาธารณะบน GitHub ได้
- ตัวอย่าง:
$skill-installer linear
- สามารถติดตั้งสกิลจากรีโพซิทอรีอื่นได้เช่นกัน
- ตัวอย่างสกิลในตัว
$plan: วางแผนสำหรับการพัฒนาฟีเจอร์ใหม่หรือการแก้ปัญหาที่ซับซ้อน
$skill-installer linear: เข้าถึงคอนเท็กซ์ของ Linear
$skill-installer notion-spec-to-implementation: เข้าถึงข้อมูลของ Notion
ความหมายต่อผู้พัฒนา Codex
- Agent Skills เป็นองค์ประกอบสำคัญที่ช่วยเพิ่ม ความสามารถในการขยายระบบและการทำงานร่วมกัน ของ Codex
- นักพัฒนาสามารถนิยามสกิลของตนเองเพื่อสร้าง เวิร์กโฟลว์การพัฒนาแบบอัตโนมัติ ได้
- ด้วย การผสานรวม CLI·IDE, การเชื่อมต่อ GitHub และ ข้อกำหนดสกิลที่เป็นมาตรฐาน จึงช่วยเสริมศักยภาพในการขยายระบบนิเวศของ Codex
1 ความคิดเห็น
ความเห็นจาก Hacker News
ดีใจมากที่ Skills กำลังกลายเป็นมาตรฐาน
เขียนได้ด้วยแค่ ไฟล์ Markdown ธรรมดา และโดยพื้นฐานแล้ว ประหยัด context
เอาไปวางทับบนเครื่องมือเดิมได้ จึงสามารถทำ skill ที่อธิบายวิธีใช้
ghCLI แทน GitHub MCP ได้ด้วยสามารถนำหลาย skill มาประกอบใช้ร่วมกันได้ และยังใส่สคริปต์ Python หรือ JS ได้ด้วย
ทำให้เป็นแนวทางที่ง่ายและยืดหยุ่นกว่ามาก โดยไม่ต้องเปิดเผย MCP server แยกต่างหาก
เช่น ทำให้เป็นอัตโนมัติได้ด้วยคำสั่งอย่าง “เพิ่มประเด็นสำคัญของเซสชันนี้เป็น skill ให้หน่อย”
ไม่ใช่แค่เซสชันที่ดีเท่านั้น แม้แต่เซสชันที่ลองผิดลองถูกเยอะก็ยังเก็บสิ่งที่เรียนรู้ไว้เป็น skill ได้
มอบ workflow การขยายความสามารถ ที่เร็วและเข้าถึงง่ายกว่า MCP มาก
ก็สงสัยเหมือนกันว่าอาจจะมีประโยชน์มากกว่าทาง data science หรือ DevOps มากกว่างาน CRUD เป็นหลักหรือเปล่า
แก่นสำคัญของ Skills คือ ตามสเปกแล้วจะ ไม่ใช้ RAG กับโค้ดของ skill หรือเนื้อหาใน markdown
กล่าวคือ จะใส่แค่ชื่อและคำอธิบายใน front-matter เข้าไปใน prompt เพื่อใช้เลือก skill
เพราะฉะนั้น logic ที่ไม่ได้ถูกกล่าวถึงในคำอธิบายก็อาจจะไม่ถูกค้นพบไปเลย
อีกทั้งคำอธิบายของ skill ก็เป็น prompt injection รูปแบบหนึ่ง จึงส่งผลต่อโทนโดยรวมและต้นทุน token ด้วย
ดูตัวอย่างที่เกี่ยวข้องได้จากลิงก์โค้ดนี้
การรักษา context ให้สะอาดเป็นเรื่องสำคัญ จึงชอบวิธีเพิ่มไฟล์ md โดยตรงเฉพาะเวลาจำเป็นมากกว่า
MCP ซับซ้อนเกินไป และแม้แต่ skill เองก็ดูเหมือนถูกออกแบบเกินความจำเป็นนิดหน่อย
นี่เป็นปัญหาด้าน การออกแบบ agentic harness มากกว่าตัว LLM เอง
ต่อไปก็น่าจะเห็น LLM กับ harness ถูกผสานเข้าหากันแน่นแฟ้นยิ่งขึ้น
ฉันใช้วิธีคล้ายกันนี้มานานแล้ว
สร้างโฟลเดอร์แยกตามแต่ละฟังก์ชัน แล้วมี
README.md,scripts,GUIDE.mdถ้าเจอโค้ดที่ใช้ซ้ำได้ (เช่นการเชื่อมต่อ clerk.dev) ก็จะจัดเก็บเป็นโฟลเดอร์
แล้วค่อยรวมใช้เมื่อจำเป็นด้วย merge-to-md
วิธีนี้ทำงานได้ดีแบบสมบูรณ์อยู่แล้ว และตอนนี้ก็ดีใจที่ความสามารถแบบนี้ ถูกใส่มาเป็นพื้นฐานในเอเจนต์
ในระยะยาว Skills ดูมีแนวโน้มจะพัฒนาไปคล้าย ไลบรารีโอเพนซอร์ส
ถ้ามีการให้โซลูชันมาตรฐานอย่างการยืนยันตัวตนหรือ multi-tenancy ในรูปแบบ skill
ความปลอดภัยและคุณภาพโค้ดก็น่าจะดีขึ้นมาก
แล้วนำไปใช้ได้ทันที ก็อาจกลายเป็นทางเลือกแทนการเรียนรู้อย่างต่อเนื่องได้
Skills, plugins, apps, connectors, MCPs, agents… พูดตรง ๆ คือสับสน
ยังไม่มีการตัดสินว่าแนวทางไหนดีที่สุด และคำศัพท์ก็ยังไม่ถูกจัดระเบียบ
แม้แต่คำว่า “Agent” เองก็ยังมีความหมายต่างกันไปในแต่ละกลุ่ม
นอกจากการรันเครื่องมือแล้ว ก็เป็นหลากหลายวิธีในการเพิ่มบริบทเข้าไปใน prompt
ไม่นานมานี้ในโพสต์นี้
มีการอธิบายโครงสร้างที่เอเจนต์เรียก LLM ซ้ำ ๆ และแลกเปลี่ยน คำขอใช้เครื่องมือ ในรูปแบบ JSON กันไปมา
ก็เลยสงสัยว่าในเฟรมเวิร์กนี้ skill จะมีหน้าตาแบบไหน
<Skills>ให้ LLMตัวอย่าง:
<Skill><Name>postgres</Name><Description>วิธี query DB pre-prod</Description><File>skills/postgres.md</File></Skill>มีการส่งการแจ้งเตือนนี้ซ้ำเป็นระยะเพื่อไม่ให้ LLM “ลืม” skill
สุดท้ายแล้วสิ่งที่ส่งไปมีแค่ ชื่อ+คำอธิบาย+พาธไฟล์ จึงใช้ token น้อย
แต่ถ้าเป็น LLM ที่ฉลาดพอ ก็อาจทำงานได้ดีโดยไม่ต้องมีโครงสร้างแบบนี้ก็ได้
เป็นวิธีมาตรฐานในการโหลด prompt ของ skill พร้อมสคริปต์ที่เกี่ยวข้องมาใช้ร่วมกัน
หลายคนกำลังเข้าใจ Skills ผิด
ประเด็นสำคัญไม่ใช่ไฟล์
.mdแต่เป็น การบันเดิลโค้ดกับคำสั่งไว้ด้วยกันSkills มีพื้นฐานอยู่บนสมมติฐานว่า มีสภาพแวดล้อมสำหรับรันโค้ด
จุดเด่นใหญ่คือการประหยัด context ด้วย การทำดัชนีเมทาดาทาและการโหลดแบบหน่วงเวลา
ถ้ามี มาร์เก็ตเพลส skills.md ก็น่าจะช่วยให้เทคโนโลยีแพร่หลายขึ้น
แค่ดูกรณีสแปมที่เกี่ยวกับ MCP ก็พอเห็นภาพแล้ว
ท้ายที่สุดก็มีแนวโน้มว่าจะเหลือแค่บริษัทที่เชื่อถือได้หรือเหล่านักพัฒนาชื่อดังเป็นศูนย์กลาง
แม้จะไม่มีคะแนนหรือคอมเมนต์ แต่คุณภาพก็น่าคาดหวังได้
แรงจูงใจที่จะใช้ prompt ของคนอื่นจึงไม่มากนัก
สุดท้ายสิ่งสำคัญคือ การปรับให้เหมาะกับ workflow และ codebase ของตัวเอง
สงสัยว่าเราจะใช้ skill ที่สร้างขึ้นมา ให้เอเจนต์ช่วย สรุปวิธีแก้สุดท้าย ที่ได้มาหลังจากลองหลายรอบได้ไหม
ตอนนี้กำลังสร้าง ผลแบบ flywheel ด้วยวิธีนี้
มีมุกล้อว่า Anthropic ดูเหมือน Chief Product Officer ของ OpenAI