Skills

Skills

Skills, araca araçları nasıl ve ne zaman kullanacağını öğreten markdown yönerge dosyalarıdır. Her skill, YAML frontmatter ve markdown gövdesi içeren bir SKILL.md dosyasının bulunduğu bir dizinde yaşar. OpenClaw, paketle gelen skills ile yerel geçersiz kılmaları yükler ve bunları yükleme sırasında ortama, yapılandırmaya ve ikili dosya varlığına göre filtreler.

Yükleme sırası

OpenClaw şu kaynaklardan, önce en yüksek öncelik olacak şekilde yükler. Aynı skill adı birden fazla yerde göründüğünde, en yüksek kaynak kazanır.

Öncelik Kaynak Yol
1 — en yüksek Çalışma alanı skills'leri <workspace>/skills
2 Proje aracı skills'leri <workspace>/.agents/skills
3 Kişisel aracı skills'leri ~/.agents/skills
4 Yönetilen / yerel skills ~/.openclaw/skills
5 Paketle gelen skills kurulumla birlikte gelir
6 — en düşük Ek dizinler skills.load.extraDirs + plugin skills

Skill kökleri gruplanmış düzenleri destekler. OpenClaw, yapılandırılmış bir kökün altında herhangi bir yerde SKILL.md göründüğünde bir skill keşfeder:

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

Klasör yolu yalnızca düzenleme içindir. Skill'in adı, slash komutu ve izin listesi anahtarı hep name frontmatter alanından gelir (name eksikse dizin adından gelir).

Aracı başına ve paylaşılan skills

Çok aracılı kurulumlarda her aracının kendi çalışma alanı vardır. İstediğiniz görünürlüğe uyan yolu kullanın:

Kapsam Yol Görüneceği yer
Aracı başına <workspace>/skills Yalnızca o aracı
Proje-aracısı <workspace>/.agents/skills Yalnızca o çalışma alanının aracısı
Kişisel-aracı ~/.agents/skills Bu makinedeki tüm aracılar
Paylaşılan yönetilen ~/.openclaw/skills Bu makinedeki tüm aracılar
Ek dizinler skills.load.extraDirs Bu makinedeki tüm aracılar

Aracı izin listeleri

Skill konumu (öncelik) ve skill görünürlüğü (hangi aracının kullanabileceği) ayrı denetimlerdir. Bir aracının hangi skills'leri gördüğünü, nereden yüklendiklerinden bağımsız olarak kısıtlamak için izin listelerini kullanın.

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
  • Varsayılan olarak tüm skills'leri kısıtsız bırakmak için agents.defaults.skills öğesini atlayın.
  • agents.defaults.skills değerini devralmak için agents.list[].skills öğesini atlayın.
  • O aracıya hiçbir skill göstermemek için agents.list[].skills: [] ayarlayın.
  • Boş olmayan bir agents.list[].skills listesi son kümedir — varsayılanlarla birleştirilmez.
  • Etkin izin listesi prompt oluşturma, slash komutu keşfi, sandbox senkronizasyonu ve skill anlık görüntüleri genelinde uygulanır.
  • Bu, bir host shell yetkilendirme sınırı değildir. Aynı aracı exec kullanabiliyorsa, o shell'i sandboxing, işletim sistemi kullanıcısı yalıtımı, exec engelleme/izin listeleri ve kaynak başına kimlik bilgileriyle ayrıca kısıtlayın.

Plugins ve skills

Plugins, openclaw.plugin.json içinde skills dizinlerini listeleyerek kendi skills'leriyle gelebilir (yollar plugin köküne görelidir). Plugin skills, plugin etkinleştirildiğinde yüklenir — örneğin browser plugin, çok adımlı tarayıcı denetimi için bir browser-automation skill'iyle gelir.

