Skills

Skills

Skills, ajana araçları nasıl ve ne zaman kullanacağını öğreten markdown talimat dosyalarıdır. Her Skill, YAML frontmatter ve markdown gövdesi içeren bir SKILL.md dosyasının bulunduğu bir dizinde yer alır. OpenClaw, paketle birlikte gelen Skills'leri ve tüm yerel geçersiz kılmaları yükler; yükleme sırasında ortam, yapılandırma ve ikili dosyaların varlığına göre filtreler.

Yükleme sırası

OpenClaw şu kaynaklardan, en yüksek öncelik ilk sırada olacak şekilde yükleme yapar. Aynı Skill adı birden fazla yerde görünürse en yüksek öncelikli kaynak geçerli olur.

Öncelik Kaynak Yol
1 — en yüksek Çalışma alanı Skills'leri <workspace>/skills
2 Proje ajanı Skills'leri <workspace>/.agents/skills
3 Kişisel ajan 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'leri

Skill kökleri gruplandırılmış düzenleri destekler. OpenClaw, yapılandırılmış bir kökün herhangi bir yerinde SKILL.md bulunduğunda (en fazla 6 düzey derinlikte) bir Skill keşfeder:

text
<workspace>/skills/research/SKILL.md          ✓ "research" olarak bulundu<workspace>/skills/personal/research/SKILL.md ✓ ayrıca "research" olarak bulundu

Klasör yolu yalnızca düzenleme amaçlıdır. Skill'in adı ve eğik çizgi komutu name frontmatter alanından gelir (name eksikse dizin adından gelir). Ajan izin listeleri (aşağıda) de bu name ile eşleşir.

Node üzerinde barındırılan Skills

Bağlı bir başsız Node, etkin OpenClaw Skills dizininde yüklü Skills'leri yayımlayabilir (varsayılan olarak ~/.openclaw/skills; profil ortamı geçersiz kılmaları uygulanır). Node bağlıyken normal ajan Skill listesinde görünür, bağlantısı kesildiğinde kaybolurlar. Ad çakışmasında yerel veya Gateway Skill kendi adını korur; Node Skill, belirlenimci ve Node önekli bir ad alır. Node üzerinde barındırılan v1, dizin adının Skill'in name frontmatter alanıyla eşleşmesini gerektirir.

Skill girdisi Node konumlandırıcısını içerir. Dosyaları, göreli başvuruları ve ikili dosyaları Node üzerinde bulunduğundan, exec host=node node=<node-id> ile yükleyip çalıştırın. Skill dosyalarını değiştirdikten sonra Node ana bilgisayarını yeniden başlatın. Eşleştirme ve devre dışı bırakma seçenekleri için Node'lar bölümüne bakın.

Ajan başına ve paylaşılan Skills

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

Kapsam Yol Görünürlük
Ajan başına <workspace>/skills Yalnızca o ajan
Proje ajanı <workspace>/.agents/skills Yalnızca o çalışma alanının ajanı
Kişisel ajan ~/.agents/skills Bu makinedeki tüm ajanlar
Paylaşılan yönetilen ~/.openclaw/skills Bu makinedeki tüm ajanlar
Ek dizinler skills.load.extraDirs Bu makinedeki tüm ajanlar

Ajan izin listeleri

Skill konumu (öncelik) ve Skill görünürlüğü (hangi ajanın kullanabileceği) ayrı denetimlerdir. Nereden yüklendiklerine bakılmaksızın bir ajanın hangi Skills'leri göreceğini kısıtlamak için izin listelerini kullanın.

