Skills

การสร้าง Skills

Skills สอนเอเจนต์ว่าควรใช้เครื่องมืออย่างไรและเมื่อใด แต่ละทักษะเป็นไดเรกทอรี ที่มีไฟล์ SKILL.md พร้อม YAML frontmatter และคำแนะนำแบบ Markdown OpenClaw โหลดทักษะจากตำแหน่งรากหลายแห่งตามลำดับความสำคัญที่กำหนดไว้

สร้างทักษะแรกของคุณ

  • สร้างไดเรกทอรีของทักษะ

    Skills อยู่ในโฟลเดอร์ skills/ ของเวิร์กสเปซคุณ:

    bash
    mkdir -p ~/.openclaw/workspace/skills/hello-world

    คุณสามารถจัดกลุ่มทักษะไว้ในโฟลเดอร์ย่อยเพื่อให้เป็นระเบียบได้ โดยชื่อทักษะยังคง กำหนดจาก frontmatter ใน SKILL.md ไม่ใช่พาธของโฟลเดอร์:

    bash
    mkdir -p ~/.openclaw/workspace/skills/personal/hello-world# skill name is still "hello-world", invoked as /hello-world
  • เขียน SKILL.md

    frontmatter กำหนดข้อมูลเมตา ส่วนเนื้อหากำหนดคำแนะนำสำหรับเอเจนต์

    markdown
    ---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!"
    Code
     กฎการตั้งชื่อ:- ใช้ตัวอักษรพิมพ์เล็ก ตัวเลข และขีดกลางสำหรับ `name`- ตั้งชื่อไดเรกทอรีและ `name` ใน frontmatter ให้ตรงกัน- `description` จะแสดงต่อเอเจนต์และในผลการค้นหาคำสั่งแบบเครื่องหมายทับ —  เขียนให้อยู่ในบรรทัดเดียวและมีความยาวไม่เกิน 160 อักขระ  OPENCLAW_DOCS_MARKER:stepClose:   OPENCLAW_DOCS_MARKER:stepOpen:IHRpdGxlPSLguJXguKPguKfguIjguKrguK3guJrguKfguYjguLLguYLguKvguKXguJTguJfguLHguIHguKnguLDguYHguKXguYnguKci ```bashopenclaw skills list

    โดยค่าเริ่มต้น OpenClaw จะเฝ้าติดตามไฟล์ SKILL.md ภายใต้ตำแหน่งรากของ Skills หาก ปิดตัวเฝ้าติดตามไว้หรือคุณกำลังใช้งานเซสชันเดิมต่อ ให้เริ่มเซสชัน ใหม่เพื่อให้เอเจนต์ได้รับรายการที่อัปเดตแล้ว:

    bash
    # From chat — archive current session and start fresh/new # Or restart the gatewayopenclaw gateway restart
  • ทดสอบ

    bash
    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} เทียบกับไดเรกทอรีของทักษะนั้นเอง:

    markdown
    Run the helper script at `{baseDir}/scripts/run.sh`.

    การเพิ่มการเปิดใช้งานแบบมีเงื่อนไข

    กำหนดเงื่อนไขให้ทักษะโหลดเฉพาะเมื่อมีการอ้างอิงที่จำเป็นพร้อมใช้งาน:

    markdown
    ---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:

    json5
    {  skills: {    entries: {      "gemini-search": {        enabled: true,        apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" },      },    },  },}

    คีย์จะถูกฉีดเข้าไปในโปรเซสโฮสต์เฉพาะรอบการทำงานนั้นของเอเจนต์เท่านั้น คีย์จะไม่ถูกส่งเข้าแซนด์บ็อกซ์ โปรดดู ตัวแปรสภาพแวดล้อมในแซนด์บ็อกซ์

    เสนอผ่าน Skill Workshop

    สำหรับทักษะที่เอเจนต์ร่างขึ้น หรือเมื่อคุณต้องการให้ผู้ดูแลตรวจสอบก่อนนำทักษะ ไปใช้งานจริง ให้ใช้ข้อเสนอของ Skill Workshop แทนการเขียน SKILL.md โดยตรง

    bash
    # 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 เมื่อข้อเสนอมีไฟล์สนับสนุน:

    bash
    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/

    หลังการตรวจสอบ:

    bash
    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 แบบสแตนด์อโลนและเข้าสู่ระบบ

    bash
    npm i -g clawhubclawhub login
  • เผยแพร่

    bash
    clawhub skill publish ./path/to/hello-world

    เพิ่ม --version <version> หรือ --owner <owner> เพื่อแทนที่เวอร์ชันที่อนุมาน หรือเผยแพร่ภายใต้เจ้าของที่ระบุ โปรดดู ClawHub — การเผยแพร่ และ ClawHub CLI สำหรับขั้นตอนทั้งหมด ขอบเขตของเจ้าของ และคำสั่ง บำรุงรักษาอื่น ๆ (clawhub sync, clawhub skill rename, ...)

  • แนวทางปฏิบัติที่ดี

    เนื้อหาที่เกี่ยวข้อง

    Was this useful?
    On this page

    On this page