Plugin skill dizinleri, skills.load.extraDirs ile aynı düşük öncelikli düzeyde birleşir; bu nedenle aynı ada sahip paketle gelen, yönetilen, aracı veya çalışma alanı skill'i bunları geçersiz kılar. Bunları plugin'in yapılandırma girdisinde metadata.openclaw.requires.config üzerinden kapılayın.

Tam plugin sistemi için Plugins ve Tools sayfalarına bakın.

Skill Workshop

Skill Workshop, aracı ile etkin skill dosyalarınız arasında bir öneri kuyruğudur. Aracı yeniden kullanılabilir iş yakaladığında, doğrudan SKILL.md dosyasına yazmak yerine bir öneri taslağı hazırlar. Herhangi bir şey değişmeden önce inceleyip onaylarsınız.

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

Tam yaşam döngüsü, CLI başvurusu ve yapılandırma için Skill Workshop sayfasına bakın.

ClawHub'dan kurma

ClawHub, herkese açık skills kayıt defteridir. Kurulum ve güncelleme için openclaw skills komutlarını, yayımlama ve senkronizasyon için ise clawhub CLI'yi kullanın.

Eylem Komut
Çalışma alanına bir skill kur openclaw skills install @owner/<slug>
Bir Git deposundan kur openclaw skills install git:owner/repo@ref
Yerel bir skill dizini kur openclaw skills install ./path/to/skill --as my-tool
Tüm yerel aracılar için kur openclaw skills install @owner/<slug> --global
Tüm çalışma alanı skills'lerini güncelle openclaw skills update --all
Paylaşılan yönetilen bir skill'i güncelle openclaw skills update @owner/<slug> --global
Tüm paylaşılan yönetilen skills'leri güncelle openclaw skills update --all --global
Bir skill'in güven zarfını doğrula openclaw skills verify @owner/<slug>
Üretilen Skill Card'ı yazdır openclaw skills verify @owner/<slug> --card
ClawHub CLI üzerinden yayımla / senkronize et clawhub sync --all
Install details

openclaw skills install varsayılan olarak etkin çalışma alanındaki skills/ dizinine kurar. Tüm yerel aracılara görünür olan paylaşılan ~/.openclaw/skills dizinine kurmak için --global ekleyin; aracı izin listeleri bunu daraltmadığı sürece görünür olur.

Git ve yerel kurulumlar kaynak kökte SKILL.md bekler. Slug, geçerliyse SKILL.md frontmatter name alanından gelir, ardından dizin veya depo adına geri düşer. Geçersiz kılmak için --as <slug> kullanın. openclaw skills update yalnızca ClawHub kurulumlarını izler — Git veya yerel kaynakları yenilemek için yeniden kurun.

Verification and security scanning

openclaw skills verify @owner/<slug>, ClawHub'dan skill'in clawhub.skill.verify.v1 güven zarfını ister. Kurulu ClawHub skills, .clawhub/origin.json içinde kaydedilen sürüme ve kayıt defterine göre doğrulanır. Yalın slug'lar mevcut kurulu veya belirsiz olmayan skills için kabul edilmeye devam eder, ancak sahip nitelikli ref'ler yayımlayıcı belirsizliğini önler.

ClawHub skill sayfaları, kurulumdan önce en son güvenlik taraması durumunu VirusTotal, ClawScan ve statik analiz ayrıntı sayfalarıyla birlikte gösterir. ClawHub doğrulamayı başarısız olarak işaretlediğinde komut sıfır olmayan kodla çıkar. Yayımcılar yanlış pozitifleri ClawHub panosu veya clawhub skill rescan @owner/<slug> üzerinden düzeltebilir.

Private archive installs

ClawHub dışı teslimata ihtiyaç duyan Gateway istemcileri, skills.upload.begin, skills.upload.chunk ve skills.upload.commit ile bir zip skill arşivi hazırlayıp ardından skills.install({ source: "upload", ... }) ile kurabilir. Bu yol varsayılan olarak kapalıdır ve openclaw.json içinde skills.install.allowUploadedArchives: true gerektirir. Normal ClawHub kurulumları bu ayara asla ihtiyaç duymaz.

