Skills
Konfiguracja Skills
Większość konfiguracji Skills znajduje się w skills w
~/.openclaw/openclaw.json. Widoczność właściwa dla agenta znajduje się w
agents.defaults.skills i agents.list[].skills.
{ 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: "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 }, }, },}Ładowanie (skills.load)
skills.load.extraDirsstring[]Dodatkowe katalogi Skills do przeskanowania, o najniższym priorytecie (poniżej
wbudowanych Skills i Skills Pluginów). Ścieżki są rozwijane z obsługą ~.
skills.load.allowSymlinkTargetsstring[]Zaufane rzeczywiste katalogi docelowe, do których mogą prowadzić dowiązania
symboliczne folderów Skills, nawet jeśli dowiązanie znajduje się poza skonfigurowanym
katalogiem głównym. Należy używać tej opcji w celowych układach sąsiednich repozytoriów,
takich jak <workspace>/skills/manager -> ~/Projects/manager/skills. Lista powinna być
ograniczona — nie należy wskazywać szerokich katalogów głównych, takich jak ~ lub ~/Projects.
skills.load.watchbooleandefault: trueObserwuje foldery Skills i odświeża migawkę Skills po zmianie plików
SKILL.md. Obejmuje zagnieżdżone pliki w zgrupowanych katalogach głównych Skills.
skills.load.watchDebounceMsnumberdefault: 250Okno eliminacji drgań dla zdarzeń obserwatora Skills, w milisekundach.
Instalacja (skills.install)
skills.install.preferBrewbooleandefault: truePreferuje instalatory Homebrew, gdy dostępne jest brew.
skills.install.nodeManager"npm" | "pnpm" | "yarn" | "bun"default: "npm"Preferowany menedżer pakietów Node do instalowania Skills. Wpływa to tylko na
instalacje Skills — CLI OpenClaw i środowisko wykonawcze Gateway wymagają Node, ponieważ
kanoniczny magazyn stanu używa node:sqlite. openclaw setup --node-manager i
openclaw onboard --node-manager akceptują npm, pnpm lub bun; dla
instalacji Skills opartych na Yarn należy ustawić bezpośrednio "yarn" w konfiguracji.
skills.install.allowUploadedArchivesbooleandefault: falseZezwala zaufanym klientom Gateway operator.admin na instalowanie prywatnych
archiwów zip przygotowanych za pośrednictwem skills.upload.*. Zwykłe instalacje
ClawHub nie wymagają tego ustawienia.
Zasady instalacji operatora (security.installPolicy)
Należy używać security.installPolicy, gdy operatorzy potrzebują zaufanego polecenia lokalnego do
zatwierdzania lub blokowania instalacji Skills i Pluginów zgodnie z zasadami właściwymi dla
hosta. Zasady są uruchamiane po przygotowaniu materiału źródłowego przez OpenClaw, a przed
kontynuowaniem instalacji lub aktualizacji. Dotyczą Skills z ClawHub, przesłanych Skills,
Skills z Git/lokalnych, instalatorów zależności Skills oraz źródeł instalacji i aktualizacji
Pluginów.
{ security: { installPolicy: { enabled: true, // Pomiń targets, aby objąć wszystkie obsługiwane cele. 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: falseWłącza zasady instalacji należące do operatora. Po włączeniu bez prawidłowego polecenia
exec instalacje są bezpiecznie blokowane.
security.installPolicy.targets("skill" | "plugin")[]Opcjonalny filtr celów. Jeśli zostanie pominięty, zasady dotyczą każdego obsługiwanego celu, dzięki czemu nowe instalacje nie zostaną nieoczekiwanie dopuszczone.
security.installPolicy.exec.commandstringBezwzględna ścieżka do zaufanego pliku wykonywalnego zasad. OpenClaw uruchamia go bez powłoki i weryfikuje ścieżkę przed użyciem.
security.installPolicy.exec.argsstring[]Statyczne argumenty przekazywane po command.
security.installPolicy.exec.timeoutMsnumberdefault: 10000Maksymalny rzeczywisty czas wykonywania jednej decyzji zasad.
security.installPolicy.exec.noOutputTimeoutMsnumberdefault: timeoutMsMaksymalny czas bez danych wyjściowych stdout lub stderr, po którym zasady bezpiecznie blokują operację.
security.installPolicy.exec.maxOutputBytesnumberdefault: 1048576Maksymalna łączna liczba bajtów stdout i stderr akceptowana od procesu zasad.
security.installPolicy.exec.envRecord<string, string>Literałowe zmienne środowiskowe przekazywane do procesu zasad.
security.installPolicy.exec.passEnvstring[]Nazwy zmiennych środowiskowych kopiowanych z procesu OpenClaw do procesu zasad. Przekazywane są tylko wymienione zmienne.
security.installPolicy.exec.trustedDirsstring[]Opcjonalna lista dozwolonych katalogów, które mogą zawierać plik wykonywalny zasad.
security.installPolicy.exec.allowInsecurePathbooleandefault: falsePomija kontrole własności i uprawnień ścieżki polecenia. Należy używać tylko wtedy, gdy ścieżka jest chroniona przez inny mechanizm.
security.installPolicy.exec.allowSymlinkCommandbooleandefault: falseZezwala, aby skonfigurowana ścieżka polecenia była dowiązaniem symbolicznym. Rozwiązany cel nadal musi spełniać pozostałe kontrole ścieżki. Argumenty skryptu interpretera muszą być bezpośrednimi zwykłymi plikami, a nie dowiązaniami symbolicznymi.
Zasady otrzymują na stdin jeden obiekt JSON zawierający protocolVersion: 1,
openclawVersion, targetType, targetName, sourcePath, sourcePathKind,
opcjonalne ustrukturyzowane source, ustrukturyzowane origin oraz request. Muszą
zapisać na stdout jeden obiekt JSON: { "protocolVersion": 1, "decision": "allow" }
lub { "protocolVersion": 1, "decision": "block", "reason": "..." }. Niezerowy
kod wyjścia, przekroczenie limitu czasu, nieprawidłowy JSON, brakujące pola lub nieobsługiwane wersje
protokołu powodują bezpieczne zablokowanie operacji.
OpenClaw nie wykonuje zasad instalacji podczas zwykłego uruchamiania Gateway.
Instalacje i aktualizacje są bezpiecznie blokowane, gdy zasady są włączone, ale niedostępne.
openclaw doctor wykonuje walidację statyczną; openclaw doctor --deep
wykonuje syntetyczną próbę instalacji przy użyciu skonfigurowanego polecenia.
Aktualizacje zbiorcze stosują zasady osobno dla każdego celu: zablokowana aktualizacja Skill lub Pluginu kończy się niepowodzeniem dla tego celu, bez wyłączania zasad ani pomijania kolejnych celów w partii.
Przykładowe dane 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:[email protected]" }, "skill": { "installId": "clawhub" }}Minimalne polecenie zasad:
#!/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: "lokalne ścieżki Pluginów nie są zatwierdzone na tym hoście", }), ); return; } process.stdout.write(JSON.stringify({ protocolVersion: 1, decision: "allow" }));});Lista dozwolonych wbudowanych Skills
skills.allowBundledstring[]Opcjonalna lista dozwolonych wyłącznie dla wbudowanych Skills. Po jej ustawieniu kwalifikują się tylko wbudowane Skills znajdujące się na liście. Nie wpływa to na zarządzane Skills ani Skills na poziomie agenta i obszaru roboczego.
Wpisy poszczególnych Skills (skills.entries)
Klucze w entries domyślnie odpowiadają name Skill. Jeśli Skill definiuje
metadata.openclaw.skillKey, należy użyć tego klucza. Nazwy z łącznikami należy ująć
w cudzysłowy (JSON5 zezwala na klucze w cudzysłowach).
skills.entries.<key>.enabledbooleanfalse wyłącza Skill, nawet jeśli jest wbudowany lub zainstalowany.
Wbudowany Skill coding-agent wymaga jawnego włączenia — należy ustawić go na true i upewnić się, że
claude, codex, opencode lub inny obsługiwany CLI jest zainstalowany i
uwierzytelniony.
skills.entries.<key>.apiKeystring | { source, provider, id }Pole pomocnicze dla Skills deklarujących metadata.openclaw.primaryEnv.
Obsługuje ciąg tekstowy w postaci jawnej lub SecretRef: { source: "env", provider: "default", id: "VAR_NAME" }.
skills.entries.<key>.envRecord<string, string>Zmienne środowiskowe wstrzykiwane na potrzeby uruchomienia agenta. Są wstrzykiwane tylko wtedy, gdy zmienna nie jest jeszcze ustawiona w procesie.
skills.entries.<key>.configobjectOpcjonalny zbiór niestandardowych pól konfiguracji dla poszczególnych Skills.
Listy dozwolonych Skills agentów (agents)
Konfiguracji agenta należy używać, gdy mają obowiązywać te same katalogi główne Skills maszyny lub obszaru roboczego, ale inny zestaw widocznych Skills dla każdego agenta.
{ agents: { defaults: { skills: ["github", "weather"], // wspólna wartość bazowa }, list: [ { id: "writer" }, // dziedziczy github, weather { id: "docs", skills: ["docs-search"] }, // całkowicie zastępuje wartości domyślne { id: "locked-down", skills: [] }, // bez Skills ], },}agents.defaults.skillsstring[]Wspólna bazowa lista dozwolonych dziedziczona przez agentów, którzy pomijają
agents.list[].skills. Aby domyślnie nie ograniczać Skills, należy całkowicie
pominąć to pole.
agents.list[].skillsstring[]Jawny końcowy zestaw Skills dla danego agenta. Jawne listy zastępują
odziedziczone wartości domyślne — nie są z nimi scalane. Ustawienie [] powoduje, że
żadne Skills nie są udostępniane temu agentowi.
Warsztat (skills.workshop)
skills.workshop.autonomous.enabledbooleandefault: falseGdy true, OpenClaw może tworzyć oczekujące propozycje na podstawie trwałych korekt
oraz przeglądać pomyślnie ukończone, znaczące zadania po przejściu systemu
w stan bezczynności. Może to spowodować uruchomienie modelu w tle po kwalifikujących się turach. Inicjowane przez użytkownika
tworzenie umiejętności oraz /learn nadal działają, gdy ustawienie ma wartość false.
Informacje o kryteriach kwalifikacji, prywatności, kosztach, uprawnieniach ograniczonych do propozycji i rozwiązywaniu problemów zawiera sekcja Samouczenie.
skills.workshop.approvalPolicy"pending" | "auto"default: "auto"auto zezwala na inicjowane przez agenta zastosowanie, odrzucenie lub poddanie kwarantannie bez
dodatkowego monitu o zatwierdzenie. pending wymaga zatwierdzenia przez operatora.
skills.workshop.allowSymlinkTargetWritesbooleandefault: falseZezwala funkcji Skill Workshop na zapisywanie za pośrednictwem dowiązań symbolicznych umiejętności w obszarze roboczym, których
rzeczywisty cel jest już zaufany zgodnie z skills.load.allowSymlinkTargets. To ustawienie należy pozostawić
wyłączone, chyba że zastosowanie wygenerowanych propozycji ma modyfikować ten współdzielony
katalog główny umiejętności.
skills.workshop.maxPendingnumberdefault: 50Maksymalna liczba oczekujących i poddanych kwarantannie propozycji przechowywanych w każdym obszarze roboczym (dozwolony zakres: 1-200).
skills.workshop.maxSkillBytesnumberdefault: 40000Maksymalny rozmiar treści propozycji w bajtach (dozwolony zakres: 1024-200000). Opisy propozycji mają osobny bezwzględny limit 160 bajtów, ponieważ pojawiają się w danych wyjściowych wykrywania i listowania.
Informacje o cyklu życia propozycji, poleceniach CLI, parametrach narzędzi agenta i metodach Gateway kontrolowanych przez tę konfigurację zawiera sekcja Skill Workshop.
Katalogi główne umiejętności z dowiązaniami symbolicznymi
Domyślnie katalogi główne umiejętności obszaru roboczego, agenta projektu, dodatkowych katalogów i umiejętności wbudowanych stanowią
granice zawierania. Folder umiejętności z dowiązaniem symbolicznym w <workspace>/skills,
który wskazuje poza katalog główny, jest pomijany, a informacja o tym trafia do dziennika.
Aby zezwolić na celowy układ dowiązań symbolicznych, należy zadeklarować zaufany cel:
{ skills: { load: { extraDirs: ["~/Projects/manager/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], }, },}Przy tej konfiguracji <workspace>/skills/manager -> ~/Projects/manager/skills
jest akceptowane po rozwiązaniu ścieżki rzeczywistej. extraDirs skanuje bezpośrednio sąsiednie repozytorium;
allowSymlinkTargets zachowuje ścieżkę z dowiązaniem symbolicznym dla istniejących
układów.
Domyślnie zastosowanie propozycji przez Skill Workshop nie zapisuje za pośrednictwem tych dowiązań symbolicznych. Aby umożliwić funkcji Workshop modyfikowanie umiejętności w już zaufanych celach dowiązań symbolicznych, należy włączyć tę opcję osobno:
{ skills: { load: { allowSymlinkTargets: ["~/Projects/manager/skills"], }, workshop: { allowSymlinkTargetWrites: true, }, },}Zarządzane katalogi ~/.openclaw/skills i osobiste katalogi ~/.agents/skills
już bezwarunkowo akceptują dowiązania symboliczne katalogów umiejętności (nadal obowiązuje zawieranie
SKILL.md dla każdej umiejętności) — allowSymlinkTargets jest potrzebne tylko
dla katalogów głównych obszaru roboczego, dodatkowych katalogów i agenta projektu (<workspace>/.agents/skills).
Umiejętności w piaskownicy i zmienne środowiskowe
Sekrety można przekazać do piaskownicy Docker za pomocą:
{ agents: { defaults: { sandbox: { docker: { env: { GEMINI_API_KEY: "your-key-here" }, }, }, }, },}Przypomnienie o kolejności ładowania
workspace/skills (najwyższy priorytet)workspace/.agents/skills~/.agents/skills~/.openclaw/skillswbudowane umiejętnościskills.load.extraDirs (najniższy priorytet)Zmiany umiejętności i konfiguracji zaczynają obowiązywać w następnej nowej sesji, gdy obserwator jest włączony, lub w następnej turze agenta, gdy obserwator wykryje zmianę.
Powiązane
Czym są umiejętności, kolejność ładowania, kontrola dostępu i format SKILL.md.
Tworzenie niestandardowych umiejętności obszaru roboczego.
Kolejka propozycji umiejętności opracowanych przez agenta.
Zachowawcze, opcjonalne propozycje na podstawie ukończonych zadań.
Natywny katalog poleceń z ukośnikiem i dyrektywy czatu.