Skills

Skills

Skills adalah file instruksi markdown yang mengajari agen bagaimana dan kapan memakai alat. Setiap skill berada dalam direktori yang berisi file SKILL.md dengan YAML frontmatter dan isi markdown. OpenClaw memuat skill bawaan beserta override lokal apa pun, lalu memfilternya saat pemuatan berdasarkan environment, config, dan keberadaan binary.

Urutan pemuatan

OpenClaw memuat dari sumber berikut, prioritas tertinggi terlebih dahulu. Ketika nama skill yang sama muncul di beberapa tempat, sumber tertinggi yang menang.

Prioritas Sumber Path
1 — tertinggi Skill workspace <workspace>/skills
2 Skill agen proyek <workspace>/.agents/skills
3 Skill agen pribadi ~/.agents/skills
4 Skill terkelola / lokal ~/.openclaw/skills
5 Skill bawaan dikirim bersama instalasi
6 — terendah Direktori tambahan skills.load.extraDirs + skill plugin

Root skill mendukung layout berkelompok. OpenClaw menemukan skill setiap kali SKILL.md muncul di mana saja di bawah root yang dikonfigurasi:

text
<workspace>/skills/research/SKILL.md          ✓ found as "research"<workspace>/skills/personal/research/SKILL.md ✓ also found as "research"

Path folder hanya untuk pengorganisasian. Nama skill, slash command, dan kunci allowlist semuanya berasal dari field frontmatter name (atau nama direktori ketika name tidak ada).

Skill per agen vs bersama

Dalam setup multi-agen, setiap agen memiliki workspace sendiri. Gunakan path yang sesuai dengan visibilitas yang Anda inginkan:

Cakupan Path Terlihat oleh
Per agen <workspace>/skills Hanya agen tersebut
Agen proyek <workspace>/.agents/skills Hanya agen workspace tersebut
Agen pribadi ~/.agents/skills Semua agen di mesin ini
Terkelola bersama ~/.openclaw/skills Semua agen di mesin ini
Direktori tambahan skills.load.extraDirs Semua agen di mesin ini

Allowlist agen

Lokasi skill (prioritas) dan visibilitas skill (agen mana yang dapat menggunakannya) adalah kontrol terpisah. Gunakan allowlist untuk membatasi skill mana yang dilihat agen, terlepas dari mana skill tersebut dimuat.

