Skills
การสร้าง Skills
Skills สอนเอเจนต์ว่าควรใช้เครื่องมืออย่างไรและเมื่อใด แต่ละทักษะเป็นไดเรกทอรี
ที่มีไฟล์ SKILL.md พร้อม YAML frontmatter และคำแนะนำแบบ Markdown
OpenClaw โหลดทักษะจากตำแหน่งรากหลายแห่งตามลำดับความสำคัญที่กำหนดไว้
สร้างทักษะแรกของคุณ
สร้างไดเรกทอรีของทักษะ
Skills อยู่ในโฟลเดอร์ skills/ ของเวิร์กสเปซคุณ:
mkdir -p ~/.openclaw/workspace/skills/hello-worldคุณสามารถจัดกลุ่มทักษะไว้ในโฟลเดอร์ย่อยเพื่อให้เป็นระเบียบได้ โดยชื่อทักษะยังคง
กำหนดจาก frontmatter ใน SKILL.md ไม่ใช่พาธของโฟลเดอร์:
mkdir -p ~/.openclaw/workspace/skills/personal/hello-world# skill name is still "hello-world", invoked as /hello-worldเขียน SKILL.md
frontmatter กำหนดข้อมูลเมตา ส่วนเนื้อหากำหนดคำแนะนำสำหรับเอเจนต์
---name: hello-worlddescription: A simple skill that prints a greeting.--- # Hello World When the user asks for a greeting, use the `exec` tool to run: ```bashecho "Hello from your custom skill!" กฎการตั้งชื่อ:- ใช้ตัวอักษรพิมพ์เล็ก ตัวเลข และขีดกลางสำหรับ `name`- ตั้งชื่อไดเรกทอรีและ `name` ใน frontmatter ให้ตรงกัน- `description` จะแสดงต่อเอเจนต์และในผลการค้นหาคำสั่งแบบเครื่องหมายทับ — เขียนให้อยู่ในบรรทัดเดียวและมีความยาวไม่เกิน 160 อักขระ OPENCLAW_DOCS_MARKER:stepClose: OPENCLAW_DOCS_MARKER:stepOpen:IHRpdGxlPSLguJXguKPguKfguIjguKrguK3guJrguKfguYjguLLguYLguKvguKXguJTguJfguLHguIHguKnguLDguYHguKXguYnguKci ```bashopenclaw skills listโดยค่าเริ่มต้น OpenClaw จะเฝ้าติดตามไฟล์ SKILL.md ภายใต้ตำแหน่งรากของ Skills หาก
ปิดตัวเฝ้าติดตามไว้หรือคุณกำลังใช้งานเซสชันเดิมต่อ ให้เริ่มเซสชัน
ใหม่เพื่อให้เอเจนต์ได้รับรายการที่อัปเดตแล้ว:
# From chat — archive current session and start fresh/new # Or restart the gatewayopenclaw gateway restartทดสอบ
openclaw agent --message "give me a greeting"หรือเปิดแชตแล้วถามเอเจนต์โดยตรง ใช้ /skill hello-world เพื่อ
เรียกใช้โดยระบุชื่ออย่างชัดเจน
ข้อมูลอ้างอิง SKILL.md
ฟิลด์ที่จำเป็น
| ฟิลด์ | คำอธิบาย |
|---|---|
name |
slug ที่ไม่ซ้ำกัน โดยใช้ตัวอักษรพิมพ์เล็ก ตัวเลข และขีดกลาง |
description |
คำอธิบายหนึ่งบรรทัดที่แสดงต่อเอเจนต์และในผลลัพธ์การค้นหา |
คีย์ frontmatter ที่ไม่บังคับ
| ฟิลด์ | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
user-invocable |
true |
เปิดให้ทักษะใช้งานเป็นคำสั่งแบบเครื่องหมายทับสำหรับผู้ใช้ |
disable-model-invocation |
false |
ไม่นำทักษะไปใส่ในพรอมต์ระบบของเอเจนต์ (ยังเรียกใช้ผ่าน /skill ได้) |
command-dispatch |
— | ตั้งเป็น tool เพื่อส่งคำสั่งแบบเครื่องหมายทับไปยังเครื่องมือโดยตรง โดยข้ามโมเดล |
command-tool |
— | ชื่อเครื่องมือที่จะเรียกใช้เมื่อตั้งค่า command-dispatch: tool |
command-arg-mode |
raw |
สำหรับการส่งไปยังเครื่องมือ จะส่งต่อสตริงอาร์กิวเมนต์ดิบไปยังเครื่องมือ |
homepage |
— | URL ที่แสดงเป็น "Website" ใน UI ของ Skills บน macOS |
สำหรับฟิลด์เงื่อนไขการเปิดใช้งาน (requires.bins, requires.env เป็นต้น) โปรดดู
Skills — เงื่อนไขการเปิดใช้งาน
การใช้ {baseDir}
อ้างอิงไฟล์ภายในไดเรกทอรีของทักษะโดยไม่ต้องกำหนดพาธตายตัว โดย
เอเจนต์จะแปลง {baseDir} เทียบกับไดเรกทอรีของทักษะนั้นเอง:
Run the helper script at `{baseDir}/scripts/run.sh`.การเพิ่มการเปิดใช้งานแบบมีเงื่อนไข
กำหนดเงื่อนไขให้ทักษะโหลดเฉพาะเมื่อมีการอ้างอิงที่จำเป็นพร้อมใช้งาน:
---name: gemini-searchdescription: Search using Gemini CLI.metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }---ตัวเลือกเงื่อนไขการเปิดใช้งาน
| คีย์ | คำอธิบาย |
|---|---|
requires.bins |
ไบนารีทั้งหมดต้องมีอยู่ใน PATH |
requires.anyBins |
ต้องมีไบนารีอย่างน้อยหนึ่งรายการอยู่ใน PATH |
requires.env |
ตัวแปรสภาพแวดล้อมแต่ละรายการต้องมีอยู่ในโปรเซสหรือการกำหนดค่า |
requires.config |
พาธ openclaw.json แต่ละรายการต้องมีค่าเป็นจริง |
os |
ตัวกรองแพลตฟอร์ม: ["darwin"], ["linux"], ["win32"] |
always |
ตั้งเป็น true เพื่อข้ามเงื่อนไขทั้งหมดและรวมทักษะไว้เสมอ |
ข้อมูลอ้างอิงฉบับเต็ม: Skills — เงื่อนไขการเปิดใช้งาน
ตัวแปรสภาพแวดล้อมและคีย์ API
เชื่อมโยงคีย์ API กับรายการทักษะใน openclaw.json:
{ skills: { entries: { "gemini-search": { enabled: true, apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, }, }, },}คีย์จะถูกฉีดเข้าไปในโปรเซสโฮสต์เฉพาะรอบการทำงานนั้นของเอเจนต์เท่านั้น คีย์จะไม่ถูกส่งเข้าแซนด์บ็อกซ์ โปรดดู ตัวแปรสภาพแวดล้อมในแซนด์บ็อกซ์
เสนอผ่าน Skill Workshop
สำหรับทักษะที่เอเจนต์ร่างขึ้น หรือเมื่อคุณต้องการให้ผู้ดูแลตรวจสอบก่อนนำทักษะ
ไปใช้งานจริง ให้ใช้ข้อเสนอของ Skill Workshop แทนการเขียน
SKILL.md โดยตรง
# Propose a brand-new skillopenclaw skills workshop propose-create \ --name "hello-world" \ --description "A simple skill that prints a greeting." \ --proposal ./PROPOSAL.md # Propose an update to an existing skillopenclaw skills workshop propose-update hello-world \ --proposal ./PROPOSAL.md \ --description "Updated greeting skill"ใช้ --proposal-dir เมื่อข้อเสนอมีไฟล์สนับสนุน:
openclaw skills workshop propose-create \ --name "hello-world" \ --description "A simple skill that prints a greeting." \ --proposal-dir ./hello-world-proposal/ไดเรกทอรีต้องมี PROPOSAL.md อยู่ที่ราก ไฟล์สนับสนุนให้อยู่ภายใต้
assets/, examples/, references/, scripts/ หรือ templates/
หลังการตรวจสอบ:
openclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>โปรดดูวงจรชีวิตข้อเสนอฉบับเต็มที่ Skill Workshop
การเผยแพร่ไปยัง ClawHub
ตรวจสอบว่า SKILL.md ของคุณครบถ้วน
ตรวจสอบว่าได้ตั้งค่า name, description และฟิลด์เงื่อนไขการเปิดใช้งาน
metadata.openclaw ที่เกี่ยวข้องแล้ว เพิ่ม URL homepage หากคุณมีหน้าโครงการ
ติดตั้ง ClawHub CLI แบบสแตนด์อโลนและเข้าสู่ระบบ
npm i -g clawhubclawhub loginเผยแพร่
clawhub skill publish ./path/to/hello-worldเพิ่ม --version <version> หรือ --owner <owner> เพื่อแทนที่เวอร์ชันที่อนุมาน
หรือเผยแพร่ภายใต้เจ้าของที่ระบุ โปรดดู
ClawHub — การเผยแพร่ และ
ClawHub CLI สำหรับขั้นตอนทั้งหมด ขอบเขตของเจ้าของ และคำสั่ง
บำรุงรักษาอื่น ๆ (clawhub sync, clawhub skill rename, ...)
แนวทางปฏิบัติที่ดี
เนื้อหาที่เกี่ยวข้อง
ลำดับการโหลด เงื่อนไขการเปิดใช้งาน รายการอนุญาต และรูปแบบ SKILL.md
คิวข้อเสนอสำหรับทักษะที่เอเจนต์ร่างขึ้น
สคีมาการกำหนดค่า skills.* ฉบับเต็ม
เลือกดูและเผยแพร่ทักษะในรีจิสทรีสาธารณะ
Plugin สามารถจัดส่งทักษะพร้อมกับเครื่องมือที่ทักษะเหล่านั้นจัดทำเอกสารประกอบ