DEV Community

Nokka
Nokka

Posted on AI-assisted

เขียน Skill ครั้งเดียวให้ AI agent ทุกตัวใช้ได้จริงไหม? รู้จัก Skill Hub

โดย Nokka (นก-กา) | ตรวจข้อมูล 24 ต.ค. 2026

บทความนี้เขียนโดย AI (deepseek-v4.1-flash · ผู้ให้บริการโมเดล: ollama-cloud) ผ่าน Hermes Agent ภายใต้การควบคุมและตรวจสอบคุณภาพโดยมนุษย์ - Nokka (นก-กา)

ภาพเปิด: ชั้นวางกลางห้องที่เต็มไปด้วยกล่องเอกสารหน้าตาเหมือนกัน เรียงเป็นแถว และมีเส้นแสงบาง ๆ โยงจากชั้นวางไปยังโต๊ะทำงานสามตัวที่กระจายอยู่รอบห้อง

ผมมี Skill อยู่ชุดเดียว แต่ต้องใช้กับ agent สามตัว ทุกครั้งที่แก้ไฟล์หนึ่ง ผมต้องไล่คัดลอกไปอีกสองที่

พอทำบ่อยเข้า ก็เริ่มลืมว่าตัวไหนคือต้นฉบับ ตัวไหนคือสำเนาที่ค้างอยู่เมื่อเดือนก่อน

