Skills

Membuat Skills

Skills mengajarkan agen bagaimana dan kapan menggunakan alat. Setiap skill adalah direktori yang berisi file SKILL.md dengan YAML frontmatter dan instruksi markdown. OpenClaw memuat Skills dari beberapa root dalam urutan prioritas yang ditentukan.

Buat skill pertama Anda

  • Create the skill directory

    Skills berada di folder skills/ workspace Anda. Buat direktori untuk skill baru Anda:

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

    Anda dapat mengelompokkan Skills dalam subfolder untuk pengorganisasian — skill tetap diberi nama oleh frontmatter SKILL.md, bukan path folder:

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

    Buat SKILL.md di dalam direktori. Frontmatter mendefinisikan metadata; body memberikan instruksi kepada agen.

    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
     Aturan penamaan:- Gunakan huruf kecil, digit, dan tanda hubung untuk `name`.- Selaraskan nama direktori dan `name` frontmatter.- `description` ditampilkan kepada agen dan dalam penemuan slash-command —  pertahankan satu baris dan kurang dari 160 karakter.  OPENCLAW_DOCS_MARKER:stepClose:   OPENCLAW_DOCS_MARKER:stepOpen:IHRpdGxlPSJWZXJpZnkgdGhlIHNraWxsIGxvYWRlZCI ```bashopenclaw skills list

    OpenClaw memantau file SKILL.md di bawah root Skills secara default. Jika pemantau dinonaktifkan atau Anda melanjutkan sesi yang sudah ada, mulai sesi baru agar agen menerima daftar yang diperbarui:

    bash
    # From chat — archive current session and start fresh/new # Or restart the gatewayopenclaw gateway restart
  • Test it

    Kirim pesan yang seharusnya memicu skill:

    bash
    openclaw agent --message "give me a greeting"

    Atau buka chat dan minta langsung kepada agen. Gunakan /skill hello-world untuk memanggilnya secara eksplisit berdasarkan nama.

  • Referensi SKILL.md

    Kolom wajib

    Kolom Deskripsi
    name Slug unik yang menggunakan huruf kecil, digit, dan tanda hubung
    description Deskripsi satu baris yang ditampilkan kepada agen dan dalam output penemuan

    Kunci frontmatter opsional

    Kolom Default Deskripsi
    user-invocable true Mengekspos skill sebagai slash command pengguna
    disable-model-invocation false Menjaga skill agar tidak masuk ke prompt sistem agen (tetap berjalan melalui /skill)
    command-dispatch Atur ke tool untuk merutekan slash command langsung ke alat, melewati model
    command-tool Nama alat yang dipanggil saat command-dispatch: tool diatur
    command-arg-mode raw Untuk dispatch alat, meneruskan string arg mentah ke alat
    homepage URL yang ditampilkan sebagai "Situs Web" di UI Skills macOS

    Untuk kolom gating (requires.bins, requires.env, dll.) lihat Skills — Gating.

    Menggunakan {baseDir}

    Gunakan {baseDir} dalam body skill untuk merujuk file di dalam direktori skill tanpa melakukan hardcode path:

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

    Menambahkan aktivasi kondisional

    Gate skill Anda agar hanya dimuat ketika dependensinya tersedia:

    markdown
    ---name: gemini-searchdescription: Search using Gemini CLI.metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }---
    Gating options
    Kunci Deskripsi
    requires.bins Semua binary harus ada di PATH
    requires.anyBins Setidaknya satu binary harus ada di PATH
    requires.env Setiap env var harus ada dalam proses atau config
    requires.config Setiap path openclaw.json harus bernilai truthy
    os Filter platform: ["darwin"], ["linux"], ["win32"]
    always Atur true untuk melewati semua gate dan selalu menyertakan skill

    Referensi lengkap: Skills — Gating.

    Environment and API keys

    Hubungkan API key ke entri skill di openclaw.json:

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

    Kunci disuntikkan ke proses host hanya untuk giliran agen tersebut. Kunci tidak mencapai sandbox — lihat sandboxed env vars.

    Ajukan melalui Skill Workshop

    Untuk Skills yang disusun agen atau saat Anda menginginkan peninjauan operator sebelum skill aktif, gunakan proposal Skill Workshop alih-alih menulis SKILL.md secara langsung.

    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"

    Gunakan --proposal-dir saat proposal menyertakan file pendukung:

    bash
    openclaw skills workshop propose-create \  --name "hello-world" \  --description "A simple skill that prints a greeting." \  --proposal-dir ./hello-world-proposal/

    Direktori harus berisi PROPOSAL.md. File pendukung dapat ditempatkan di assets/, examples/, references/, scripts/, atau templates/.

    Setelah peninjauan:

    bash
    openclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>

    Lihat Skill Workshop untuk siklus hidup proposal lengkap.

    Menerbitkan ke ClawHub

  • Ensure your SKILL.md is complete

    Pastikan name, description, dan kolom gating metadata.openclaw apa pun sudah diatur. Tambahkan URL homepage jika Anda memiliki halaman proyek.

  • Install the ClawHub skill

    Skill ClawHub mendokumentasikan bentuk perintah publikasi saat ini dan metadata yang diperlukan:

    bash
    openclaw skills install @openclaw/clawhub-publish
  • Publish

    bash
    clawhub publish

    Lihat ClawHub — Publishing untuk alur lengkap.

  • Praktik terbaik

    Terkait

    Was this useful?
    On this page

    On this page