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.

json5
{  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: true

Skill 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: 250

Skill izleyici olayları için milisaniye cinsinden gecikme giderme aralığı.

Kurulum (skills.install)

skills.install.preferBrewbooleandefault: true

brew 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: false

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

json5
{  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: false

Operatö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.commandstring

Gü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: 10000

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

security.installPolicy.exec.noOutputTimeoutMsnumberdefault: timeoutMs

Politika güvenli biçimde reddedilmeden önce stdout veya stderr çıktısı olmadan geçebilecek azami süre.

security.installPolicy.exec.maxOutputBytesnumberdefault: 1048576

Politika 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: 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 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:

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 politika 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: "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.

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    ],  },}
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: false

true 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: false

Skill 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:

json5
{  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:

json5
{  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:

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

Was this useful?
On this page

On this page