Güvenlik

Path containment

Çalışma alanı, proje-aracısı ve ek-dizin skill keşfi, çözülmüş realpath'i yapılandırılmış kökün içinde kalan skill köklerini kabul eder; bunun istisnası, skills.load.allowSymlinkTargets ayarının bir hedef köke açıkça güvenmesidir. Skill Workshop, yalnızca skills.workshop.allowSymlinkTargetWrites etkinleştirildiğinde bu güvenilir hedefler üzerinden yazar. Yönetilen ~/.openclaw/skills ve kişisel ~/.agents/skills, symlink'li skill klasörleri içerebilir; ancak her SKILL.md realpath'i yine de çözülmüş skill dizininin içinde kalmalıdır.

Operator install policy

Skill kurulumları devam etmeden önce güvenilir bir yerel ilke komutu çalıştırmak için security.installPolicy yapılandırın. İlke, metadata ve hazırlanmış kaynak yolunu alır; ClawHub, yüklenen, Git, yerel, güncelleme ve bağımlılık-kurucu yollarına uygulanır ve komut geçerli bir karar döndüremezse kapalı başarısız olur.

Secret injection scope

skills.entries.*.env ve skills.entries.*.apiKey, gizli değerleri yalnızca o aracı turu için host sürecine enjekte eder — sandbox'a değil. Gizli değerleri prompt'lardan ve günlüklerden uzak tutun.

Daha geniş tehdit modeli ve güvenlik kontrol listeleri için Security sayfasına bakın.

SKILL.md biçimi

Her skill için frontmatter içinde en az bir name ve description gerekir:

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...

İsteğe bağlı frontmatter anahtarları

homepagestring

macOS Skills arayüzünde "Website" olarak gösterilen URL. Ayrıca metadata.openclaw.homepage üzerinden de desteklenir.

user-invocablebooleandefault: true

true olduğunda skill, kullanıcı tarafından çağrılabilir bir slash komutu olarak sunulur.

disable-model-invocationbooleandefault: false

true olduğunda OpenClaw, skill yönergelerini aracının normal prompt'unun dışında tutar. user-invocable da true olduğunda skill yine de slash komutu olarak kullanılabilir.

command-dispatch"tool"

tool olarak ayarlandığında slash komutu modeli atlar ve doğrudan kayıtlı bir araca gönderilir.

command-toolstring

command-dispatch: tool ayarlandığında çağrılacak araç adı.

command-arg-mode"raw"default: raw

Araç yönlendirmesi için ham args dizesini çekirdek ayrıştırması olmadan araca iletir. Araç { command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" } alır.

Kapılama

OpenClaw, yükleme sırasında Skills'i metadata.openclaw kullanarak filtreler (frontmatter içinde tek satırlık JSON). metadata.openclaw bloğu olmayan bir Skill, açıkça devre dışı bırakılmadığı sürece her zaman uygundur.

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

true olduğunda, Skill'i her zaman dahil eder ve diğer tüm kapıları atlar.

emojistring

macOS Skills UI'da gösterilen isteğe bağlı emoji.

homepagestring

macOS Skills UI'da "Website" olarak gösterilen isteğe bağlı URL.

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

Platform filtresi. Ayarlandığında Skill yalnızca listelenen işletim sistemlerinde uygundur.

requires.binsstring[]

Her ikili dosya PATH üzerinde bulunmalıdır.

requires.anyBinsstring[]

En az bir ikili dosya PATH üzerinde bulunmalıdır.

requires.envstring[]

Her env var süreçte bulunmalı veya config aracılığıyla sağlanmalıdır.

requires.configstring[]

Her openclaw.json yolu truthy olmalıdır.

primaryEnvstring

skills.entries.<name>.apiKey ile ilişkili env var adı.

installobject[]

macOS Skills UI tarafından kullanılan isteğe bağlı yükleyici belirtimleri (brew / node / go / uv / download).

Yükleyici belirtimleri

Yükleyici belirtimleri, macOS Skills UI'a bir bağımlılığın nasıl yükleneceğini söyler:

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)",            },          ],      },  }---
Yükleyici seçim kuralları
  • Birden fazla yükleyici listelendiğinde gateway tercih edilen tek bir seçenek seçer (varsa brew, aksi halde node).
  • Tüm yükleyiciler download ise OpenClaw her girdiyi listeler; böylece kullanılabilir tüm artifact'leri görebilirsiniz.
  • Belirtimler platforma göre filtrelemek için os: ["darwin"|"linux"|"win32"] içerebilir.
  • Node yüklemeleri openclaw.json içindeki skills.install.nodeManager ayarına uyar (varsayılan: npm; seçenekler: npm / pnpm / yarn / bun). Bu yalnızca Skill yüklemelerini etkiler; Gateway runtime yine Node olmalıdır.
  • Gateway yükleyici tercihi: Homebrew → uv → yapılandırılmış node yöneticisi → go → download.
