Skills
Skills yapılandırması
Skills yapılandırmasının büyük bölümü
~/.openclaw/openclaw.json içinde skills altında bulunur. Aracıya özgü görünürlük
agents.defaults.skills ve agents.list[].skills altında bulunur.
{ skills: { allowBundled: ["gemini", "peekaboo"], load: { extraDirs: ["~/Projects/agent-scripts/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], watch: true, watchDebounceMs: 250, }, install: { preferBrew: true, nodeManager: "npm", allowUploadedArchives: false, }, workshop: { autonomous: { enabled: false }, allowSymlinkTargetWrites: false, approvalPolicy: "pending", 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[]Taranacak ek skill dizinleri, en düşük öncelikte olacak şekilde (paketle gelen
ve Plugin skill'lerden sonra). Yollar ~ desteğiyle genişletilir.
skills.load.allowSymlinkTargetsstring[]Sembolik bağlantılı skill klasörlerinin, sembolik bağlantı yapılandırılmış kökün dışında bulunsa bile
çözümlenebileceği güvenilir gerçek hedef dizinler.
Bunu <workspace>/skills/manager -> ~/Projects/manager/skills gibi
kasıtlı kardeş repo yerleşimleri için kullanın. Bu listeyi
dar tutun — ~ veya ~/Projects gibi geniş kökleri göstermeyin.
skills.load.watchbooleandefault: trueSkill klasörlerini izleyin ve SKILL.md dosyaları değiştiğinde skills anlık görüntüsünü
yenileyin. Gruplandırılmış skill kökleri altındaki iç içe dosyaları kapsar.
skills.load.watchDebounceMsnumberdefault: 250Skill izleyici olayları için milisaniye cinsinden debounce penceresi.
Kurulum (skills.install)
skills.install.preferBrewbooleandefault: truebrew kullanılabilir olduğunda Homebrew kurucularını tercih edin.
skills.install.nodeManager"npm" | "pnpm" | "yarn" | "bun"default: "npm"Skill kurulumları için Node paket yöneticisi tercihi. Bu yalnızca skill
kurulumlarını etkiler — Gateway çalışma zamanı yine Node kullanmalıdır (Bun,
WhatsApp/Telegram için önerilmez). npm, pnpm veya bun için
openclaw setup --node-manager kullanın; Yarn destekli skill kurulumları için
"yarn" değerini elle ayarlayın.
skills.install.allowUploadedArchivesbooleandefault: falseGüvenilir operator.admin Gateway istemcilerinin skills.upload.* üzerinden
hazırlanmış özel zip arşivlerini kurmasına izin verin. Normal ClawHub kurulumları
bu ayara ihtiyaç duymaz.
Operatör Kurulum İlkesi (security.installPolicy)
Operatörlerin skill ve Plugin kurulumlarını ana makineye özgü ilkeyle onaylamak
veya engellemek için güvenilir bir yerel komuta ihtiyacı olduğunda
security.installPolicy kullanın. İlke, OpenClaw kaynak materyali hazırladıktan
sonra ve kurulum veya güncelleme devam etmeden önce çalışır. ClawHub skills,
yüklenen skills, Git/yerel skills, skill bağımlılık kurucuları ve Plugin
kurulum/güncelleme kaynakları için geçerlidir.
{ security: { installPolicy: { enabled: true, // Omit targets to cover every supported target. 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: falseOperatöre ait kurulum ilkesini etkinleştirir. Geçerli bir exec komutu olmadan
etkinleştirildiğinde, kurulumlar kapalı başarısız olur.
security.installPolicy.targets("skill" | "plugin")[]İsteğe bağlı hedef filtresi. Atlandığında, ilke desteklenen her hedefe uygulanır; böylece yeni kurulumlar beklenmedik şekilde açık başarısız olmaz.
security.installPolicy.exec.commandstringGüvenilir ilke yürütülebilir dosyasına mutlak yol. OpenClaw bunu bir kabuk olmadan çalıştırır ve kullanmadan önce yolu doğrular.
security.installPolicy.exec.argsstring[]command sonrasında geçirilen statik argümanlar.
security.installPolicy.exec.timeoutMsnumberdefault: 10000Tek bir ilke kararı için azami duvar saati çalışma süresi.
security.installPolicy.exec.noOutputTimeoutMsnumberdefault: timeoutMsİlke kapalı başarısız olmadan önce stdout veya stderr çıktısı olmadan geçebilecek azami süre.
security.installPolicy.exec.maxOutputBytesnumberdefault: 1048576İlke sürecinden kabul edilen azami birleşik stdout ve stderr bayt sayısı.
security.installPolicy.exec.env"Record<string,security.installPolicy.exec.passEnvstring[]OpenClaw sürecinden ilke sürecine kopyalanan ortam değişkeni adları. Yalnızca adlandırılmış değişkenler geçirilir.
security.installPolicy.exec.trustedDirsstring[]İlke yürütülebilir dosyasını içerebilecek dizinlerin isteğe bağlı izin listesi.
security.installPolicy.exec.allowInsecurePathbooleandefault: falseKomut yolu sahipliği ve izin denetimlerini atlar. Yalnızca yol başka bir mekanizma tarafından korunuyorsa kullanın.
security.installPolicy.exec.allowSymlinkCommandbooleandefault: falseYapı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 argümanları sembolik bağlantı değil, doğrudan normal dosyalar olmalıdır.
İlke stdin üzerinde 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 bir JSON nesnesi alır.
stdout üzerinde 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 kapalı başarısız olur.
OpenClaw, normal Gateway başlatma sırasında kurulum ilkesini çalıştırmaz. İlke
etkin ancak kullanılamaz olduğunda kurulumlar ve güncellemeler kapalı başarısız
olur. openclaw doctor statik doğrulama yapar ve openclaw doctor --deep
yapılandırılmış komuta karşı yapay bir kurulum sondası yürütür.
Toplu güncellemeler ilkeyi hedef başına uygular: engellenen bir skill veya Plugin güncellemesi, ilkeyi devre dışı bırakmadan ya da gruptaki sonraki hedefleri atlamadan o hedef için başarısız olur.
Örnek stdin:
{ "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:
#!/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: "local plugin paths are not approved on this host", }), ); return; } process.stdout.write(JSON.stringify({ protocolVersion: 1, decision: "allow" }));});Paketle gelen skill izin listesi
skills.allowBundledstring[]Yalnızca paketle gelen skills için isteğe bağlı izin listesi. Ayarlandığında, yalnızca listedeki paketle gelen skills uygun olur. Yönetilen, aracı düzeyindeki ve çalışma alanı skills bundan etkilenmez.
Skill başına girdiler (skills.entries)
entries altındaki anahtarlar varsayılan olarak skill name değeriyle eşleşir.
Bir skill metadata.openclaw.skillKey tanımlıyorsa onun yerine bu anahtarı
kullanın. Tireli 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 skill'i devre dışı bırakır.
Paketle gelen coding-agent skill'i 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 için kolaylık alanı.
Düz metin dizesini veya bir SecretRef'i destekler: { source: "env", provider: "default", id: "VAR_NAME" }.
"skills.entries.<key�����r�"skills.entries.<key�w₫��ܩAracı izin listeleri (agents)
Aynı makine/çalışma alanı skill köklerini ancak aracı başına farklı bir görünür skill kümesini istediğinizde aracı yapılandırmasını kullanın.
{ 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 ], },}agents.defaults.skillsstring[]agents.list[].skills değerini atlayan aracılar tarafından devralınan paylaşılan
temel izin listesi. Skills'in varsayılan olarak kısıtlanmaması için tamamen
atlayın.
agents.list[].skillsstring[]Bu aracı için açık nihai skill kümesi. Açık listeler devralınan varsayılanları
değiştirir — birleştirmez. Bu aracıya hiçbir skill göstermemek için []
olarak ayarlayın.
Workshop (skills.workshop)
skills.workshop.autonomous.enabledbooleandefault: falsetrue olduğunda, aracılar başarılı dönüşlerden sonra kalıcı konuşma
sinyallerinden bekleyen öneriler oluşturabilir. Kullanıcı istemli skill
oluşturma, bu ayardan bağımsız olarak her zaman Skill Workshop üzerinden geçer.
skills.workshop.approvalPolicy"pending" | "auto"default: "pending"pending, ajan tarafından başlatılan apply, reject veya quarantine işlemlerinden
önce operatör onayı gerektirir. auto, bu işlemlere onay olmadan izin verir.
skills.workshop.allowSymlinkTargetWritesbooleandefault: falseSkill Workshop apply işleminin, gerçek hedefi zaten
skills.load.allowSymlinkTargets tarafından güvenilen çalışma alanı skill
sembolik bağlantıları üzerinden yazmasına izin verin. Oluşturulan öneri apply
işlemleri bu paylaşılan skill kökünü değiştirmemeliyse bunu devre dışı tutun.
skills.workshop.maxPendingnumberdefault: 50Çalışma alanı başına saklanan en fazla bekleyen ve karantinaya alınmış öneri sayısı.
skills.workshop.maxSkillBytesnumberdefault: 40000Öneri gövdesinin bayt cinsinden en büyük boyutu. Öneri açıklamaları, keşif ve listeleme çıktısında göründükleri için 160 bayt ile kesin olarak sınırlıdır.
Sembolik bağlantılı skill kökleri
Varsayılan olarak çalışma alanı, proje ajanı, ek dizin ve paketlenmiş skill
kökleri kapsama sınırlarıdır. <workspace>/skills altında kökün dışına çözümlenen
sembolik bağlantılı bir skill klasörü, bir günlük iletisiyle atlanır.
Bilinçli bir sembolik bağlantı düzenine izin vermek için güvenilen hedefi bildirin:
{ 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 apply varsayılan olarak bu sembolik bağlantılar üzerinden yazmaz. Workshop apply işleminin zaten güvenilen sembolik bağlantı hedefleri altındaki skills öğelerini değiştirmesine izin vermek için ayrıca etkinleştirin:
{ skills: { load: { allowSymlinkTargets: ["~/Projects/manager/skills"], }, workshop: { allowSymlinkTargetWrites: true, }, },}Yönetilen ~/.openclaw/skills ve kişisel ~/.agents/skills dizinleri zaten
skill dizini sembolik bağlantılarını kabul eder (skill başına SKILL.md kapsaması
yine de geçerlidir).
Korumalı alana alınmış skills ve env vars
Gizli değerleri bir Docker korumalı alanına şu şekilde geçirin:
{ agents: { defaults: { sandbox: { docker: { env: { GEMINI_API_KEY: "your-key-here" }, }, }, }, },}Yükleme sırası hatırlatıcısı
workspace/skills (highest)workspace/.agents/skills~/.agents/skills~/.openclaw/skillsbundled skillsskills.load.extraDirs (lowest)Skills ve yapılandırma değişiklikleri, izleyici etkinleştirildiğinde bir sonraki yeni oturumda veya izleyici bir değişiklik algıladığında bir sonraki ajan turunda etkili olur.