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.
Bangun dan uji skill kustom dari awal.
Tinjau dan setujui proposal skill yang dirancang agen.
Skema config skills.* lengkap dan allowlist agen.
Jelajahi dan instal skill komunitas.
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:
<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.
{ 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.skillsagar semua skill tidak dibatasi secara default. - Hilangkan
agents.list[].skillsuntuk mewarisiagents.defaults.skills. - Atur
agents.list[].skills: []agar tidak mengekspos skill untuk agen tersebut. - Daftar
agents.list[].skillsyang 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.
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:
---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
homepagestringURL yang ditampilkan sebagai "Website" di UI Skills macOS. Juga didukung melalui
metadata.openclaw.homepage.
user-invocablebooleandefault: trueKetika true, skill diekspos sebagai slash command yang dapat dipanggil pengguna.
disable-model-invocationbooleandefault: falseKetika 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-toolstringNama tool yang akan dipanggil ketika command-dispatch: tool diatur.
command-arg-mode"raw"default: rawUntuk 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.
---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", }, }---alwaysbooleanJika true, selalu sertakan skill dan lewati semua gate lain.
emojistringEmoji opsional yang ditampilkan di UI Skills macOS.
homepagestringURL 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.
primaryEnvstringNama 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:
---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.nodeManagerdiopenclaw.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, danGOTOOLCHAINyang ada. Jika toolchain yang dikonfigurasi tidak dapat memenuhi versi Go yang diwajibkan modul, onboarding mengelompokkan skill dengan prasyarat Go manual setelah percobaan instalasi. Jikagotidak ada dan Homebrew tersedia, OpenClaw menginstal Go melalui Homebrew terlebih dahulu dan mengaturGOBINkebinmilik Homebrew. Di Linux, OpenClaw dapat menggunakanapt-getsebagai root atau melaluisudotanpa sandi ketika kandidatgolang-goyang 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:
{ 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 }, }, },}enabledbooleanfalse 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,configobjectBag 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:
{ 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:
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, danlocationAnda - 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
Panduan langkah demi langkah untuk menulis skill kustom.
Antrean proposal untuk skill yang dirancang agen.
Skema config skills.* lengkap dan allowlist agen.
Cara perintah slash skill didaftarkan dan dirutekan.
Jelajahi dan publikasikan skill di registry publik.
Plugin dapat mengirimkan skill bersama alat yang didokumentasikannya.