Skills
Skills
OpenClaw używa kompatybilnych z AgentSkills folderów skillów,
aby nauczyć agenta korzystania z narzędzi. Każdy skill jest katalogiem
zawierającym SKILL.md z frontmatter YAML i instrukcjami. OpenClaw
ładuje wbudowane skille oraz opcjonalne lokalne nadpisania i filtruje je
podczas ładowania na podstawie środowiska, konfiguracji oraz obecności binariów.
Lokalizacje i pierwszeństwo
OpenClaw ładuje skille z tych źródeł, najwyższe pierwszeństwo jako pierwsze:
| # | Źródło | Ścieżka |
|---|---|---|
| 1 | Skille obszaru roboczego | <workspace>/skills |
| 2 | Skille agenta projektu | <workspace>/.agents/skills |
| 3 | Osobiste skille agenta | ~/.agents/skills |
| 4 | Zarządzane/lokalne skille | ~/.openclaw/skills |
| 5 | Wbudowane skille | dostarczane z instalacją |
| 6 | Dodatkowe foldery skillów | skills.load.extraDirs (config) |
Jeśli nazwa skilla koliduje, wygrywa źródło o najwyższym pierwszeństwie.
Natywny katalog $CODEX_HOME/skills Codex CLI nie jest jednym z tych katalogów
głównych skillów OpenClaw. W trybie harness Codex lokalne uruchomienia serwera
aplikacji używają izolowanych katalogów domowych Codex przypisanych do agenta,
więc osobiste skille Codex CLI nie są ładowane niejawnie.
Użyj openclaw migrate codex --dry-run, aby zrobić ich inwentaryzację, oraz
openclaw migrate codex, aby wybrać katalogi skillów za pomocą interaktywnego
monitu z polami wyboru przed skopiowaniem ich do bieżącego obszaru roboczego
agenta OpenClaw. W uruchomieniach nieinteraktywnych powtarzaj --skill <name>
dla dokładnych skillów do skopiowania.
Skille przypisane do agenta i współdzielone
W konfiguracjach multi-agent każdy agent ma własny obszar roboczy:
| Zakres | Ścieżka | Widoczne dla |
|---|---|---|
| Przypisane do agenta | <workspace>/skills |
Tylko tego agenta |
| Agent projektu | <workspace>/.agents/skills |
Tylko agenta tego obszaru roboczego |
| Agent osobisty | ~/.agents/skills |
Wszystkich agentów na tej maszynie |
| Współdzielone zarządzane/lokalne | ~/.openclaw/skills |
Wszystkich agentów na tej maszynie |
| Współdzielone dodatkowe katalogi | skills.load.extraDirs (najniższe pierwszeństwo) |
Wszystkich agentów na tej maszynie |
Ta sama nazwa w wielu miejscach → wygrywa źródło o najwyższym pierwszeństwie. Obszar roboczy ma pierwszeństwo przed agentem projektu, ten przed agentem osobistym, ten przed zarządzanymi/lokalnymi, te przed wbudowanymi, a wbudowane przed dodatkowymi katalogami.
Listy dozwolonych skillów agenta
Lokalizacja skilla i widoczność skilla to osobne mechanizmy kontroli. Lokalizacja/pierwszeństwo decyduje, która kopia skilla o tej samej nazwie wygrywa; listy dozwolonych agenta decydują, których skillów agent może faktycznie używać.
{ agents: { defaults: { skills: ["github", "weather"], }, list: [ { id: "writer" }, // inherits github, weather { id: "docs", skills: ["docs-search"] }, // replaces defaults { id: "locked-down", skills: [] }, // no skills ], },}Reguły list dozwolonych
- Pomiń
agents.defaults.skills, aby domyślnie nie ograniczać skillów. - Pomiń
agents.list[].skills, aby dziedziczyćagents.defaults.skills. - Ustaw
agents.list[].skills: [], aby nie zezwalać na żadne skille. - Niepusta lista
agents.list[].skillsjest ostatecznym zestawem dla tego agenta - nie jest scalana z wartościami domyślnymi. - Efektywna lista dozwolonych obowiązuje przy budowaniu promptu, wykrywaniu poleceń slash skillów, synchronizacji z sandboxem i migawkach skillów.
Pluginy i skille
Pluginy mogą dostarczać własne skille, wymieniając katalogi skills w
openclaw.plugin.json (ścieżki względne wobec katalogu głównego pluginu). Skille pluginu
ładują się, gdy plugin jest włączony. To właściwe miejsce na specyficzne dla narzędzi
instrukcje operacyjne, które są zbyt długie na opis narzędzia, ale powinny być
dostępne zawsze, gdy plugin jest zainstalowany - na przykład plugin przeglądarki
dostarcza skill browser-automation do wieloetapowego sterowania przeglądarką.
Katalogi skillów pluginów są scalane z tą samą ścieżką o niskim pierwszeństwie co
skills.load.extraDirs, więc wbudowany, zarządzany, agentowy lub roboczy skill
o tej samej nazwie je nadpisuje. Możesz je bramkować przez
metadata.openclaw.requires.config we wpisie konfiguracji pluginu.
Zobacz Pluginy, aby poznać wykrywanie/konfigurację, oraz Narzędzia, aby poznać powierzchnię narzędzi, której uczą te skille.
Skill Workshop
Opcjonalny, eksperymentalny plugin Skill Workshop może tworzyć lub aktualizować
skille obszaru roboczego na podstawie procedur wielokrotnego użytku zaobserwowanych podczas pracy agenta. Jest
domyślnie wyłączony i musi zostać jawnie włączony przez
plugins.entries.skill-workshop.
Skill Workshop zapisuje tylko do <workspace>/skills, skanuje wygenerowaną
treść, obsługuje oczekującą akceptację lub automatyczne bezpieczne zapisy, przenosi
niebezpieczne propozycje do kwarantanny i odświeża migawkę skillów po udanych
zapisach, aby nowe skille stały się dostępne bez restartu Gateway.
Używaj go do poprawek takich jak „następnym razem zweryfikuj atrybucję GIF-a” albo trudno wypracowanych przepływów pracy, takich jak listy kontrolne QA mediów. Zacznij od oczekującej akceptacji; używaj automatycznych zapisów tylko w zaufanych obszarach roboczych po przejrzeniu propozycji. Pełny przewodnik: plugin Skill Workshop.
ClawHub (instalacja i synchronizacja)
ClawHub to publiczny rejestr skillów dla OpenClaw.
Używaj natywnych poleceń openclaw skills do odkrywania/instalowania/aktualizowania albo
osobnego CLI clawhub do przepływów publikowania/synchronizacji. Pełny przewodnik:
ClawHub.
| Akcja | Polecenie |
|---|---|
| Zainstaluj skill w obszarze roboczym | openclaw skills install <skill-slug> |
| Zaktualizuj wszystkie zainstalowane skille | openclaw skills update --all |
| Synchronizuj (skanuj + publikuj aktualizacje) | clawhub sync --all |
Natywne openclaw skills install instaluje do katalogu skills/ aktywnego
obszaru roboczego. Osobne CLI clawhub również instaluje do
./skills w bieżącym katalogu roboczym (albo wraca do skonfigurowanego
obszaru roboczego OpenClaw). OpenClaw wykrywa to jako
<workspace>/skills w następnej sesji.
Skonfigurowane katalogi główne skillów obsługują też jeden poziom grupowania, taki jak
skills/<group>/<skill>/SKILL.md, dzięki czemu powiązane skille firm trzecich można
trzymać we współdzielonym folderze bez szerokiego skanowania rekurencyjnego.
Klienci Gateway, którzy potrzebują prywatnego dostarczania poza ClawHub, mogą przygotować archiwum zip skilla
za pomocą skills.upload.begin, skills.upload.chunk i
skills.upload.commit, a następnie zainstalować zatwierdzone przesłanie przez
skills.install({ source: "upload", uploadId, slug, force?, sha256? }). To
jawna ścieżka przesyłania administracyjnego dla zaufanych klientów, a nie normalny
przepływ openclaw skills install <slug> ani instalacja ClawHub. Jest domyślnie wyłączona
i działa tylko wtedy, gdy w openclaw.json ustawiono
skills.install.allowUploadedArchives: true. Tryb przesyłania nadal instaluje do domyślnego obszaru roboczego agenta,
do katalogu skills/<slug>; wewnętrzna nazwa folderu z archiwum jest ignorowana dla
docelowej instalacji.
Strony skillów ClawHub pokazują najnowszy stan skanowania bezpieczeństwa przed instalacją,
z podstronami szczegółów skanerów dla VirusTotal, ClawScan i analizy statycznej.
openclaw skills install <slug> pozostaje wyłącznie ścieżką instalacji; wydawcy
usuwają fałszywe alarmy przez panel ClawHub albo
clawhub skill rescan <slug>.
Bezpieczeństwo
- Wykrywanie skillów obszaru roboczego i dodatkowych katalogów akceptuje tylko katalogi główne skillów oraz pliki
SKILL.md, których rozwiązany realpath pozostaje wewnątrz skonfigurowanego katalogu głównego. - Prywatne instalacje archiwów Gateway są domyślnie wyłączone. Po jawnym włączeniu
wymagają zatwierdzonego przesłania zip zawierającego
SKILL.mdi ponownie używają tych samych zabezpieczeń wyodrębniania archiwów, przechodzenia ścieżek, dowiązań symbolicznych, wymuszania i wycofywania co instalacje skillów ClawHub. Są bramkowane przezskills.install.allowUploadedArchives; normalne instalacje ClawHub nie wymagają tego ustawienia. - Instalacje zależności skillów wspierane przez Gateway (
skills.install, onboarding i UI ustawień Skills) uruchamiają wbudowany skaner niebezpiecznego kodu przed wykonaniem metadanych instalatora. Wynikicriticalsą domyślnie blokowane, chyba że wywołujący jawnie ustawi niebezpieczne nadpisanie; podejrzane wyniki nadal tylko ostrzegają. openclaw skills install <slug>działa inaczej - pobiera folder skilla ClawHub do obszaru roboczego i nie używa powyższej ścieżki metadanych instalatora.skills.entries.*.enviskills.entries.*.apiKeywstrzykują sekrety do procesu hosta dla danej tury agenta (nie do sandboxa). Nie umieszczaj sekretów w promptach ani logach.
Szerszy model zagrożeń i listy kontrolne znajdziesz w Bezpieczeństwo.
Format SKILL.md
SKILL.md musi zawierać co najmniej:
---name: image-labdescription: Generate or edit images via a provider-backed image workflow---OpenClaw przestrzega specyfikacji AgentSkills dotyczącej układu/intencji. Parser używany
przez osadzonego agenta obsługuje tylko jednowierszowe klucze frontmatter;
metadata powinno być jednowierszowym obiektem JSON. Użyj {baseDir} w
instrukcjach, aby odwołać się do ścieżki folderu skilla.
Opcjonalne klucze frontmatter
homepagestringURL widoczny jako „Website” w UI Skills macOS. Obsługiwany również przez metadata.openclaw.homepage.
user-invocablebooleandefault: trueGdy true, skill jest udostępniany jako polecenie slash użytkownika.
disable-model-invocationbooleandefault: falseGdy true, OpenClaw nie umieszcza instrukcji skilla w normalnym
prompcie agenta. Skill nadal jest zainstalowany i nadal można go jawnie uruchomić jako
polecenie slash, gdy user-invocable również ma wartość true.
command-dispatch"tool"Gdy ustawiono na tool, polecenie slash omija model i jest wysyłane bezpośrednio do narzędzia.
command-toolstringNazwa narzędzia do wywołania, gdy ustawiono command-dispatch: tool.
command-arg-mode"raw"default: rawW przypadku wysyłania do narzędzia przekazuje surowy ciąg argumentów do narzędzia (bez parsowania w rdzeniu). Narzędzie jest wywoływane z { command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
Bramkowanie (filtry podczas ładowania)
OpenClaw filtruje skille podczas ładowania przy użyciu metadata (jednowierszowy JSON):
---name: image-labdescription: Generate or edit images via a provider-backed image workflowmetadata: { "openclaw": { "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] }, "primaryEnv": "GEMINI_API_KEY", }, }---Pola pod metadata.openclaw:
alwaysbooleanGdy true, zawsze dołączaj skill (pomiń pozostałe bramki).
emojistringOpcjonalne emoji używane przez interfejs macOS Skills.
homepagestringOpcjonalny URL wyświetlany jako „Witryna” w interfejsie macOS Skills.
os"darwin" | "linux" | "win32"Opcjonalna lista platform. Jeśli jest ustawiona, skill kwalifikuje się tylko na tych systemach operacyjnych.
requires.binsstring[]Każdy element musi istnieć w PATH.
requires.anyBinsstring[]Co najmniej jeden element musi istnieć w PATH.
requires.envstring[]Zmienna środowiskowa musi istnieć albo zostać podana w konfiguracji.
requires.configstring[]Lista ścieżek openclaw.json, które muszą mieć wartość truthy.
primaryEnvstringNazwa zmiennej środowiskowej powiązana z skills.entries.<name>.apiKey.
installobject[]Opcjonalne specyfikacje instalatora używane przez interfejs macOS Skills (brew/node/go/uv/download).
Jeśli metadata.openclaw nie istnieje, skill zawsze się kwalifikuje (chyba że
jest wyłączony w konfiguracji albo zablokowany przez skills.allowBundled dla wbudowanych skills).
Uwagi dotyczące sandboxingu
requires.binsjest sprawdzane na hoście podczas ładowania skill.- Jeśli agent działa w sandboxie, plik binarny musi także istnieć wewnątrz kontenera. Zainstaluj go przez
agents.defaults.sandbox.docker.setupCommand(albo własny obraz).setupCommanduruchamia się raz po utworzeniu kontenera. Instalacje pakietów wymagają także dostępu wychodzącego do sieci, zapisywalnego głównego systemu plików i użytkownika root w sandboxie. - Przykład: skill
summarize(skills/summarize/SKILL.md) potrzebuje CLIsummarizew kontenerze sandboxa, aby tam działać.
Specyfikacje instalatora
---name: geminidescription: Use Gemini CLI for coding assistance and Google search lookups.metadata: { "openclaw": { "emoji": "♊️", "requires": { "bins": ["gemini"] }, "install": [ { "id": "brew", "kind": "brew", "formula": "gemini-cli", "bins": ["gemini"], "label": "Install Gemini CLI (brew)", }, ], }, }---Reguły wyboru instalatora
- Jeśli wymieniono wiele instalatorów, gateway wybiera jedną preferowaną opcję (brew, gdy jest dostępny, w przeciwnym razie node).
- Jeśli wszystkie instalatory to
download, OpenClaw wypisuje każdy wpis, aby można było zobaczyć dostępne artefakty. - Specyfikacje instalatora mogą zawierać
os: ["darwin"|"linux"|"win32"], aby filtrować opcje według platformy. - Instalacje Node honorują
skills.install.nodeManagerwopenclaw.json(domyślnie: npm; opcje: npm/pnpm/yarn/bun). Wpływa to tylko na instalacje skills; środowiskiem uruchomieniowym Gateway nadal powinien być Node - Bun nie jest zalecany dla WhatsApp/Telegram. - Wybór instalatora oparty na Gateway jest sterowany preferencjami: gdy specyfikacje instalacji mieszają rodzaje, OpenClaw preferuje Homebrew, gdy
skills.install.preferBrewjest włączone ibrewistnieje, następnieuv, potem skonfigurowany menedżer node, a następnie inne rozwiązania awaryjne, takie jakgolubdownload. - Jeśli każda specyfikacja instalacji to
download, OpenClaw pokazuje wszystkie opcje pobierania zamiast zwijać je do jednego preferowanego instalatora.
Szczegóły poszczególnych instalatorów
- Instalacje Go: jeśli brakuje
go, abrewjest dostępny, gateway najpierw instaluje Go przez Homebrew i ustawiaGOBINna katalogbinHomebrew, gdy to możliwe. - Instalacje pobierane:
url(wymagane),archive(tar.gz|tar.bz2|zip),extract(domyślnie: automatycznie po wykryciu archiwum),stripComponents,targetDir(domyślnie:~/.openclaw/tools/<skillKey>).
Nadpisania konfiguracji
Wbudowane i zarządzane skills można włączać lub wyłączać oraz dostarczać im wartości środowiskowe
w skills.entries w ~/.openclaw/openclaw.json:
{ skills: { entries: { "image-lab": { enabled: true, apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // or plaintext string env: { GEMINI_API_KEY: "GEMINI_KEY_HERE", }, config: { endpoint: "https://example.invalid", model: "nano-pro", }, }, peekaboo: { enabled: true }, sag: { enabled: false }, }, },}enabledbooleanfalse wyłącza skill, nawet jeśli jest wbudowany albo zainstalowany.
Wbudowany skill coding-agent wymaga jawnego włączenia: ustaw
skills.entries.coding-agent.enabled: true przed udostępnieniem go agentom,
następnie upewnij się, że jeden z claude, codex, opencode lub pi jest zainstalowany i
uwierzytelniony dla własnego CLI.
apiKeystring | { source, provider, id }Ułatwienie dla skills deklarujących metadata.openclaw.primaryEnv. Obsługuje zwykły tekst albo SecretRef.
envRecord<string, string��-�լ���,��r�J0��r�ܳ�'����z7��;��ְ����q�configobjectOpcjonalny worek na niestandardowe pola danego skill. Niestandardowe klucze muszą znajdować się tutaj.
allowBundledstring[]Opcjonalna allowlista tylko dla wbudowanych skills. Jeśli jest ustawiona, kwalifikują się tylko wbudowane skills z listy (zarządzane/workspace skills pozostają bez zmian).
Jeśli nazwa skill zawiera łączniki, ujmij klucz w cudzysłów (JSON5 pozwala na klucze
w cudzysłowie). Klucze konfiguracji domyślnie odpowiadają nazwie skill - jeśli skill
definiuje metadata.openclaw.skillKey, użyj tego klucza w skills.entries.
Wstrzykiwanie środowiska
Gdy rozpoczyna się uruchomienie agenta, OpenClaw:
- Odczytuje metadane skills.
- Stosuje
skills.entries.<key>.enviskills.entries.<key>.apiKeydoprocess.env. - Buduje prompt systemowy z kwalifikującymi się skills.
- Przywraca pierwotne środowisko po zakończeniu uruchomienia.
Wstrzykiwanie środowiska jest ograniczone do uruchomienia agenta, a nie globalnym środowiskiem powłoki.
Dla wbudowanego backendu claude-cli OpenClaw materializuje także ten sam
kwalifikujący się snapshot jako tymczasowy plugin Claude Code i przekazuje go przez
--plugin-dir. Claude Code może wtedy używać swojego natywnego resolvera skills, podczas gdy
OpenClaw nadal odpowiada za precedencję, allowlisty dla agentów, gating oraz
wstrzykiwanie env/klucza API skills.entries.*. Inne backendy CLI używają wyłącznie
katalogu promptów.
Snapshoty i odświeżanie
OpenClaw tworzy snapshot kwalifikujących się skills gdy rozpoczyna się sesja i używa ponownie tej listy w kolejnych turach w tej samej sesji. Zmiany w skills lub konfiguracji zaczynają obowiązywać w następnej nowej sesji.
Skills mogą odświeżyć się w trakcie sesji w dwóch przypadkach:
- Obserwator skills jest włączony.
- Pojawi się nowy kwalifikujący się węzeł zdalny.
Traktuj to jako hot reload: odświeżona lista jest używana w następnej turze agenta. Jeśli efektywna allowlista skills agenta zmieni się dla tej sesji, OpenClaw odświeży snapshot, aby widoczne skills pozostały zgodne z bieżącym agentem.
Obserwator skills
Domyślnie OpenClaw obserwuje foldery skills i podbija snapshot skills,
gdy zmieniają się pliki SKILL.md. Skonfiguruj w skills.load:
{ skills: { load: { extraDirs: ["~/Projects/agent-scripts/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], watch: true, watchDebounceMs: 250, }, },}Użyj allowSymlinkTargets dla celowych układów z sąsiednimi repozytoriami, w których wbudowany
root skill zawiera dowiązanie symboliczne, na przykład
~/.agents/skills/manager -> ~/Projects/manager/skills. Lista celów jest
dopasowywana po rozwiązaniu realpath i powinna pozostać wąska.
Zdalne węzły macOS (Gateway na Linuksie)
Jeśli Gateway działa na Linuksie, ale połączony jest węzeł macOS z dozwolonym
system.run (zabezpieczenie zatwierdzeń Exec nie jest ustawione na deny),
OpenClaw może traktować skills tylko dla macOS jako kwalifikujące się, gdy wymagane
pliki binarne są obecne na tym węźle. Agent powinien wykonywać te skills
przez narzędzie exec z host=node.
Opiera się to na raportowaniu przez węzeł obsługi poleceń oraz na sondzie bin
przez system.which lub system.run. Węzły offline nie sprawiają, że
skills tylko zdalne są widoczne. Jeśli połączony węzeł przestaje odpowiadać na sondy
bin, OpenClaw czyści jego cache dopasowań bin, aby agenci nie widzieli już
skills, których obecnie nie można tam uruchomić.
Wpływ na tokeny
Gdy skills są kwalifikujące się, OpenClaw wstrzykuje zwartą listę XML dostępnych
skills do promptu systemowego (przez formatSkillsForPrompt w
pi-coding-agent). Koszt jest deterministyczny:
- Narzut bazowy (tylko gdy ≥1 skill): 195 znaków.
- Na skill: 97 znaków + długość wartości
<name>,<description>i<location>po escapowaniu XML.
Wzór (znaki):
total = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(location_escaped))Escapowanie XML rozwija & < > " ' do encji (&, < itd.),
zwiększając długość. Liczby tokenów różnią się zależnie od tokenizatora modelu. Przybliżone
oszacowanie w stylu OpenAI to ~4 znaki/token, więc 97 znaków ≈ 24 tokeny na
skill plus rzeczywiste długości pól.
Cykl życia zarządzanych skills
OpenClaw dostarcza bazowy zestaw skills jako wbudowane skills wraz z
instalacją (pakiet npm lub OpenClaw.app). ~/.openclaw/skills istnieje dla
lokalnych nadpisań - na przykład do przypięcia lub spatchowania skill bez
zmieniania wbudowanej kopii. Workspace skills należą do użytkownika i nadpisują
obie opcje w przypadku konfliktów nazw.
Szukasz więcej skills?
Przeglądaj https://clawhub.ai. Pełny schemat konfiguracji: Konfiguracja Skills.
Powiązane
- ClawHub - publiczny rejestr skills
- Tworzenie skills - budowanie niestandardowych skills
- Plugins - omówienie systemu plugin
- Plugin Skill Workshop - generowanie skills z pracy agenta
- Konfiguracja Skills - dokumentacja konfiguracji skill
- Polecenia ukośnikowe - wszystkie dostępne polecenia ukośnikowe