คลิปของเพจ Uncle AI Engineer ที่ผมดูเมื่อคืน (https://www.facebook.com/share/r/19rLZtE4Wi/) พูดถึงปัญหานี้ตรง ๆ และเสนอทางแก้ที่เรียบง่ายกว่าที่ผมคิดไว้มาก

ปัญหาที่ทุกคนเจอเมื่อใช้ agent มากกว่าหนึ่งตัว

Skill ในที่นี้คือโฟลเดอร์ที่มีไฟล์ SKILL.md ข้างใน ใช้บอก agent ว่าทำงานอะไรได้บ้างและต้องทำอย่างไร [4][5][7]

แต่ละเครื่องมือเก็บ Skill คนละที่ ซึ่งเป็นต้นเหตุของเรื่องทั้งหมด

  • Claude Code อ่าน Skill ส่วนตัวจาก ~/.claude/skills [4]
  • Codex อ่านจาก $HOME/.agents/skills และสแกน .agents/skills ในโปรเจกต์ด้วย [5]
  • Cursor, Gemini CLI, OpenCode และอื่น ๆ ก็มีโฟลเดอร์ของตัวเอง [3]

พอมี agent สองตัว การแก้ Skill หนึ่งครั้งหมายถึงแก้สองที่ พอมีห้าตัวก็ห้าที่

และเมื่อ version ไม่ตรงกัน agent ตัวหนึ่งอาจทำตามวิธีเก่า อีกตัวทำตามวิธีใหม่ ซึ่งหาสาเหตุยากมากเพราะผลลัพธ์ดูคล้ายกัน

แนวคิด Skill Hub (คลังกลาง) คืออะไร

แนวคิดง่ายมาก คืออย่าให้ agent แต่ละตัวเป็นเจ้าของ Skill

ให้มีโฟลเดอร์กลางเพียงที่เดียวเป็นต้นฉบับ แล้วให้ agent ทุกตัวชี้มาที่โฟลเดอร์นั้น

กลไกที่ทำให้ "ชี้" ได้คือ symlink หรือลิงก์ไฟล์ ซึ่งเป็นเพียงทางลัดไปยังไฟล์จริง ไม่ใช่สำเนา

ผลคือแก้ต้นฉบับครั้งเดียว ทุก agent เห็นการเปลี่ยนแปลงทันทีโดยไม่ต้องคัดลอกอะไรอีก

นี่คือส่วนที่ผมคิดว่าคลิปเดิมอธิบายได้ดี มันเปลี่ยนคำถามจาก "จะ sync อย่างไร" เป็น "ทำไมต้องมีสำเนาตั้งแต่แรก"

ของจริงที่ทำแบบนี้อยู่

สามโครงการที่ตอบโจทย์คนละระดับ

มีโครงการโอเพนซอร์สหลายตัวที่สร้างแนวคิดนี้ขึ้นมาจริง ไม่ใช่แค่ทฤษฎี

Skills Manager เป็นแอปเดสก์ท็อปที่เขียนด้วย Tauri และ Rust เก็บ Skill ไว้ที่ศูนย์กลางแล้วเชื่อมด้วย symlink ไปยังเครื่องมือ 32 ตัว รวมถึง Claude Code, Codex, Cursor และ Gemini CLI [1]

โครงการนี้มีดาวบน GitHub ราว 1,037 ดวง สัญญาอนุญาต MIT และออกรุ่นล่าสุด v2.2.0 เมื่อ 25 สิงหาคม 2026 [1]

จุดที่ผมชอบคือมันมี CLI ชื่อ skm ใช้ได้บนเครื่องที่ไม่มีหน้าจอ และมีคำสั่ง skm adopt สำหรับย้าย Skill ที่กระจัดกระจายอยู่ในโฟลเดอร์ของแต่ละ tool กลับเข้าคลังกลาง แล้วเชื่อมลิงก์ให้ใหม่ [1][3]

Skills Hub เป็นอีกตัวที่ใช้แนวคิดเดียวกัน แต่เล่นในมุมของแอปเดสก์ท็อปที่เน้นการค้นหาและคัดเลือก Skill จากคลังสาธารณะ หรือนำเข้าจาก Git และโฟลเดอร์ในเครื่อง แล้วค่อยเลือกว่าจะซิงค์ไปเครื่องมือไหน ทั้งแบบ global และแบบเฉพาะโปรเจกต์ [2]

โครงการนี้มีดาวราว 1,823 ดวง สัญญา MIT และเพิ่งอัปเดตเมื่อ 23 ตุลาคม 2026 [2]

SkillHub ของ iFlytek ซึ่งเป็นชื่อผลิตภัณฑ์ที่ไม่มีการเว้นวรรค ไปอีกทางหนึ่ง คือเป็น registry ที่ติดตั้งเองได้สำหรับองค์กร เน้นการเผยแพร่และกำหนด version ของ Skill พร้อมการกำกับดูแล [6]

สามตัวนี้ไม่ได้แข่งกันตรง ๆ แต่ตอบโจทย์ต่างระดับ ตัวแรกเน้นเครื่องเดียว ตัวที่สองเน้นค้นหาและคัดเลือก ตัวที่สามเน้นทีมและองค์กร

ลองใช้ CLI ดูของจริง

ส่วนที่ทำให้ผมสนใจ Skills Manager คือมันออกแบบมาให้ใช้แบบไม่ต้องเปิดหน้าจอได้

# ติดตั้ง CLI จาก release แล้วเริ่มต้นครั้งแรก
skm init

# ย้าย Skill ที่กระจายอยู่ในโฟลเดอร์ของแต่ละ tool เข้าคลังกลาง
skm adopt --dry-run
skm adopt --yes

# ดูสถานะว่าตัวไหนเชื่อมกับ tool ไหนแล้ว
skm list
skm list --tool claude-code --json

# เปิดใช้ Skill กับ tool ที่ต้องการ
skm enable research --for claude-code
skm enable research --for codex

# ตรวจและซ่อมลิงก์ที่แตก
skm doctor
skm fix --yes
Enter fullscreen mode Exit fullscreen mode

คำสั่ง --dry-run สำคัญมาก เพราะ adopt จะย้ายไฟล์จริง ถ้ารันพลาดแล้วไฟล์กระจัดกระจายจะกู้ยาก [1]

ผมชอบที่มี doctor กับ fix เพราะลิงก์พังเงียบ ๆ ได้ เช่นเมื่อมีคนลบโฟลเดอร์ต้นฉบับหรือเปลี่ยนชื่อ

ทำเองโดยไม่ต้องติดตั้งแอป

คำสั่งพื้นฐานที่ทำเองได้

ถ้าไม่อยากเพิ่มโปรแกรมอีกตัว หลักการเดียวกันทำได้ด้วยคำสั่งสองสามบรรทัด

# 1) สร้างคลังกลาง
mkdir -p ~/.skills-hub/research

# 2) เขียน SKILL.md ที่ต้นฉบับ
#    (ใส่ frontmatter name/description ตามสเปก Agent Skills)

# 3) ลิงก์ไปยังแต่ละเครื่องมือ
mkdir -p ~/.claude/skills ~/.agents/skills
ln -s ~/.skills-hub/research ~/.claude/skills/research
ln -s ~/.skills-hub/research ~/.agents/skills/research

# 4) ตรวจว่าลิงก์ชี้ถูก
ls -l ~/.claude/skills ~/.agents/skills
Enter fullscreen mode Exit fullscreen mode

บน macOS และ Linux วิธีนี้ใช้ได้ทันที ส่วน Windows ต้องเปิด Developer Mode หรือใช้ junction ซึ่งเป็นคนละกลไกแต่ให้ผลคล้ายกัน [1]

ถ้าอยากให้คลังกลางมีประวัติการแก้ไข ก็ทำเป็น git repo แล้ว push ขึ้น remote ส่วนตัวได้

ข้อควรระวังคืออย่าให้ symlink ชี้ไปยังโฟลเดอร์ที่ถูก sync ด้วย cloud storage บางตัว เพราะอาจทำให้ลิงก์หลุดเมื่อไฟล์ถูกย้าย

Preset หรือการจัดกลุ่มตามบทบาท

พอ Skill เยอะขึ้น ปัญหาถัดไปคือ agent แต่ละตัวไม่ควรได้ Skill ทุกตัว

ตัวอย่างเช่น agent ที่เขียนคอนเทนต์ไม่ต้องมี Skill ด้าน deployment ส่วน agent ที่ดูแลเซิร์ฟเวอร์ก็ไม่จำเป็นต้องมี Skill เขียนบทความ

แนวทางที่โครงการพวกนี้ใช้คือการเปิดปิดรายตัวต่อ tool ซึ่งในทางปฏิบัติเทียบได้กับการจัดชุด

ผมเรียกมันว่า preset ในหัว แต่ในเครื่องมือจริงมันคือชุดของ enable กับ disable ที่บันทึกไว้ต่อ tool [1][2]

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

กับดักที่เจอบ่อย

ลบต้นฉบับแล้วลิงก์แตก อาการคือ agent มองไม่เห็น Skill แต่ไม่มี error ชัดเจน ควรมี doctor หรือสคริปต์ตรวจ readlink -f เป็นระยะ (บางรุ่นของ macOS ใช้ realpath แทน)

สับสนระหว่าง global กับ project Claude Code ใช้ ~/.claude/skills สำหรับ Skill ส่วนตัว และ .claude/skills ในโปรเจกต์สำหรับ Skill เฉพาะงาน [4] ส่วน Codex สแกน .agents/skills ไล่ขึ้นไปถึงราก repo [5] ถ้าวางผิดที่ agent จะไม่เห็นทั้งที่ไฟล์อยู่ตรงหน้า

ชื่อซ้ำกัน Codex ระบุชัดว่าถ้า Skill สองตัวชื่อเดียวกัน มันไม่รวมให้ แต่อาจแสดงได้ทั้งคู่ในตัวเลือก [5] ซึ่งทำให้ agent เลือกผิดตัวได้ง่าย

Windows ไม่มีสิทธิ์สร้าง symlink Skills Manager แก้ด้วยการไล่สามกลไกตามลำดับ เริ่มจาก directory symlink ซึ่งใช้ได้เมื่อ Developer Mode ถูกเปิดไว้ ถ้าไม่ได้ก็ใช้ junction ด้วย mklink /J ที่ไม่ต้องใช้สิทธิ์พิเศษ และถ้ายังไม่ได้อีกก็ถอยไปใช้สำเนาที่บันทึกที่มาไว้ใน .skills-manager-source.json [1] ส่วนคนที่ทำเองด้วยมือยังต้องเปิดโหมดนี้อยู่ดี

Skill ที่ agent สร้างขึ้นเอง บางครั้ง agent เขียน Skill ใหม่ระหว่างทำงาน ซึ่งปกติจะไปอยู่ในโฟลเดอร์ของ tool ตัวเอง การมีคำสั่ง adopt กลับเข้าคลังกลางช่วยไม่ให้มันกลายเป็นของหายากที่ผูกกับ agent ตัวเดียว [1]

ใครควรใช้ และใครยังไม่ต้อง

ถ้าคุณใช้ agent ตัวเดียว และ Skill มีไม่ถึงสิบตัว การติดตั้งแอปเพิ่มอาจเกินจำเป็น

แต่ถ้าคุณใช้สองตัวขึ้นไป หรือมี Skill ที่ทีมใช้ร่วมกัน การมีคลังกลางจะลดงานซ้ำได้มาก และทำให้ตรวจสอบได้ว่า agent กำลังใช้ Skill รุ่นไหน

ผมเองเริ่มจาก symlink มือเปล่าก่อน แล้วค่อยดูว่าจำนวน Skill เยอะพอที่จะต้องมีเครื่องมือช่วยหรือยัง

เพราะเครื่องมือที่ดีที่สุดคือเครื่องมือที่เราไม่ต้องเปิดบ่อย แต่เมื่อเปิดแล้วมันต้องบอกได้ทันทีว่าอะไรพัง

REF

[1] GitHub (2026) · jiweiyeah/Skills-Manager · MIT · v2.2.0. https://github.com/jiweiyeah/Skills-Manager
[2] GitHub (2026) · qufei1993/skills-hub · MIT. https://github.com/qufei1993/skills-hub
[3] Skills-Manager (2026) · CLI reference: tool ids และ path ของแต่ละเครื่องมือ. https://github.com/jiweiyeah/Skills-Manager/blob/main/skills/skills-manager-cli/references/tools.md
[4] Anthropic (2026) · Claude Code Skills documentation. https://code.claude.com/docs/en/skills
[5] OpenAI (2026) · Codex Skills documentation. https://learn.chatgpt.com/docs/build-skills
[6] GitHub (2026) · iflytek/skillhub · Apache-2.0. https://github.com/iflytek/skillhub
[7] Agent Skills (2026) · Specification. https://agentskills.io/specification

Top comments (0)