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:
mkdir -p ~/.openclaw/workspace/skills/hello-worldAnda dapat mengelompokkan Skills dalam subfolder untuk pengorganisasian — skill tetap
diberi nama oleh frontmatter SKILL.md, bukan path folder:
mkdir -p ~/.openclaw/workspace/skills/personal/hello-world# skill name is still "hello-world", invoked as /hello-worldWrite SKILL.md
Buat SKILL.md di dalam direktori. Frontmatter mendefinisikan metadata;
body memberikan instruksi kepada agen.
---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!" 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 listOpenClaw 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:
# From chat — archive current session and start fresh/new # Or restart the gatewayopenclaw gateway restartTest it
Kirim pesan yang seharusnya memicu skill:
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:
Run the helper script at `{baseDir}/scripts/run.sh`.Menambahkan aktivasi kondisional
Gate skill Anda agar hanya dimuat ketika dependensinya tersedia:
---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:
{ 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.
# 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:
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:
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:
openclaw skills install @openclaw/clawhub-publishPublish
clawhub publishLihat ClawHub — Publishing untuk alur lengkap.
Praktik terbaik
Terkait
Urutan pemuatan, gating, allowlist, dan format SKILL.md.
Antrean proposal untuk Skills yang disusun agen.
Skema config skills.* lengkap.
Jelajahi dan terbitkan Skills di registry publik.
Plugin dapat mengirimkan Skills bersama alat yang didokumentasikannya.