ข้ามไปที่เนื้อหา

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 ที่มีอยู่ซ้ำ

ตรวจสอบว่าติดตั้งอะไรไปแล้วบ้าง:

jarvis skill list

คุณควรเห็นตารางที่มีชื่อ, คำอธิบาย, เวอร์ชัน และแท็กของแต่ละ skill

ขั้นตอนที่ 2: ตรวจสอบ Skill ที่ติดตั้งไว้

ลองดูว่า skill arxiv มีอะไรอยู่บ้าง:

jarvis skill info arxiv

คำสั่งนี้จะแสดง metadata ของ skill — ผู้เขียน, คำอธิบาย, แท็ก, ความสามารถ, มีขั้นตอนแบบมีโครงสร้างหรือคำสั่งแบบ markdown, และ flag การเรียกใช้งาน

คุณสามารถดู SKILL.md แบบดิบได้ด้วย:

cat ~/.openjarvis/skills/hermes/arxiv/SKILL.md | head -40

ไฟล์ .source บันทึกที่มา:

cat ~/.openjarvis/skills/hermes/arxiv/.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 ด้วย:

jarvis ask "Use the math-solver skill to compute 17 * 23" \
  --engine ollama --model qwen3.5:9b

ครั้งนี้เอเจนต์จะเรียก skill_math-solver ซึ่งรัน pipeline แบบ deterministic (เรียก tool calculator ภายใน) และคืนผลลัพธ์ที่คำนวณแล้วโดยตรง

ขั้นตอนที่ 4: สร้าง Skill ของคุณเอง

สร้างไดเรกทอรี skill ใหม่:

mkdir -p ~/.openjarvis/skills/my-reviewer

เขียน 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 นี้แล้ว:

jarvis skill list

คุณควรเห็น 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 ที่ดีที่สุดของคุณ

ตรวจสอบสิ่งที่สร้างขึ้น:

jarvis skill show-overlay math-solver
jarvis skill show-overlay code-explainer

ครั้งถัดไปที่คุณรันคำถาม เอเจนต์จะเห็นคำอธิบายและตัวอย่าง few-shot ที่ปรับปรุงแล้วใน system prompt ของมัน

ขั้นตอนที่ 8: วัดผลกระทบ

รัน benchmark สั้นๆ เพื่อดูว่า skill + การปรับปรุง ช่วยได้จริงหรือไม่:

# Smoke test: 4 conditions × 1 seed × 5 tasks
jarvis bench skills --max-samples 5 --seeds 42

คำสั่งนี้รัน 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]

ขั้นตอนถัดไป