Skills
Skills yapılandırması
Skills yapılandırmasının büyük bölümü
~/.openclaw/openclaw.json içindeki skills altında bulunur. Ajana ö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[]En düşük öncelikle (paketle gelen ve Plugin Skills öğelerinin altında)
taranacak ek Skill dizinleri. 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ü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: trueSkill klasörlerini izler ve SKILL.md dosyaları değiştiğinde Skills
anlık görüntüsünü yeniler. Gruplanmış Skill kökleri altındaki iç içe dosyaları kapsar.
skills.load.watchDebounceMsnumberdefault: 250Skill izleyici olayları için milisaniye cinsinden gecikme giderme aralığı.
Kurulum (skills.install)
skills.install.preferBrewbooleandefault: truebrew kullanılabilir olduğunda Homebrew kurucularını tercih eder.
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
(WhatsApp/Telegram için Bun önerilmez). openclaw setup --node-manager ve
openclaw onboard --node-manager, npm, pnpm veya bun değerlerini kabul eder;
Yarn tabanlı Skill kurulumları için yapılandırmada doğrudan "yarn" ayarlayın.
skills.install.allowUploadedArchivesbooleandefault: falseGüvenilir operator.admin Gateway istemcilerinin skills.upload.* üzerinden
hazırlanmış özel zip arşivlerini kurmasına izin verir. Normal ClawHub
kurulumları bu ayara ihtiyaç duymaz.
Operatör Kurulum Politikası (security.installPolicy)
Operatörlerin Skill ve Plugin kurulumlarını ana makineye özgü politikayla
onaylamak veya engellemek için güvenilir bir yerel komuta ihtiyaç duyduğu durumlarda
security.installPolicy kullanın. Politika, OpenClaw kaynak materyalini hazırladıktan
sonra ve kurulum ya da 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örün yönettiği kurulum politikasını etkinleştirir. Geçerli bir exec
komutu olmadan etkinleştirildiğinde kurulumlar güvenli biçimde reddedilir.
security.installPolicy.targets("skill" | "plugin")[]İsteğe bağlı hedef filtresi. Belirtilmediğinde politika, yeni kurulumların beklenmedik biçimde açık kalmaması için desteklenen her hedefe uygulanır.
security.installPolicy.exec.commandstringGüvenilir politika yürütülebilir dosyasının mutlak yolu. OpenClaw bunu kabuk olmadan çalıştırır ve kullanmadan önce yolu doğrular.
security.installPolicy.exec.argsstring[]command sonrasında geçirilen statik bağımsız değişkenler.
security.installPolicy.exec.timeoutMsnumberdefault: 10000Tek bir politika kararı için azami gerçek zaman çalışma süresi.
security.installPolicy.exec.noOutputTimeoutMsnumberdefault: timeoutMsPolitika güvenli biçimde reddedilmeden önce stdout veya stderr çıktısı olmadan geçebilecek azami süre.
security.installPolicy.exec.maxOutputBytesnumberdefault: 1048576Politika sürecinden kabul edilen birleşik stdout ve stderr baytlarının azami sayısı.
security.installPolicy.exec.env"Record<string,security.installPolicy.exec.passEnvstring[]OpenClaw sürecinden politika sürecine kopyalanan ortam değişkeni adları. Yalnızca adı belirtilen değişkenler geçirilir.
security.installPolicy.exec.trustedDirsstring[]Politika 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 mekanizmayla korunuyorsa kullanın.
security.installPolicy.exec.allowSymlinkCommandbooleandefault: falseYapılandırılmış komut yolunun sembolik bağlantı olmasına izin verir. Çözümlenen hedef yine diğer yol denetimlerini karşılamalıdır. Yorumlayıcı betiği bağımsız değişkenleri sembolik bağlantılar değil, doğrudan normal dosyalar olmalıdır.
Politika, 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'a
tek bir JSON nesnesi yazmalıdır: { "protocolVersion": 1, "decision": "allow" }
veya { "protocolVersion": 1, "decision": "block", "reason": "..." }. Sıfır
olmayan çıkış kodu, zaman aşımı, hatalı biçimlendirilmiş JSON, eksik alanlar veya
desteklenmeyen protokol sürümleri güvenli biçimde reddedilir.
OpenClaw, normal Gateway başlatma sırasında kurulum politikasını yürütmez.
Politika etkin ancak kullanılamaz olduğunda kurulumlar ve güncellemeler güvenli
biçimde reddedilir. openclaw doctor statik doğrulama gerçekleştirir;
openclaw doctor --deep, yapılandırılmış komuta karşı yapay bir kurulum
sondası yürütür.
Toplu güncellemeler politikayı hedef başına uygular: engellenen bir Skill veya Plugin güncellemesi, politikayı devre dışı bırakmadan veya gruptaki sonraki hedefleri atlamadan ilgili 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 politika 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 Skills 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 kullanılabilir olur. Yönetilen, ajan düzeyindeki ve çalışma alanındaki 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 bunun yerine o anahtarı
kullanın. Kısa çizgi içeren 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 ya da 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₫��ܩAjan izin listeleri (agents)
Aynı makine/çalışma alanı Skill köklerini ancak ajan başına farklı görünür Skill kümesini istediğinizde ajan 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 belirtmeyen ajanların devraldığı ortak temel izin
listesi. Skills öğelerini varsayılan olarak kısıtlamamak için tamamen
belirtmeyin.
agents.list[].skillsstring[]İlgili ajan için açıkça belirtilmiş nihai Skill kümesi. Açık listeler,
devralınan varsayılanların yerine geçer; birleştirilmez. İlgili ajana
hiçbir Skill sunmamak için [] olarak ayarlayın.
Workshop (skills.workshop)
skills.workshop.autonomous.enabledbooleandefault: falsetrue olduğunda aracılar, başarılı turlardan sonra kalıcı konuşma
sinyallerinden bekleyen öneriler oluşturabilir. Kullanıcı tarafından istenen Skills
oluşturma işlemi, bu ayardan bağımsız olarak her zaman Skill Workshop
üzerinden gerçekleştirilir.
skills.workshop.approvalPolicy"pending" | "auto"default: "pending"pending, aracı tarafından başlatılan uygulama, reddetme veya karantinaya
alma işlemlerinden önce operatör onayı gerektirir. auto, bu işlemlere onay
olmadan izin verir.
skills.workshop.allowSymlinkTargetWritesbooleandefault: falseSkill Workshop uygulamasının, gerçek hedefi skills.load.allowSymlinkTargets
tarafından zaten güvenilir kabul edilen çalışma alanı Skills sembolik
bağlantıları üzerinden yazmasına izin verir. Oluşturulan önerilerin
uygulanması bu paylaşılan Skills kökünü değiştirmemeliyse bunu devre dışı
bırakın.
skills.workshop.maxPendingnumberdefault: 50Çalışma alanı başına saklanan bekleyen ve karantinaya alınmış önerilerin azami sayısıdır (izin verilen aralık: 1-200).
skills.workshop.maxSkillBytesnumberdefault: 40000Öneri gövdesinin bayt cinsinden azami boyutudur (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ı, aracı araç parametreleri ve Gateway yöntemleri için Skill Workshop sayfasına bakın.
Sembolik bağlantılı Skills kökleri
Varsayılan olarak çalışma alanı, proje aracısı, ek dizin ve paketle gelen Skills
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 Skills klasörü, bir günlük iletisiyle
atlanır.
Kasıtlı bir sembolik bağlantı düzenine izin vermek için güvenilir hedefi bildirin:
{ skills: { load: { extraDirs: ["~/Projects/manager/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], }, },}Bu yapılandırmayla <workspace>/skills/manager -> ~/Projects/manager/skills,
gerçek yol çö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 kabul edilen sembolik bağlantı hedefleri altındaki Skills'i 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, Skills
dizini sembolik bağlantılarını zaten koşulsuz olarak kabul eder (Skills başına
SKILL.md kapsaması yine geçerlidir) — allowSymlinkTargets yalnızca çalışma
alanı, ek dizin ve proje aracısı (<workspace>/.agents/skills) kökleri için
gereklidir.
Korumalı alandaki Skills ve ortam değişkenleri
Gizli bilgileri bir Docker korumalı alanına şu şekilde aktarın:
{ agents: { defaults: { sandbox: { docker: { env: { GEMINI_API_KEY: "your-key-here" }, }, }, }, },}Yükleme sırası hatırlatması
workspace/skills (en yüksek)workspace/.agents/skills~/.agents/skills~/.openclaw/skillspaketle gelen Skillsskills.load.extraDirs (en düşük)İzleyici etkinleştirildiğinde Skills ve yapılandırma değişiklikleri bir sonraki yeni oturumda ya da izleyici bir değişiklik algıladığında bir sonraki aracı turunda geçerli olur.
İlgili
Skills'in ne olduğu, yükleme sırası, erişim denetimi ve SKILL.md biçimi.
Özel çalışma alanı Skills'i yazma.
Aracı tarafından taslak hâline getirilen Skills için öneri kuyruğu.
Yerel eğik çizgi komutu kataloğu ve sohbet yönergeleri.