Yükleyici başına ayrıntılar
  • Homebrew: OpenClaw, Homebrew'u otomatik olarak yüklemez veya brew formüllerini sistem paketi komutlarına çevirmez. brew olmayan Linux container'larında yalnızca brew yükleyicileri gizlenir; özel bir image kullanın veya bağımlılığı elle yükleyin.
  • Go: OpenClaw, otomatik Skill yüklemeleri için Go 1.21 veya daha yenisini gerektirir ve mevcut GOBIN, GOPATH ve GOTOOLCHAIN ayarlarını korur. Yapılandırılmış toolchain bir modülün gerekli Go sürümünü karşılayamazsa onboarding, yükleme denemesinden sonra Skill'i manuel Go önkoşullarıyla gruplar. go eksikse ve Homebrew kullanılabiliyorsa OpenClaw önce Go'yu Homebrew üzerinden yükler ve GOBIN değerini Homebrew'un bin dizinine ayarlar. Linux'ta OpenClaw bunun yerine, yenilenen golang-go adayı minimum sürümü karşılıyorsa root olarak veya parolasız sudo üzerinden apt-get kullanabilir.
  • Download: url (zorunlu), archive (tar.gz | tar.bz2 | zip), extract (varsayılan: arşiv algılandığında otomatik), stripComponents, targetDir (varsayılan: ~/.openclaw/tools/<skillKey>).
Sandboxing notları

requires.bins, Skill yükleme sırasında host üzerinde denetlenir. Bir agent sandbox içinde çalışıyorsa ikili dosya container içinde de bulunmalıdır. agents.defaults.sandbox.docker.setupCommand veya özel bir image üzerinden yükleyin. setupCommand, container oluşturulduktan sonra bir kez çalışır ve ağ çıkışı, yazılabilir root FS ve sandbox içinde root kullanıcı gerektirir.

Config geçersiz kılmaları

Paketlenmiş veya yönetilen Skills'i ~/.openclaw/openclaw.json içindeki skills.entries altında açıp kapatın ve yapılandırın:

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, paketlenmiş veya yüklü olsa bile Skill'i devre dışı bırakır. Paketlenmiş coding-agent Skill'i isteğe bağlıdır — skills.entries.coding-agent.enabled: true ayarını yapın ve claude, codex, opencode veya desteklenen başka bir CLI'ın yüklü ve kimlik doğrulamasının yapılmış olduğundan emin olun.

apiKeystring | { source, provider, id }

metadata.openclaw.primaryEnv bildiren Skills için kolaylık alanı. Düz metin dizesini veya SecretRef nesnesini destekler.

env"Record<string,
configobject

Skill'e özel yapılandırma alanları için isteğe bağlı torba.

allowBundledstring[]

Yalnızca paketlenmiş Skills için isteğe bağlı izin listesi. Ayarlandığında yalnızca listedeki paketlenmiş Skills uygundur. Yönetilen ve workspace Skills etkilenmez.

