Skills

Skills yapılandırması

OpenClaw’da çoğu Skills yapılandırması ~/.openclaw/openclaw.json içindeki skills altında bulunur. Agent’a özgü görünürlük agents.defaults.skills ve agents.entries.*.skills altında bulunur.

json5
{  skills: {    allowBundled: ["gemini", "peekaboo"],    load: {      extraDirs: ["~/Projects/agent-scripts/skills"],      allowSymlinkTargets: ["~/Projects/manager/skills"],      watch: true,    },    install: {      preferBrew: true,      nodeManager: "npm",      allowUploadedArchives: false,    },    workshop: {      autonomous: { enabled: false },      allowSymlinkTargetWrites: false,      approvalPolicy: "auto",      maxPending: 50,      maxSkillBytes: 40000,    },    entries: {      "image-lab": {        enabled: true,        apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" },        env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" },      },      peekaboo: { enabled: true },      sag: { enabled: false },    },  },}

Yükleme (skills.load)

skills.load.extraDirsstring[]

En düşük öncelikle (paketle gelen ve Plugin Skills öğelerinin altında) taranacak ek Skills dizinleri. Yollar, ~ desteğiyle genişletilir.

skills.load.allowSymlinkTargetsstring[]

Sembolik bağlantılı Skills klasörlerinin, sembolik bağlantı yapılandırılmış kökün dışında olsa bile çözümleyebileceği güvenilir gerçek hedef dizinler. Bunu <workspace>/skills/manager -> ~/Projects/manager/skills gibi bilinçli kardeş depo düzenleri için kullanın. Bu listeyi dar tutun — ~ veya ~/Projects gibi geniş kökleri göstermeyin.

skills.load.watchbooleandefault: true

Skills klasörlerini izler ve SKILL.md dosyaları değiştiğinde Skills anlık görüntüsünü yeniler. Gruplandırılmış Skills köklerinin altındaki iç içe dosyaları kapsar.

Kurulum (skills.install)

skills.install.preferBrewbooleandefault: true

brew kullanılabiliyorsa Homebrew yükleyicilerini tercih eder.

skills.install.nodeManager"npm" | "pnpm" | "yarn" | "bun"default: "npm"

Skills kurulumları için Node paket yöneticisi tercihi. Bu yalnızca Skills kurulumlarını etkiler; standart durum deposu node:sqlite kullandığından OpenClaw CLI ve Gateway çalışma zamanı Node gerektirir. openclaw setup --node-manager ve openclaw onboard --node-manager; npm, pnpm veya bun değerlerini kabul eder. Yarn destekli Skills kurulumları için yapılandırmada doğrudan "yarn" değerini ayarlayın.

skills.install.allowUploadedArchivesbooleandefault: false

Güvenilir operator.admin Gateway istemcilerinin skills.upload.* üzerinden hazırlanan özel zip arşivlerini kurmasına izin verir. Normal ClawHub kurulumları bu ayara ihtiyaç duymaz.

Operatör Kurulum İlkesi (security.installPolicy)

Operatörlerin, Skills ve Plugin kurulumlarını ana makineye özgü bir ilkeyle onaylamak veya engellemek için güvenilir bir yerel komuta ihtiyaç duyduğu durumlarda security.installPolicy kullanın. İlke, OpenClaw kaynak materyali hazırladıktan sonra ve kurulum ya da güncelleme devam etmeden önce çalışır. ClawHub Skills öğeleri, yüklenen Skills öğeleri, Git/yerel Skills öğeleri, Skills bağımlılık yükleyicileri ve Plugin kurulum/güncelleme kaynakları için geçerlidir.