json5
{  agents: {    defaults: {      skills: ["github", "weather"], // shared baseline    },    list: [      { id: "writer" }, // inherits github, weather      { id: "docs", skills: ["docs-search"] }, // replaces defaults entirely      { id: "locked-down", skills: [] }, // no skills    ],  },}
Allowlist rules
  • Hilangkan agents.defaults.skills agar semua skill tidak dibatasi secara default.
  • Hilangkan agents.list[].skills untuk mewarisi agents.defaults.skills.
  • Atur agents.list[].skills: [] agar tidak mengekspos skill untuk agen tersebut.
  • Daftar agents.list[].skills yang tidak kosong adalah set final — daftar itu tidak digabung dengan default.
  • Allowlist efektif berlaku di seluruh pembuatan prompt, penemuan slash-command, sinkronisasi sandbox, dan snapshot skill.
  • Ini bukan batas otorisasi shell host. Jika agen yang sama dapat menggunakan exec, batasi shell tersebut secara terpisah dengan sandboxing, isolasi pengguna OS, deny/allowlist exec, dan kredensial per resource.

Plugin dan skill

Plugin dapat mengirim skill mereka sendiri dengan mencantumkan direktori skills di openclaw.plugin.json (path relatif terhadap root plugin). Skill plugin dimuat ketika plugin diaktifkan — misalnya, plugin browser mengirim skill browser-automation untuk kontrol browser multi-langkah.

Direktori skill plugin digabung pada level prioritas rendah yang sama seperti skills.load.extraDirs, sehingga skill bawaan, terkelola, agen, atau workspace dengan nama yang sama akan menimpanya. Gate skill tersebut melalui metadata.openclaw.requires.config pada entri config plugin.

Lihat Plugin dan Alat untuk sistem plugin lengkap.

Skill Workshop

Skill Workshop adalah antrean proposal antara agen dan file skill aktif Anda. Ketika agen melihat pekerjaan yang dapat digunakan ulang, agen membuat draf proposal alih-alih menulis langsung ke SKILL.md. Anda meninjau dan menyetujui sebelum apa pun berubah.

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

Lihat Skill Workshop untuk lifecycle lengkap, referensi CLI, dan konfigurasi.

Menginstal dari ClawHub

ClawHub adalah registry skill publik. Gunakan perintah openclaw skills untuk instalasi dan pembaruan, atau CLI clawhub untuk publish dan sinkronisasi.

Tindakan Perintah
Instal skill ke workspace openclaw skills install @owner/<slug>
Instal dari repositori Git openclaw skills install git:owner/repo@ref
Instal direktori skill lokal openclaw skills install ./path/to/skill --as my-tool
Instal untuk semua agen lokal openclaw skills install @owner/<slug> --global
Perbarui semua skill workspace openclaw skills update --all
Perbarui skill terkelola bersama openclaw skills update @owner/<slug> --global
Perbarui semua skill terkelola bersama openclaw skills update --all --global
Verifikasi trust envelope skill openclaw skills verify @owner/<slug>
Cetak Skill Card yang dihasilkan openclaw skills verify @owner/<slug> --card
Publish / sinkronisasi melalui CLI ClawHub clawhub sync --all
Install details

openclaw skills install secara default menginstal ke direktori skills/ workspace aktif. Tambahkan --global untuk menginstal ke direktori bersama ~/.openclaw/skills, terlihat oleh semua agen lokal kecuali allowlist agen mempersempitnya.

Instalasi Git dan lokal mengharapkan SKILL.md di root sumber. Slug berasal dari frontmatter SKILL.md name saat valid, lalu fallback ke nama direktori atau repositori. Gunakan --as <slug> untuk mengganti. openclaw skills update hanya melacak instalasi ClawHub — instal ulang sumber Git atau lokal untuk menyegarkannya.

Verification and security scanning

openclaw skills verify @owner/<slug> meminta trust envelope clawhub.skill.verify.v1 skill kepada ClawHub. Skill ClawHub yang terinstal diverifikasi terhadap versi dan registry yang dicatat di .clawhub/origin.json. Slug polos tetap diterima untuk skill yang sudah terinstal atau tidak ambigu, tetapi ref berkualifikasi owner menghindari ambiguitas publisher.

Halaman skill ClawHub mengekspos status pemindaian keamanan terbaru sebelum instalasi, dengan halaman detail untuk VirusTotal, ClawScan, dan analisis statis. Perintah keluar non-zero ketika ClawHub menandai verifikasi sebagai gagal. Publisher memulihkan false positive melalui dasbor ClawHub atau clawhub skill rescan @owner/<slug>.

Private archive installs

Klien Gateway yang membutuhkan pengiriman non-ClawHub dapat menyiapkan arsip skill zip dengan skills.upload.begin, skills.upload.chunk, dan skills.upload.commit, lalu menginstal dengan skills.install({ source: "upload", ... }). Path ini nonaktif secara default dan memerlukan skills.install.allowUploadedArchives: true di openclaw.json. Instalasi ClawHub normal tidak pernah memerlukan pengaturan tersebut.

Keamanan

Path containment

Penemuan skill workspace, agen proyek, dan direktori tambahan hanya menerima root skill yang realpath terselesaikannya tetap berada di dalam root yang dikonfigurasi, kecuali skills.load.allowSymlinkTargets secara eksplisit memercayai root target. Skill Workshop menulis melalui target tepercaya tersebut hanya ketika skills.workshop.allowSymlinkTargetWrites diaktifkan. ~/.openclaw/skills terkelola dan ~/.agents/skills pribadi dapat berisi folder skill bersymlink, tetapi setiap realpath SKILL.md tetap harus berada di dalam direktori skill yang terselesaikan.

Operator install policy

Konfigurasikan security.installPolicy untuk menjalankan perintah kebijakan lokal tepercaya sebelum instalasi skill berlanjut. Kebijakan menerima metadata dan path sumber yang telah disiapkan, berlaku untuk path ClawHub, uploaded, Git, local, update, dan dependency-installer, serta gagal tertutup ketika perintah tidak dapat mengembalikan keputusan yang valid.

Secret injection scope

skills.entries.*.env dan skills.entries.*.apiKey menyuntikkan secret ke proses host hanya untuk giliran agen tersebut — bukan ke sandbox. Jauhkan secret dari prompt dan log.

Untuk threat model dan checklist keamanan yang lebih luas, lihat Keamanan.

Format SKILL.md

Setiap skill minimal memerlukan name dan description dalam frontmatter:

markdown
---name: image-labdescription: Generate or edit images via a provider-backed image workflow--- When the user asks to generate an image, use the `image_generate` tool...

Key frontmatter opsional

homepagestring

URL yang ditampilkan sebagai "Website" di UI Skills macOS. Juga didukung melalui metadata.openclaw.homepage.

user-invocablebooleandefault: true

Ketika true, skill diekspos sebagai slash command yang dapat dipanggil pengguna.

disable-model-invocationbooleandefault: false

Ketika true, OpenClaw menjaga instruksi skill di luar prompt normal agen. Skill tetap tersedia sebagai slash command ketika user-invocable juga true.

command-dispatch"tool"

Ketika diatur ke tool, slash command melewati model dan dispatch langsung ke tool terdaftar.

command-toolstring

Nama tool yang akan dipanggil ketika command-dispatch: tool diatur.

command-arg-mode"raw"default: raw

Untuk dispatch alat, meneruskan string arg mentah ke alat tanpa parsing inti. Alat menerima { command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.

Gating

OpenClaw memfilter skills saat pemuatan menggunakan metadata.openclaw (JSON satu baris di frontmatter). Skill tanpa blok metadata.openclaw selalu memenuhi syarat kecuali dinonaktifkan secara eksplisit.

markdown
---name: image-labdescription: Generate or edit images via a provider-backed image workflowmetadata:  {    "openclaw":      {        "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] },        "primaryEnv": "GEMINI_API_KEY",      },  }---
alwaysboolean

Jika true, selalu sertakan skill dan lewati semua gate lain.

emojistring

Emoji opsional yang ditampilkan di UI Skills macOS.

homepagestring

URL opsional yang ditampilkan sebagai "Website" di UI Skills macOS.

os"darwin" | "linux" | "win32"

Filter platform. Jika diatur, skill hanya memenuhi syarat pada OS yang tercantum.

requires.binsstring[]

Setiap biner harus ada di PATH.

requires.anyBinsstring[]

Setidaknya satu biner harus ada di PATH.

requires.envstring[]

Setiap variabel env harus ada di proses atau disediakan melalui config.

requires.configstring[]

Setiap path openclaw.json harus bernilai truthy.

primaryEnvstring

Nama variabel env yang terkait dengan skills.entries.<name>.apiKey.

installobject[]

Spesifikasi penginstal opsional yang digunakan oleh UI Skills macOS (brew / node / go / uv / download).

Spesifikasi penginstal

Spesifikasi penginstal memberi tahu UI Skills macOS cara menginstal dependensi:

markdown
---name: geminidescription: Use Gemini CLI for coding assistance and Google search lookups.metadata:  {    "openclaw":      {        "emoji": "♊️",        "requires": { "bins": ["gemini"] },        "install":          [            {              "id": "brew",              "kind": "brew",              "formula": "gemini-cli",              "bins": ["gemini"],              "label": "Install Gemini CLI (brew)",            },          ],      },  }---
Installer selection rules
  • Ketika beberapa penginstal dicantumkan, gateway memilih satu opsi pilihan (brew jika tersedia, jika tidak node).
  • Jika semua penginstal adalah download, OpenClaw mencantumkan setiap entri agar Anda dapat melihat semua artefak yang tersedia.
  • Spesifikasi dapat menyertakan os: ["darwin"|"linux"|"win32"] untuk memfilter berdasarkan platform.
  • Instalasi Node mengikuti skills.install.nodeManager di openclaw.json (default: npm; opsi: npm / pnpm / yarn / bun). Ini hanya memengaruhi instalasi skill; runtime Gateway tetap harus Node.
  • Preferensi penginstal Gateway: Homebrew → uv → manajer node yang dikonfigurasi → go → download.
Per-installer details
  • Homebrew: OpenClaw tidak menginstal Homebrew secara otomatis atau menerjemahkan formula brew menjadi perintah paket sistem. Di kontainer Linux tanpa brew, penginstal khusus brew disembunyikan; gunakan image kustom atau instal dependensi secara manual.
  • Go: OpenClaw memerlukan Go 1.21 atau yang lebih baru untuk instalasi skill otomatis dan mempertahankan pengaturan GOBIN, GOPATH, dan GOTOOLCHAIN yang ada. Jika toolchain yang dikonfigurasi tidak dapat memenuhi versi Go yang diwajibkan modul, onboarding mengelompokkan skill dengan prasyarat Go manual setelah percobaan instalasi. Jika go tidak ada dan Homebrew tersedia, OpenClaw menginstal Go melalui Homebrew terlebih dahulu dan mengatur GOBIN ke bin milik Homebrew. Di Linux, OpenClaw dapat menggunakan apt-get sebagai root atau melalui sudo tanpa sandi ketika kandidat golang-go yang diperbarui memenuhi versi minimum.
  • Download: url (wajib), archive (tar.gz | tar.bz2 | zip), extract (default: otomatis ketika arsip terdeteksi), stripComponents, targetDir (default: ~/.openclaw/tools/<skillKey>).
Sandboxing notes

requires.bins diperiksa pada host saat skill dimuat. Jika agen berjalan di sandbox, biner juga harus ada di dalam kontainer. Instal melalui agents.defaults.sandbox.docker.setupCommand atau image kustom. setupCommand berjalan sekali setelah pembuatan kontainer dan memerlukan egress jaringan, root FS yang dapat ditulis, dan pengguna root di sandbox.

Override config

Aktifkan/nonaktifkan dan konfigurasi skill bawaan atau terkelola di bawah skills.entries dalam ~/.openclaw/openclaw.json:

json5
{  skills: {    entries: {      "image-lab": {        enabled: true,        apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" },        env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" },        config: {          endpoint: "https://example.invalid",          model: "nano-pro",        },      },      peekaboo: { enabled: true },      sag: { enabled: false },    },  },}
enabledboolean

false menonaktifkan skill meskipun dibundel atau terinstal. Skill bawaan coding-agent bersifat opt-in — atur skills.entries.coding-agent.enabled: true dan pastikan salah satu dari claude, codex, opencode, atau CLI lain yang didukung sudah terinstal dan terautentikasi.

apiKeystring | { source, provider, id }

Field praktis untuk skill yang mendeklarasikan metadata.openclaw.primaryEnv. Mendukung string teks biasa atau objek SecretRef.

env"Record<string,
configobject

Bag opsional untuk field konfigurasi per-skill kustom.

allowBundledstring[]

Allowlist opsional hanya untuk skill bawaan. Jika diatur, hanya skill bawaan dalam daftar yang memenuhi syarat. Skill terkelola dan workspace tidak terpengaruh.

Injeksi lingkungan

Ketika run agen dimulai, OpenClaw:

  • Reads skill metadata

    OpenClaw menyelesaikan daftar skill efektif untuk agen, dengan menerapkan aturan gating, allowlist, dan override config.

  • Injects env and API keys

    skills.entries.<key>.env dan skills.entries.<key>.apiKey diterapkan ke process.env selama durasi run.

  • Builds the system prompt

    Skill yang memenuhi syarat dikompilasi menjadi blok XML ringkas dan disuntikkan ke prompt sistem.

  • Restores the environment

    Setelah run berakhir, lingkungan asli dipulihkan.

  • Untuk backend bawaan claude-cli, OpenClaw juga mewujudkan snapshot skill yang memenuhi syarat yang sama sebagai Plugin Claude Code sementara dan meneruskannya melalui --plugin-dir. Backend CLI lain hanya menggunakan katalog prompt.

    Snapshot dan refresh

    OpenClaw mengambil snapshot skill yang memenuhi syarat ketika sesi dimulai dan menggunakan kembali daftar tersebut untuk semua giliran berikutnya dalam sesi. Perubahan pada skill atau config mulai berlaku pada sesi baru berikutnya.

    Skill di-refresh di tengah sesi dalam dua kasus:

    • Watcher skill mendeteksi perubahan SKILL.md.
    • Node remote baru yang memenuhi syarat tersambung.

    Daftar yang di-refresh digunakan pada giliran agen berikutnya. Jika allowlist agen efektif berubah, OpenClaw me-refresh snapshot agar skill yang terlihat tetap selaras.

    Skills watcher

    Secara default, OpenClaw memantau folder skill dan menaikkan snapshot ketika file SKILL.md berubah. Konfigurasikan di bawah skills.load:

    json5
    {  skills: {    load: {      extraDirs: ["~/Projects/agent-scripts/skills"],      allowSymlinkTargets: ["~/Projects/manager/skills"],      watch: true,      watchDebounceMs: 250,    },  },}

    Gunakan allowSymlinkTargets untuk tata letak symlink yang disengaja ketika symlink root skill mengarah ke luar root yang dikonfigurasi, misalnya <workspace>/skills/manager -> ~/Projects/manager/skills. Aktifkan skills.workshop.allowSymlinkTargetWrites hanya ketika Skill Workshop juga harus menerapkan proposal melalui path symlink tepercaya tersebut.

    Remote macOS nodes (Linux gateway)

    Jika Gateway berjalan di Linux tetapi node macOS tersambung dengan system.run diizinkan, OpenClaw dapat menganggap skill khusus macOS memenuhi syarat ketika biner yang diperlukan ada pada node tersebut. Agen harus menjalankan skill tersebut melalui alat exec dengan host=node.

    Node offline tidak membuat skill khusus remote terlihat. Jika sebuah node berhenti menjawab probe bin, OpenClaw menghapus kecocokan bin yang di-cache.

    Dampak token

    Ketika skill memenuhi syarat, OpenClaw menyuntikkan blok XML ringkas ke prompt sistem. Biayanya deterministik:

    text
    total = 195 + Σ (97 + len(name) + len(description) + len(filepath))
    • Overhead dasar (hanya ketika ≥ 1 skill): ~195 karakter
    • Per skill: ~97 karakter + panjang field name, description, dan location Anda
    • Escaping XML memperluas & < > " ' menjadi entitas, menambahkan beberapa karakter per kemunculan
    • Pada ~4 karakter/token, 97 karakter ≈ 24 token per skill sebelum panjang field

    Jaga deskripsi tetap singkat dan deskriptif untuk meminimalkan overhead prompt.

    Terkait

    Was this useful?
    On this page

    On this page