Ortam enjeksiyonu

Bir agent çalıştırması başladığında OpenClaw:

  • Skill metadata'sını okur

    OpenClaw, kapılama kurallarını, izin listelerini ve config geçersiz kılmalarını uygulayarak agent için etkili Skill listesini çözer.

  • Env ve API anahtarlarını enjekte eder

    skills.entries.<key>.env ve skills.entries.<key>.apiKey, çalıştırma süresi boyunca process.env üzerine uygulanır.

  • Sistem prompt'unu oluşturur

    Uygun Skills kompakt bir XML bloğu halinde derlenir ve sistem prompt'una enjekte edilir.

  • Ortamı geri yükler

    Çalıştırma bittikten sonra özgün ortam geri yüklenir.

  • Paketlenmiş claude-cli backend'i için OpenClaw aynı uygun Skill snapshot'ını geçici bir Claude Code plugin'i olarak da oluşturur ve --plugin-dir üzerinden geçirir. Diğer CLI backend'leri yalnızca prompt kataloğunu kullanır.

    Snapshot'lar ve yenileme

    OpenClaw uygun Skills'in snapshot'ını bir session başladığında alır ve bu listeyi session içindeki sonraki tüm turn'ler için yeniden kullanır. Skills veya config değişiklikleri bir sonraki yeni session'da etkili olur.

    Skills iki durumda session ortasında yenilenir:

    • Skills watcher bir SKILL.md değişikliği algılar.
    • Yeni bir uygun uzak node bağlanır.

    Yenilenmiş liste bir sonraki agent turn'ünde alınır. Etkili agent izin listesi değişirse OpenClaw, görünür Skills'i hizalı tutmak için snapshot'ı yeniler.

    Skills watcher

    Varsayılan olarak OpenClaw, Skill klasörlerini izler ve SKILL.md dosyaları değiştiğinde snapshot'ı artırır. skills.load altında yapılandırın:

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

    Skill root symlink'inin yapılandırılmış root dışına işaret ettiği bilinçli symlink'li yerleşimler için allowSymlinkTargets kullanın; örneğin <workspace>/skills/manager -> ~/Projects/manager/skills. skills.workshop.allowSymlinkTargetWrites ayarını yalnızca Skill Workshop'un teklifleri bu güvenilen symlink'li yollar üzerinden de uygulaması gerektiğinde etkinleştirin.

    Uzak macOS node'ları (Linux gateway)

    Gateway Linux üzerinde çalışıyor ancak system.run izni olan bir macOS node bağlıysa OpenClaw, gerekli ikili dosyalar o node üzerinde mevcut olduğunda yalnızca macOS Skills'i uygun kabul edebilir. Agent bu Skills'i exec aracıyla host=node kullanarak çalıştırmalıdır.

    Çevrimdışı node'lar, yalnızca uzak Skills'i görünür yapmaz. Bir node bin probe'larına yanıt vermeyi bırakırsa OpenClaw önbelleğe alınmış bin eşleşmelerini temizler.

    Token etkisi

    Skills uygun olduğunda OpenClaw sistem prompt'una kompakt bir XML bloğu enjekte eder. Maliyet deterministiktir:

    text
    total = 195 + Σ (97 + len(name) + len(description) + len(filepath))
    • Temel ek yük (yalnızca ≥ 1 Skill olduğunda): ~195 karakter
    • Skill başına: ~97 karakter + name, description ve location alan uzunluklarınız
    • XML kaçışlama & < > " ' karakterlerini entity'lere genişletir ve her oluşum başına birkaç karakter ekler
    • ~4 karakter/token varsayımıyla, 97 karakter alan uzunlukları öncesinde Skill başına ≈ 24 token eder

    Prompt ek yükünü en aza indirmek için açıklamaları kısa ve açıklayıcı tutun.

    İlgili

    Was this useful?
    On this page

    On this page