json5
{  agents: {    defaults: {      skills: ["github", "weather"], // paylaşılan temel küme    },    list: [      { id: "writer" }, // github ve weather'ı devralır      { id: "docs", skills: ["docs-search"] }, // varsayılanların tamamının yerine geçer      { id: "locked-down", skills: [] }, // Skill yok    ],  },}
İzin listesi kuralları
  • Tüm Skills'leri varsayılan olarak kısıtlamadan bırakmak için agents.defaults.skills öğesini atlayın.
  • agents.defaults.skills öğesini devralmak için agents.entries.*.skills öğesini atlayın.
  • O ajan için hiçbir Skill sunmamak üzere agents.entries.*.skills: [] değerini ayarlayın.
  • Boş olmayan bir agents.entries.*.skills listesi nihai kümedir — varsayılanlarla birleştirilmez.
  • Etkin izin listesi; istem oluşturma, eğik çizgi komutu keşfi, korumalı alan eşitlemesi ve Skill anlık görüntüleri genelinde uygulanır.
  • Bu, ana bilgisayar kabuğu için bir yetkilendirme sınırı değildir. Aynı ajan exec kullanabiliyorsa bu kabuğu korumalı alan, işletim sistemi kullanıcısı yalıtımı, yürütme engelleme/izin listeleri ve kaynak başına kimlik bilgileriyle ayrıca kısıtlayın.

Plugin'ler ve Skills

Plugin'ler, openclaw.plugin.json içinde skills dizinlerini listeleyerek kendi Skills'lerini sunabilir (yollar Plugin köküne göredir). Plugin Skills'leri, Plugin etkinleştirildiğinde yüklenir — örneğin tarayıcı Plugin'i, çok adımlı tarayıcı denetimi için bir browser-automation Skill'i sunar.

Plugin Skill dizinleri, skills.load.extraDirs ile aynı düşük öncelik düzeyinde birleştirilir; dolayısıyla aynı adlı paketle gelen, yönetilen, ajan veya çalışma alanı Skill'i bunları geçersiz kılar. Bir Plugin Skill'inin kendi uygunluğunu, diğer tüm Skills'lerde olduğu gibi frontmatter bölümündeki metadata.openclaw.requires aracılığıyla belirleyin.

Tam Plugin sistemi için Plugin'ler ve Araçlar bölümlerine bakın.

Skill Atölyesi

Skill Atölyesi, ajan ile etkin Skill dosyalarınız arasında yer alan bir öneri kuyruğudur. Ajan yeniden kullanılabilir bir çalışma fark ettiğinde doğrudan SKILL.md içine yazmak yerine bir öneri taslağı hazırlar. Herhangi bir değişiklik yapılmadan önce bunu inceler ve 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 Atölyesi bölümüne bakın.

ClawHub'dan yükleme

ClawHub, herkese açık Skills kayıt defteridir. Yükleme ve güncelleme için openclaw skills komutlarını, yayımlama ve eşitleme için clawhub CLI'ını kullanın.

Eylem Komut
Çalışma alanına bir Skill yükle openclaw skills install @owner/<slug>
Git deposundan yükle openclaw skills install git:owner/repo@ref
Yerel bir Skill dizini yükle openclaw skills install ./path/to/skill --as my-tool
Tüm yerel ajanlar için yükle 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 sınırlarını doğrula openclaw skills verify @owner/<slug>
Oluşturulan Skill Kartını yazdır openclaw skills verify @owner/<slug> --card
ClawHub CLI aracılığıyla yayımla / eşitle clawhub sync --all
Yükleme ayrıntıları

openclaw skills install, varsayılan olarak etkin çalışma alanının skills/ dizinine yükleme yapar. Ajan izin listeleri kapsamı daraltmadığı sürece tüm yerel ajanlar tarafından görülebilen paylaşılan ~/.openclaw/skills dizinine yüklemek için --global ekleyin.

Git ve yerel yüklemeler, kaynak kökünde SKILL.md bulunmasını bekler. Kısa ad, geçerliyse SKILL.md frontmatter name değerinden gelir; ardından dizin veya depo adına geri döner. Geçersiz kılmak için --as <slug> kullanın. openclaw skills update yalnızca ClawHub yüklemelerini izler — Git veya yerel kaynakları yenilemek için yeniden yükleyin.

Doğrulama ve güvenlik taraması

openclaw skills verify @owner/<slug>, ClawHub'dan Skill'in clawhub.skill.verify.v1 güven sınırlarını ister. Yüklü ClawHub Skills'leri, .clawhub/origin.json içinde kaydedilen sürüme ve kayıt defterine göre doğrulanır. Yalın kısa adlar, mevcut yüklü veya belirsizlik taşımayan Skills için kabul edilmeye devam eder; ancak sahip nitelemeli başvurular yayımlayıcı belirsizliğini önler.

ClawHub Skill sayfaları, yüklemeden ö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ırdan farklı bir kodla çıkar. Yayımlayıcılar yanlış pozitifleri ClawHub panosu veya clawhub skill rescan @owner/<slug> aracılığıyla düzeltebilir.

Özel arşiv yüklemeleri

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

Güvenlik

Yol sınırlaması

Çalışma alanı, proje ajanı ve ek dizin Skill keşfi; skills.load.allowSymlinkTargets bir hedef köke açıkça güvenmediği sürece yalnızca çözümlenen gerçek yolu yapılandırılmış kökün içinde kalan Skill köklerini kabul eder. Skill Atölyesi, yalnızca skills.workshop.allowSymlinkTargetWrites etkinleştirildiğinde bu güvenilen hedeflere yazar. Yönetilen ~/.openclaw/skills ve kişisel ~/.agents/skills, sembolik bağlantılı Skill klasörleri içerebilir; ancak her SKILL.md gerçek yolu yine çözümlenen Skill dizininin içinde kalmalıdır.

Operatör yükleme politikası

Skill yüklemeleri devam etmeden önce güvenilir bir yerel politika komutu çalıştırmak için security.installPolicy yapılandırın. Politika, meta verileri ve hazırlanan kaynak yolunu alır; ClawHub, yüklenen dosya, Git, yerel, güncelleme ve bağımlılık yükleyicisi yollarına uygulanır ve komut geçerli bir karar döndüremediğinde güvenli biçimde başarısız olur.

Gizli bilgi ekleme kapsamı

skills.entries.*.env ve skills.entries.*.apiKey, gizli bilgileri yalnızca o ajan turu için ana bilgisayar sürecine ekler — korumalı alana eklemez. Gizli bilgileri istemlerden ve günlüklerden uzak tutun.

Daha geniş tehdit modeli ve güvenlik kontrol listeleri için Güvenlik bölümüne bakın.

SKILL.md biçimi

Her Skill'in frontmatter bölümünde en az bir name ve description bulunmalıdır:

markdown
---name: image-labdescription: Sağlayıcı destekli bir görüntü iş akışı aracılığıyla görüntüler oluşturun veya düzenleyin--- Kullanıcı bir görüntü oluşturmak istediğinde `image_generate` aracını kullanın...

İsteğe bağlı frontmatter anahtarları

homepagestring

macOS Skills kullanıcı arayüzünde "Web Sitesi" olarak gösterilen URL. Ayrıca metadata.openclaw.homepage aracılığıyla da desteklenir.

user-invocablebooleandefault: true

true olduğunda Skills, kullanıcı tarafından çağrılabilen bir eğik çizgi komutu olarak sunulur.

disable-model-invocationbooleandefault: false

true olduğunda OpenClaw, Skills talimatlarını aracının normal istemine dahil etmez. Skills, user-invocable aynı zamanda true olduğunda eğik çizgi komutu olarak kullanılmaya devam eder.

command-dispatch"tool"

tool olarak ayarlandığında eğik çizgi komutu modeli atlar ve doğrudan kayıtlı bir araca yönlendirilir.

command-toolstring

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

command-arg-mode"raw"default: raw

Araç yönlendirmesinde, ham argüman dizesini çekirdek tarafından ayrıştırılmadan araca iletir. Araç, { command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" } alır.

Geçitler

OpenClaw, yükleme sırasında Skills öğelerini metadata.openclaw kullanarak filtreler (frontmatter içine yerleştirilmiş JSON5 nesnesi; yukarıdaki ayrıştırma notuna bakın). metadata.openclaw bloğu olmayan bir Skills, açıkça devre dışı bırakılmadığı sürece her zaman uygundur.

markdown
---name: image-labdescription: Sağlayıcı destekli bir görüntü iş akışı aracılığıyla görüntüler oluşturun veya düzenleyinmetadata:  {    "openclaw":      {        "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] },        "primaryEnv": "GEMINI_API_KEY",      },  }---
alwaysboolean

true olduğunda Skills öğesini her zaman dahil eder ve diğer tüm geçitleri atlar.

emojistring

macOS Skills kullanıcı arayüzünde gösterilen isteğe bağlı emoji.

homepagestring

macOS Skills kullanıcı arayüzünde "Website" olarak gösterilen isteğe bağlı URL.

os("darwin" | "linux" | "win32")[]

Platform filtresi. Ayarlandığında Skills yalnızca listelenen bir işletim sisteminde 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 ortam değişkeni süreçte bulunmalı veya yapılandırma aracılığıyla sağlanmalıdır.

requires.configstring[]

Her openclaw.json yolu doğru değerli olmalıdır.

primaryEnvstring

skills.entries.<name>.apiKey ile ilişkilendirilmiş ortam değişkeni adı.

installobject[]

macOS Skills kullanıcı arayüzü tarafından kullanılan isteğe bağlı yükleyici tanımları (brew / node / go / uv / download).

Yükleyici tanımları

Yükleyici tanımları, macOS Skills kullanıcı arayüzüne bir bağımlılığın nasıl yükleneceğini bildirir:

markdown
---name: geminidescription: Kodlama desteği ve Google arama sorguları için Gemini CLI'ı kullanın.metadata:  {    "openclaw":      {        "emoji": "♊️",        "requires": { "bins": ["gemini"] },        "install":          [            {              "id": "brew",              "kind": "brew",              "formula": "gemini-cli",              "bins": ["gemini"],              "label": "Gemini CLI'ı yükle (brew)",            },          ],      },  }---
Yükleyici seçim kuralları
  • Birden fazla yükleyici listelendiğinde Gateway, tercih edilen bir seçeneği belirler (varsa brew, aksi takdirde node).
  • Tüm yükleyiciler download ise OpenClaw, kullanılabilir tüm yapıtları görebilmeniz için her girdiyi listeler.
  • Tanımlar, platforma göre filtreleme yapmak için os: ["darwin"|"linux"|"win32"] içerebilir.
  • Node yüklemeleri, openclaw.json içindeki skills.install.nodeManager ayarını dikkate alır (varsayılan: npm; seçenekler: npm / pnpm / yarn / bun). Bu yalnızca Skills yüklemelerini etkiler; Gateway çalışma zamanı yine Node olmalıdır.
  • Gateway yükleyici tercihi: Homebrew → uv → yapılandırılmış node yöneticisi → go → indirme.
Yükleyici bazında ayrıntılar
  • Homebrew: OpenClaw, Homebrew'u otomatik olarak yüklemez veya brew formüllerini sistem paketi komutlarına dönüştürmez. brew bulunmayan Linux kapsayıcılarında yalnızca brew kullanan yükleyiciler gizlenir; özel bir imaj kullanın veya bağımlılığı manuel olarak yükleyin.
  • Go: OpenClaw, otomatik Skills yüklemeleri için Go 1.21 veya daha yeni bir sürüm gerektirir. go eksikse ve Homebrew kullanılabiliyorsa OpenClaw önce Go'yu Homebrew aracılığıyla yükler; Homebrew bulunmayan Linux'ta ise yenilenmiş golang-go adayı minimum sürümü karşılıyorsa bunun yerine root olarak veya parolasız sudo üzerinden apt-get kullanabilir. Bağımlılığa yönelik gerçek go install, yapılandırılmış GOBIN yerine her zaman OpenClaw tarafından yönetilen özel bir ikili dosya dizinini (yeni yüklemede Homebrew'un bin dizini, aksi takdirde ~/.local/bin) hedefler — size ait GOBIN, GOPATH ve GOTOOLCHAIN ortam değişkenleri okunur ancak hiçbir zaman üzerine yazılmaz.
  • İndirme: url (gerekli), archive (tar.gz | tar.bz2 | zip), extract (varsayılan: arşiv algılandığında otomatik), stripComponents, targetDir (varsayılan: ~/.openclaw/tools/<skillKey>).
Korumalı alan notları

requires.bins, Skills yükleme sırasında ana makinede denetlenir. Bir aracı korumalı alanda çalışıyorsa ikili dosya kapsayıcının içinde de bulunmalıdır. Bunu agents.defaults.sandbox.docker.setupCommand veya özel bir imaj aracılığıyla yükleyin. setupCommand, kapsayıcı oluşturulduktan sonra bir kez çalışır ve ağ çıkışı, yazılabilir bir kök dosya sistemi ve korumalı alanda bir root kullanıcısı gerektirir.

Yapılandırma geçersiz kılmaları

Paketlenmiş veya yönetilen Skills öğelerini ~/.openclaw/openclaw.json içindeki skills.entries altında etkinleştirin 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üklenmiş olsa bile Skills öğesini devre dışı bırakır. coding-agent paketlenmiş Skills öğesi isteğe bağlıdır — skills.entries.coding-agent.enabled: true değerini ayarlayın ve claude, codex, opencode veya desteklenen başka bir CLI'ın yüklendiğinden ve kimliğinin doğrulandığından emin olun.

apiKeystring | { source, provider, id }

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

env"Record<string,
configobject

Skills bazında özel yapılandırma alanları için isteğe bağlı alan grubu.

allowBundledstring[]

Yalnızca paketlenmiş Skills öğeleri için isteğe bağlı izin listesi. Ayarlandığında yalnızca listedeki paketlenmiş Skills öğeleri uygun olur. Yönetilen ve çalışma alanı Skills öğeleri etkilenmez.

Ortam enjeksiyonu

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

  • Skills meta verilerini okur

    OpenClaw; geçit kurallarını, izin listelerini ve yapılandırma geçersiz kılmalarını uygulayarak aracı için geçerli Skills listesini çözümler.

  • Ortam değişkenlerini ve API anahtarlarını enjekte eder

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

  • Sistem istemini oluşturur

    Uygun Skills öğeleri derlenerek kompakt bir XML bloğuna dönüştürülür ve sistem istemine enjekte edilir.

  • Ortamı geri yükler

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

  • Paketlenmiş claude-cli arka ucu için OpenClaw, aynı uygun Skills anlık görüntüsünü geçici bir Claude Code Plugin'i olarak da somutlaştırır ve --plugin-dir aracılığıyla iletir. Diğer CLI arka uçları yalnızca istem kataloğunu kullanır.

    Anlık görüntüler ve yenileme

    OpenClaw, uygun Skills öğelerinin anlık görüntüsünü oturum başladığında alır ve bu listeyi oturumdaki sonraki tüm dönüşlerde yeniden kullanır. Skills veya yapılandırma değişiklikleri bir sonraki yeni oturumda yürürlüğe girer.

    Skills, oturumun ortasında iki durumda yenilenir:

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

    Yenilenen liste, bir sonraki aracı dönüşünde alınır. Geçerli aracı izin listesi değişirse OpenClaw, görünür Skills öğelerini uyumlu tutmak için anlık görüntüyü yeniler.

    Skills izleyicisi

    OpenClaw varsayılan olarak Skills klasörlerini izler ve SKILL.md dosyaları değiştiğinde anlık görüntüyü ilerletir. skills.load altında yapılandırın:

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

    İzleyici olayları yerleşik 250 ms bekletme kullanır. Bir Skills kök sembolik bağlantısının yapılandırılmış kökün dışını gösterdiği, örneğin <workspace>/skills/manager -> ~/Projects/manager/skills gibi bilinçli sembolik bağlantı düzenleri için allowSymlinkTargets kullanın. skills.workshop.allowSymlinkTargetWrites seçeneğini yalnızca Skills Workshop'un önerileri bu güvenilir sembolik bağlantılı yollar üzerinden de uygulaması gerektiğinde etkinleştirin.

    Uzak macOS Node'ları (Linux Gateway)

    Gateway Linux'ta çalışıyor ancak system.run izni verilmiş bir macOS Node'u bağlıysa OpenClaw, gerekli ikili dosyalar bu Node'da bulunduğunda yalnızca macOS'a özgü Skills öğelerini uygun kabul edebilir. Aracı, bu Skills öğelerini host=node ile exec aracını kullanarak çalıştırmalıdır.

    Çevrimdışı Node'lar, yalnızca uzaktan kullanılabilen Skills öğelerini görünür kılmaz. Bir Node ikili dosya sorgularına yanıt vermeyi durdurursa OpenClaw, önbelleğe alınmış ikili dosya eşleşmelerini temizler.

    Token etkisi

    Skills öğeleri uygun olduğunda OpenClaw, sistem istemine kompakt bir XML bloğu enjekte eder. Maliyet belirlenebilirdir ve Skills başına doğrusal olarak ölçeklenir:

    • Temel ek yük (yalnızca 1+ Skills uygun olduğunda): sabit bir giriş metni bloğu ve <available_skills> sarmalayıcısı.
    • Skills başına: ~97 karakter + name, description ve location alan uzunluklarınız.
    • XML kaçış işlemi, & < > " ' öğesini varlıklara genişleterek her oluşum başına birkaç karakter ekler.
    • ~4 karakter/token oranında, alan uzunluklarından önce Skills başına 97 karakter ≈ 24 token eder.

    İşlenen blok yapılandırılmış istem bütçesini (skills.limits.maxSkillsPromptChars) aşacaksa OpenClaw önce açıklamasız kompakt biçime sığabilecek kadar çok Skills kimliğini (ad, konum ve sürüm) korur. Ardından kalan bütçeyi kısaltılmış açıklamalar için kullanır. Açıklama bütçesi kalmazsa açıklamalar çıkarılır. Kompakt biçimlendirme veya liste kısaltma gerektiğinde istemde openclaw skills check öğesine yönlendiren bir not bulunur.

    İstem 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