Skills Workflow Tutorial¶
Tutorial นี้พาไปดูวงจรชีวิตของ skill แบบครบถ้วน: ติดตั้ง skill จากแหล่งสาธารณะ ใช้งานกับเอเจนต์ในเครื่อง ค้นหารูปแบบจากประวัติ trace และปรับปรุงคำอธิบาย skill ด้วย DSPy เมื่อจบแล้วคุณจะได้ระบบ skills ที่ใช้งานได้จริงและดีขึ้นตามเวลา
ก่อนเริ่มต้น
Tutorial นี้สมมติว่าคุณติดตั้ง OpenJarvis แล้ว มี Ollama กำลังรันอยู่ และมีโมเดลพร้อมใช้งาน (เช่น qwen3.5:9b) หากคุณยังตั้งค่าไม่เสร็จ ให้เริ่มที่ คู่มือ Quick Start ก่อน
ขั้นตอนที่ 1: ติดตั้ง Skill จาก Hermes Agent¶
OpenJarvis นำเข้า skill จาก skill library ของ Hermes Agent ที่ดูแลโดย NousResearch ได้ ลองติดตั้งไม่กี่ตัวที่มีประโยชน์กัน
# Install individual skills
jarvis skill install hermes:arxiv
jarvis skill install hermes:github-pr-workflow
# Or bulk install an entire category
jarvis skill sync hermes --category research
การติดตั้งครั้งแรกจะ clone repo ของ Hermes ไปที่ ~/.openjarvis/skill-cache/hermes/ (ครั้งเดียว ~5 วินาที) การติดตั้งครั้งถัดไปจะใช้ cache ที่มีอยู่ซ้ำ
ตรวจสอบว่าติดตั้งอะไรไปแล้วบ้าง:
คุณควรเห็นตารางที่มีชื่อ, คำอธิบาย, เวอร์ชัน และแท็กของแต่ละ skill
ขั้นตอนที่ 2: ตรวจสอบ Skill ที่ติดตั้งไว้¶
ลองดูว่า skill arxiv มีอะไรอยู่บ้าง:
คำสั่งนี้จะแสดง metadata ของ skill — ผู้เขียน, คำอธิบาย, แท็ก, ความสามารถ, มีขั้นตอนแบบมีโครงสร้างหรือคำสั่งแบบ markdown, และ flag การเรียกใช้งาน
คุณสามารถดู SKILL.md แบบดิบได้ด้วย:
ไฟล์ .source บันทึกที่มา:
คำสั่งนี้แสดงแหล่งที่มา (hermes:arxiv), git commit ที่นำเข้ามา, ชื่อ tool ตัวไหนถูกแปลงชื่อ (เช่น Edit→file_edit) และ timestamp ที่ติดตั้ง
ขั้นตอนที่ 3: ใช้ Skill กับเอเจนต์¶
ลองถามเอเจนต์ด้วยคำถามที่ควรจะกระตุ้นการใช้ skill:
jarvis ask "Use the code-explainer skill to explain this Python code: for i in range(5): print(i*2)" \
--engine ollama --model qwen3.5:9b
เอเจนต์จะ:
1. เห็นแคตตาล็อก skill ใน system prompt ของมัน
2. ตัดสินใจเรียกใช้ skill_code-explainer
3. รับคำสั่งแบบ markdown จาก skill
4. ทำตามรูปแบบ 5 ขั้นตอนเพื่ออธิบายโค้ด
ลอง pipeline skill ด้วย:
ครั้งนี้เอเจนต์จะเรียก skill_math-solver ซึ่งรัน pipeline แบบ deterministic (เรียก tool calculator ภายใน) และคืนผลลัพธ์ที่คำนวณแล้วโดยตรง
ขั้นตอนที่ 4: สร้าง Skill ของคุณเอง¶
สร้างไดเรกทอรี skill ใหม่:
เขียน SKILL.md:
cat > ~/.openjarvis/skills/my-reviewer/SKILL.md << 'EOF'
---
name: my-reviewer
description: Review code changes with a security-first approach
license: MIT
metadata:
openjarvis:
version: "0.1.0"
author: me
tags: [coding, review, security]
---
When asked to review code, follow this approach:
1. **Security scan first** — check for injection vulnerabilities, hardcoded secrets, unsafe deserialization
2. **Correctness** — verify logic, edge cases, error handling
3. **Style** — naming, structure, consistency with surrounding code
4. **Summary** — one paragraph with the verdict: approve, request changes, or block
Always start with security. If you find a security issue, flag it as BLOCKING regardless of other concerns.
EOF
ตรวจสอบว่าระบบค้นพบ skill นี้แล้ว:
คุณควรเห็น my-reviewer อยู่ในตาราง ลองใช้งานดู:
jarvis ask "Use the my-reviewer skill to review this function: def login(user, pwd): return db.query(f'SELECT * FROM users WHERE name={user} AND pass={pwd}')" \
--engine ollama --model qwen3.5:9b
เอเจนต์ควรทำตามแนวทาง security-first และตั้งค่าสถานะช่องโหว่ SQL injection
ขั้นตอนที่ 5: สร้าง Trace¶
เพื่อให้ learning loop ทำงานได้ เราต้องมี trace รันคำถามหลายๆ ครั้งที่ใช้ skill:
# Generate a few traces
jarvis ask "Use math-solver to compute 100 / 7"
jarvis ask "Use code-explainer to explain: lambda x: x**2"
jarvis ask "Use my-reviewer to review: def add(a,b): return a+b"
jarvis ask "Use math-solver to compute 2**10"
jarvis ask "Use code-explainer to explain: [x for x in range(10) if x % 2 == 0]"
แต่ละคำถามจะสร้าง trace ใน ~/.openjarvis/traces.db พร้อมแท็ก metadata ของ skill (skill, skill_source, skill_kind)
ขั้นตอนที่ 6: ค้นหารูปแบบจาก Trace¶
ขุด trace store หาลำดับการเรียกใช้ tool ที่เกิดซ้ำ:
# Preview without writing
jarvis skill discover --dry-run --min-frequency 2
# Write discovered patterns as skill manifests
jarvis skill discover --min-frequency 2
skill ที่ค้นพบจะไปอยู่ที่ ~/.openjarvis/skills/discovered/ และปรากฏใน jarvis skill list โดยอัตโนมัติในเซสชันถัดไป
ขั้นตอนที่ 7: ปรับปรุง Skill ด้วย DSPy¶
เมื่อคุณมี trace เพียงพอแล้ว (อย่างน้อย 3-5 ต่อ skill) รัน optimizer:
# Preview what would be optimized
jarvis optimize skills --dry-run
# Run DSPy optimization
jarvis optimize skills --policy dspy --min-traces 3
คำสั่งนี้จะสร้างไฟล์ overlay ที่ ~/.openjarvis/learning/skills/<skill-name>/optimized.toml พร้อมคำอธิบายที่ดีขึ้นและตัวอย่าง few-shot ที่ดึงมาจาก trace ที่ดีที่สุดของคุณ
ตรวจสอบสิ่งที่สร้างขึ้น:
ครั้งถัดไปที่คุณรันคำถาม เอเจนต์จะเห็นคำอธิบายและตัวอย่าง few-shot ที่ปรับปรุงแล้วใน system prompt ของมัน
ขั้นตอนที่ 8: วัดผลกระทบ¶
รัน benchmark สั้นๆ เพื่อดูว่า skill + การปรับปรุง ช่วยได้จริงหรือไม่:
คำสั่งนี้รัน benchmark ของ PinchBench ใน 4 เงื่อนไข (ไม่มี skill, เปิด skill, ปรับปรุงด้วย DSPy, ปรับปรุงด้วย GEPA) และสร้างรายงาน markdown ที่ docs/superpowers/results/
ขั้นตอนที่ 9: ตั้งค่าการนำเข้าและปรับปรุงอัตโนมัติ¶
สำหรับประสบการณ์แบบไม่ต้องดูแลเอง เพิ่มสิ่งนี้ลงใน ~/.openjarvis/config.toml:
[skills]
enabled = true
auto_sync = true
[[skills.sources]]
source = "hermes"
filter = { category = ["research", "coding"] }
auto_update = true
[learning.skills]
auto_optimize = true
optimizer = "dspy"
min_traces_per_skill = 20
ตอนนี้ skill จะถูก sync จาก Hermes โดยอัตโนมัติตอนเริ่ม session และ optimizer จะรันหลังจากแต่ละรอบการเรียนรู้เมื่อ trace สะสมมากพอ
สิ่งที่คุณได้เรียนรู้¶
| แนวคิด | สิ่งที่คุณทำ |
|---|---|
| การติดตั้ง Skill | jarvis skill install hermes:arxiv — นำเข้าจากแหล่งสาธารณะ |
| การใช้ Skill | jarvis ask "Use the code-explainer skill..." — เอเจนต์เรียกใช้ skill เป็น tool |
| การสร้าง Skill | เขียน SKILL.md พร้อม YAML frontmatter และคำสั่งแบบ markdown |
| การสร้าง Trace | รันคำถามที่ใช้ skill เพื่อเติมข้อมูลใน trace store |
| การค้นหารูปแบบ | jarvis skill discover — ขุด trace หาลำดับการเรียกใช้ tool ที่เกิดซ้ำ |
| การปรับปรุง Skill | jarvis optimize skills --policy dspy — ปรับปรุงคำอธิบาย + ตัวอย่าง few-shot |
| การวัดผล | jarvis bench skills — วัดผลกระทบใน 4 เงื่อนไข |
| การตั้งค่าอัตโนมัติ | เพิ่มหมวด config [skills] และ [learning.skills] |
ขั้นตอนถัดไป¶
- ดู คู่มือผู้ใช้ Skills แบบเต็ม สำหรับคำสั่ง CLI และตัวเลือกการตั้งค่าทั้งหมด
- อ่าน สถาปัตยกรรมของ Skills สำหรับรายละเอียดเชิงเทคนิคแบบลึก
- สำรวจ Hermes Agent skill library เพื่อหา skill เพิ่มเติมมาติดตั้ง
- ลอง OpenClaw skills สำหรับ skill ที่ชุมชนร่วมสร้าง