json5
{  security: {    installPolicy: {      enabled: true,      // Desteklenen her hedefi kapsamak için targets alanını atlayın.      targets: ["skill", "plugin"],      exec: {        source: "exec",        command: "/usr/local/bin/openclaw-install-policy",        args: ["--json"],        timeoutMs: 10000,        noOutputTimeoutMs: 10000,        maxOutputBytes: 1048576,        passEnv: ["OPENCLAW_STATE_DIR", "PATH"],        env: { POLICY_MODE: "strict" },        trustedDirs: ["/usr/local/bin"],      },    },  },}
security.installPolicy.enabledbooleandefault: false

Operatöre ait kurulum ilkesini etkinleştirir. Geçerli bir exec komutu olmadan etkinleştirildiğinde kurulumlar güvenli biçimde başarısız olur.

security.installPolicy.targets("skill" | "plugin")[]

İsteğe bağlı hedef filtresi. Atlandığında ilke, yeni kurulumların beklenmedik şekilde açık kalmaması için desteklenen her hedefe uygulanır.

security.installPolicy.exec.commandstring

Güvenilir ilke yürütülebilir dosyasının mutlak yolu. OpenClaw bunu kabuk kullanmadan çalıştırır ve kullanmadan önce yolu doğrular.

security.installPolicy.exec.argsstring[]

command sonrasında aktarılan statik bağımsız değişkenler.

security.installPolicy.exec.timeoutMsnumberdefault: 10000

Tek bir ilke kararı için azami gerçek zaman çalışma süresi.

security.installPolicy.exec.noOutputTimeoutMsnumberdefault: timeoutMs

İlkenin güvenli biçimde başarısız olmasından önce stdout veya stderr çıktısı olmadan geçebilecek azami süre.

security.installPolicy.exec.maxOutputBytesnumberdefault: 1048576

İlke işleminden kabul edilen stdout ve stderr çıktılarının toplam azami bayt sayısı.

security.installPolicy.exec.env"Record<string,
security.installPolicy.exec.passEnvstring[]

OpenClaw işleminden ilke işlemine kopyalanan ortam değişkeni adları. Yalnızca adı belirtilen değişkenler aktarılır.

security.installPolicy.exec.trustedDirsstring[]

İlke yürütülebilir dosyasını içerebilecek dizinlerin isteğe bağlı izin listesi.

security.installPolicy.exec.allowInsecurePathbooleandefault: false

Komut yolu sahipliği ve izin denetimlerini atlar. Yalnızca yol başka bir mekanizmayla korunuyorsa kullanın.

security.installPolicy.exec.allowSymlinkCommandbooleandefault: false

Yapılandırılmış komut yolunun sembolik bağlantı olmasına izin verir. Çözümlenen hedef yine de diğer yol denetimlerini karşılamalıdır. Yorumlayıcı betik bağımsız değişkenleri sembolik bağlantı değil, doğrudan normal dosyalar olmalıdır.

İlke stdin üzerinden protocolVersion: 1, openclawVersion, targetType, targetName, sourcePath, sourcePathKind, isteğe bağlı yapılandırılmış source, yapılandırılmış origin ve request içeren tek bir JSON nesnesi alır. stdout üzerine tek bir JSON nesnesi yazmalıdır: { "protocolVersion": 1, "decision": "allow" } veya { "protocolVersion": 1, "decision": "block", "reason": "..." }. Sıfır olmayan çıkış, zaman aşımı, hatalı biçimlendirilmiş JSON, eksik alanlar veya desteklenmeyen protokol sürümleri güvenli biçimde başarısız olur.

OpenClaw, normal Gateway başlatma sırasında kurulum ilkesini yürütmez. İlke etkin ancak kullanılamaz olduğunda kurulumlar ve güncellemeler güvenli biçimde başarısız olur. openclaw doctor statik doğrulama gerçekleştirir; openclaw doctor --deep ise yapılandırılmış komuta karşı yapay bir kurulum sınaması yürütür.

Toplu güncellemeler ilkeyi hedef başına uygular: engellenmiş bir Skills veya Plugin güncellemesi, ilkeyi devre dışı bırakmadan ya da gruptaki sonraki hedefleri atlamadan ilgili hedef için başarısız olur.

Örnek stdin:

json
{  "protocolVersion": 1,  "openclawVersion": "2026.6.1",  "targetType": "skill",  "targetName": "weather",  "sourcePath": "/var/folders/.../openclaw-skill-clawhub/root",  "sourcePathKind": "directory",  "source": {    "kind": "clawhub",    "authority": "openclaw",    "mutable": false,    "network": true  },  "origin": {    "type": "clawhub",    "registry": "https://clawhub.openclaw.ai",    "slug": "weather",    "version": "1.0.0"  },  "request": {    "kind": "skill-install",    "mode": "install",    "requestedSpecifier": "clawhub:weather@1.0.0"  },  "skill": {    "installId": "clawhub"  }}

Asgari ilke komutu:

js
#!/usr/bin/env node let input = "";process.stdin.setEncoding("utf8");process.stdin.on("data", (chunk) => {  input += chunk;});process.stdin.on("end", () => {  const request = JSON.parse(input);  if (request.targetType === "plugin" && request.source?.kind === "local-path") {    process.stdout.write(      JSON.stringify({        protocolVersion: 1,        decision: "block",        reason: "yerel Plugin yolları bu ana makinede onaylanmamıştır",      }),    );    return;  }  process.stdout.write(JSON.stringify({ protocolVersion: 1, decision: "allow" }));});

Paketle gelen Skills izin listesi

skills.allowBundledstring[]

Yalnızca paketle gelen Skills öğeleri için isteğe bağlı izin listesi. Ayarlandığında yalnızca listedeki paketle gelen Skills öğeleri uygun olur. Yönetilen, Agent düzeyindeki ve çalışma alanındaki Skills öğeleri etkilenmez.

Skills başına girdiler (skills.entries)

entries altındaki anahtarlar varsayılan olarak Skills name değeriyle eşleşir. Bir Skills öğesi metadata.openclaw.skillKey tanımlıyorsa bunun yerine o anahtarı kullanın. Kısa çizgili adları tırnak içine alın (JSON5, tırnaklı anahtarlara izin verir).

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNraWxscy5lbnRyaWVzLjxrZXk .enabled" type="boolean"> false, paketle gelmiş veya kurulmuş olsa bile Skills öğesini devre dışı bırakır. Paketle gelen coding-agent Skills öğesi isteğe bağlıdır — bunu true olarak ayarlayın ve claude, codex, opencode veya desteklenen başka bir CLI'ın kurulu ve kimliği doğrulanmış olduğundan emin olun.

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNraWxscy5lbnRyaWVzLjxrZXk .apiKey" type='string | { source, provider, id }'> metadata.openclaw.primaryEnv bildiren Skills öğeleri için kolaylık alanı. Düz metin dizesini veya SecretRef değerini destekler: { source: "env", provider: "default", id: "VAR_NAME" }.

"skills.entries.<key�����r�
"skills.entries.<key�w₫��ܩ

Agent izin listeleri (agents)

Aynı makine/çalışma alanı Skills köklerini, ancak Agent başına farklı bir görünür Skills kümesini istediğinizde Agent yapılandırmasını kullanın.

json5
{  agents: {    defaults: {      skills: ["github", "weather"], // paylaşılan temel    },    list: [      { id: "writer" }, // github ve weather devralınır      { id: "docs", skills: ["docs-search"] }, // varsayılanların tamamının yerini alır      { id: "locked-down", skills: [] }, // Skills yok    ],  },}
agents.defaults.skillsstring[]

agents.entries.*.skills alanını atlayan Agent’ların devraldığı paylaşılan temel izin listesi. Skills öğelerini varsayılan olarak kısıtlamamak için bu alanı tamamen atlayın.

agents.entries.*.skillsstring[]

İlgili Agent için açıkça belirtilmiş nihai Skills kümesi. Açık listeler, devralınan varsayılanların yerini alır — bunlarla birleştirilmez. İlgili Agent’a hiçbir Skills öğesi sunmamak için [] olarak ayarlayın.

Workshop (skills.workshop)

skills.workshop.autonomous.enabledbooleandefault: false

true olduğunda OpenClaw, kalıcı düzeltmelerden bekleyen öneriler oluşturabilir ve sistem boştayken başarıyla tamamlanmış önemli çalışmaları inceleyebilir. Bu, uygun dönüşlerden sonra arka planda bir model çalıştırması ekleyebilir. Kullanıcı tarafından istenen skill oluşturma ve /learn, ayar false olduğunda çalışmaya devam eder.

Uygunluk, gizlilik, maliyet, yalnızca öneri izinleri ve sorun giderme için Kendi kendine öğrenme bölümüne bakın.

skills.workshop.approvalPolicy"pending" | "auto"default: "auto"

auto, ek bir onay istemi olmadan agent tarafından başlatılan uygulama, reddetme veya karantinaya alma işlemlerine izin verir. pending operatör onayı gerektirir.

skills.workshop.allowSymlinkTargetWritesbooleandefault: false

Skill Workshop uygulamasının, gerçek hedefi skills.load.allowSymlinkTargets tarafından zaten güvenilir kabul edilen çalışma alanı skill sembolik bağlantıları üzerinden yazmasına izin verir. Oluşturulan önerilerin uygulanması bu paylaşılan skill kökünü değiştirmeyecekse bu ayarı devre dışı tutun.

skills.workshop.maxPendingnumberdefault: 50

Çalışma alanı başına saklanan bekleyen ve karantinaya alınmış önerilerin azami sayısı (izin verilen aralık: 1-200).

skills.workshop.maxSkillBytesnumberdefault: 40000

Bayt cinsinden azami öneri gövdesi boyutu (izin verilen aralık: 1024-200000). Öneri açıklamaları, keşif ve listeleme çıktısında göründükleri için ayrıca kesin olarak 160 baytla sınırlandırılır.

Bu yapılandırmanın denetlediği öneri yaşam döngüsü, CLI komutları, agent aracı parametreleri ve Gateway yöntemleri için Skill Workshop bölümüne bakın.

Sembolik bağlantılı skill kökleri

Varsayılan olarak çalışma alanı, proje agent'ı, ek dizin ve paketlenmiş skill kökleri kapsama sınırlarıdır. <workspace>/skills altında bulunan ve kökün dışına çözümlenen sembolik bağlantılı bir skill klasörü, bir günlük mesajıyla atlanır.

Kasıtlı bir sembolik bağlantı düzenine izin vermek için güvenilir hedefi bildirin:

json5
{  skills: {    load: {      extraDirs: ["~/Projects/manager/skills"],      allowSymlinkTargets: ["~/Projects/manager/skills"],    },  },}

Bu yapılandırmayla <workspace>/skills/manager -> ~/Projects/manager/skills, realpath çözümlemesinden sonra kabul edilir. extraDirs kardeş depoyu doğrudan tarar; allowSymlinkTargets mevcut düzenler için sembolik bağlantılı yolu korur.

Skill Workshop uygulaması varsayılan olarak bu sembolik bağlantılar üzerinden yazmaz. Workshop uygulamasının, zaten güvenilir olan sembolik bağlantı hedefleri altındaki skill'leri değiştirmesine izin vermek için ayrıca etkinleştirin:

json5
{  skills: {    load: {      allowSymlinkTargets: ["~/Projects/manager/skills"],    },    workshop: {      allowSymlinkTargetWrites: true,    },  },}

Yönetilen ~/.openclaw/skills ve kişisel ~/.agents/skills dizinleri, skill dizini sembolik bağlantılarını zaten koşulsuz olarak kabul eder (skill başına SKILL.md kapsam denetimi yine uygulanır) — allowSymlinkTargets yalnızca çalışma alanı, ek dizin ve proje agent'ı (<workspace>/.agents/skills) kökleri için gereklidir.

Korumalı alandaki skill'ler ve ortam değişkenleri

Gizli bilgileri bir Docker korumalı alanına şu şekilde aktarın:

json5
{  agents: {    defaults: {      sandbox: {        docker: {          env: { GEMINI_API_KEY: "your-key-here" },        },      },    },  },}

Yükleme sırası hatırlatması

text
workspace/skills      (en yüksek)workspace/.agents/skills~/.agents/skills~/.openclaw/skillspaketlenmiş skill'lerskills.load.extraDirs (en düşük)

İzleyici etkin olduğunda skill ve yapılandırma değişiklikleri bir sonraki yeni oturumda veya izleyici bir değişiklik algıladığında bir sonraki agent dönüşünde geçerli olur.

İlgili konular

Was this useful?
On this page

On this page