Skills (OpenClaw)
OpenClaw używa folderów umiejętności zgodnych z AgentSkills do uczenia agenta korzystania z narzędzi. Każda umiejętność to katalog zawierającySKILL.md z frontmatter YAML i instrukcjami. OpenClaw ładuje wbudowane Skills oraz opcjonalne lokalne nadpisania i filtruje je podczas ładowania na podstawie środowiska, konfiguracji i obecności binariów.
Lokalizacje i priorytet
OpenClaw ładuje Skills z tych źródeł:- Dodatkowe foldery Skills: konfigurowane przez
skills.load.extraDirs - Wbudowane Skills: dostarczane z instalacją (pakiet npm lub OpenClaw.app)
- Zarządzane/lokalne Skills:
~/.openclaw/skills - Osobiste Skills agenta:
~/.agents/skills - Projektowe Skills agenta:
<workspace>/.agents/skills - Skills workspace:
<workspace>/skills
<workspace>/skills (najwyższy) → <workspace>/.agents/skills → ~/.agents/skills → ~/.openclaw/skills → wbudowane Skills → skills.load.extraDirs (najniższy)
Skills per agent vs współdzielone
W konfiguracjach wieloagentowych każdy agent ma własny workspace. Oznacza to, że:- Skills per agent znajdują się w
<workspace>/skillstylko dla tego agenta. - Projektowe Skills agenta znajdują się w
<workspace>/.agents/skillsi mają zastosowanie do tego workspace przed zwykłym folderemskills/workspace. - Osobiste Skills agenta znajdują się w
~/.agents/skillsi mają zastosowanie we wszystkich workspace na tej maszynie. - Współdzielone Skills znajdują się w
~/.openclaw/skills(zarządzane/lokalne) i są widoczne dla wszystkich agentów na tej samej maszynie. - Współdzielone foldery można też dodać przez
skills.load.extraDirs(najniższy priorytet), jeśli chcesz używać wspólnego pakietu Skills dla wielu agentów.
Allowlisty Skills per agent
Lokalizacja umiejętności i jej widoczność to osobne mechanizmy sterowania.- Lokalizacja/priorytet decyduje, która kopia umiejętności o tej samej nazwie wygrywa.
- Allowlisty agenta decydują, których widocznych Skills agent faktycznie może używać.
agents.defaults.skills jako wspólnej bazy, a następnie nadpisuj per agent przez
agents.list[].skills:
- Pomiń
agents.defaults.skills, aby domyślnie nie ograniczać Skills. - Pomiń
agents.list[].skills, aby dziedziczyćagents.defaults.skills. - Ustaw
agents.list[].skills: [], aby nie mieć żadnych Skills. - Niepusta lista
agents.list[].skillsjest końcowym zestawem dla tego agenta; nie scala się z wartościami domyślnymi.
Plugins + Skills
Plugins mogą dostarczać własne Skills, wymieniając katalogiskills w
openclaw.plugin.json (ścieżki względne względem katalogu głównego pluginu). Skills pluginu ładują się
po włączeniu pluginu. Obecnie te katalogi są scalane do tej samej
ścieżki o niskim priorytecie co skills.load.extraDirs, więc umiejętność o tej samej nazwie zbudowana,
zarządzana, agenta lub workspace ją nadpisze.
Możesz je bramkować przez metadata.openclaw.requires.config we wpisie config
pluginu. Zobacz Plugins, aby poznać wykrywanie/config, oraz Tools, aby zobaczyć
powierzchnię narzędzi, której uczą te Skills.
ClawHub (instalacja + synchronizacja)
ClawHub to publiczny rejestr Skills dla OpenClaw. Przeglądaj go na https://clawhub.ai. Używaj natywnych poleceńopenclaw skills,
aby odkrywać/instalować/aktualizować Skills, albo osobnego CLI clawhub, gdy
potrzebujesz przepływów publikowania/synchronizacji.
Pełny przewodnik: ClawHub.
Typowe przepływy:
- Zainstaluj umiejętność do swojego workspace:
openclaw skills install <skill-slug>
- Zaktualizuj wszystkie zainstalowane Skills:
openclaw skills update --all
- Synchronizuj (skanuj + publikuj aktualizacje):
clawhub sync --all
openclaw skills install instaluje do aktywnego katalogu skills/
workspace. Osobne CLI clawhub także instaluje do ./skills w
bieżącym katalogu roboczym (albo wraca do skonfigurowanego workspace OpenClaw).
OpenClaw wykryje to jako <workspace>/skills przy następnej sesji.
Uwagi dotyczące bezpieczeństwa
- Traktuj Skills firm trzecich jako niezaufany kod. Przeczytaj je przed włączeniem.
- Dla niezaufanych danych wejściowych i ryzykownych narzędzi preferuj uruchomienia w sandboxie. Zobacz Sandboxing.
- Wykrywanie Skills w workspace i extra-dir akceptuje tylko korzenie umiejętności i pliki
SKILL.md, których rozpoznany realpath pozostaje wewnątrz skonfigurowanego korzenia. - Instalacje zależności Skills wykonywane przez Gateway (
skills.install, onboarding i UI ustawień Skills) uruchamiają wbudowany skaner niebezpiecznego kodu przed wykonaniem metadanych instalatora. Znaleziskacriticaldomyślnie blokują działanie, chyba że wywołujący jawnie ustawi niebezpieczne nadpisanie; podejrzane znaleziska nadal tylko ostrzegają. openclaw skills install <slug>działa inaczej: pobiera folder umiejętności z ClawHub do workspace i nie używa opisanej wyżej ścieżki metadanych instalatora.skills.entries.*.enviskills.entries.*.apiKeywstrzykują sekrety do procesu hosta dla tej tury agenta (nie do sandboxa). Trzymaj sekrety poza promptami i logami.- Szerszy model zagrożeń i listy kontrolne znajdziesz w Bezpieczeństwo.
Format (zgodny z AgentSkills + Pi)
SKILL.md musi zawierać co najmniej:
- Stosujemy specyfikację AgentSkills dla układu/intencji.
- Parser używany przez osadzonego agenta obsługuje tylko jednoliniowe klucze frontmatter.
metadatapowinno być jednoliniowym obiektem JSON.- Użyj
{baseDir}w instrukcjach, aby odwołać się do ścieżki folderu umiejętności. - Opcjonalne klucze frontmatter:
-
homepage— URL wyświetlany jako „Website” w UI Skills na macOS (obsługiwany także przezmetadata.openclaw.homepage). -
user-invocable—true|false(domyślnie:true). Gdy ma wartośćtrue, umiejętność jest udostępniana jako slash command użytkownika. -
disable-model-invocation—true|false(domyślnie:false). Gdy ma wartośćtrue, umiejętność jest wykluczana z promptu modelu (nadal dostępna przez wywołanie użytkownika). -
command-dispatch—tool(opcjonalne). Gdy ustawione natool, slash command omija model i jest wysyłane bezpośrednio do narzędzia. -
command-tool— nazwa narzędzia do wywołania, gdy ustawionocommand-dispatch: tool. -
command-arg-mode—raw(domyślnie). Dla wysyłania do narzędzia przekazuje surowy ciąg argumentów do narzędzia (bez parsowania przez rdzeń). Narzędzie jest wywoływane z parametrami:{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
-
Gating (filtry podczas ładowania)
OpenClaw filtruje Skills podczas ładowania przy użyciumetadata (jednoliniowy JSON):
metadata.openclaw:
always: true— zawsze uwzględnia umiejętność (pomija inne bramki).emoji— opcjonalne emoji używane przez UI Skills na macOS.homepage— opcjonalny URL wyświetlany jako „Website” w UI Skills na macOS.os— opcjonalna lista platform (darwin,linux,win32). Jeśli ustawiona, umiejętność jest kwalifikowana tylko na tych systemach.requires.bins— lista; każdy wpis musi istnieć wPATH.requires.anyBins— lista; co najmniej jeden wpis musi istnieć wPATH.requires.env— lista; zmienna env musi istnieć albo być dostarczona w config.requires.config— lista ścieżekopenclaw.json, które muszą mieć wartość truthy.primaryEnv— nazwa zmiennej env powiązana zskills.entries.<name>.apiKey.install— opcjonalna tablica specyfikacji instalatora używana przez UI Skills na macOS (brew/node/go/uv/download).
requires.binsjest sprawdzane na hoście podczas ładowania umiejętności.- Jeśli agent działa w sandboxie, binarium musi także istnieć wewnątrz kontenera.
Zainstaluj je przez
agents.defaults.sandbox.docker.setupCommand(lub własny image).setupCommanduruchamia się raz po utworzeniu kontenera. Instalacje pakietów wymagają też ruchu sieciowego na zewnątrz, zapisywalnego głównego systemu plików oraz użytkownika root w sandboxie. Przykład: umiejętnośćsummarize(skills/summarize/SKILL.md) wymaga CLIsummarizew kontenerze sandboxa, aby mogła tam działać.
- Jeśli wymieniono wiele instalatorów, gateway wybiera jedną preferowaną opcję (brew, gdy dostępne, w przeciwnym razie node).
- Jeśli wszystkie instalatory to
download, OpenClaw wyświetla 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 uwzględniają
skills.install.nodeManagerwopenclaw.json(domyślnie: npm; opcje: npm/pnpm/yarn/bun). Dotyczy to tylko instalacji Skills; runtime Gateway nadal powinien działać na Node (Bun nie jest zalecany dla WhatsApp/Telegram). - Wybór instalatora wykonywany przez Gateway opiera się na preferencjach, a nie tylko na node:
gdy specyfikacje instalacji mieszają różne rodzaje, OpenClaw preferuje Homebrew, jeśli
skills.install.preferBrewjest włączone i istniejebrew, następnieuv, potem skonfigurowany menedżer node, a na końcu inne opcje zapasowe, takie jakgolubdownload. - Jeśli każda specyfikacja instalacji to
download, OpenClaw pokazuje wszystkie opcje pobierania zamiast zwijać je do jednego preferowanego instalatora. - Instalacje Go: jeśli brakuje
go, abrewjest dostępne, gateway najpierw instaluje Go przez Homebrew i ustawiaGOBINnabinHomebrew, gdy to możliwe. - Instalacje przez pobranie:
url(wymagane),archive(tar.gz|tar.bz2|zip),extract(domyślnie: auto po wykryciu archiwum),stripComponents,targetDir(domyślnie:~/.openclaw/tools/<skillKey>).
metadata.openclaw nie jest obecne, umiejętność jest zawsze kwalifikowana (chyba że
zostanie wyłączona w config lub zablokowana przez skills.allowBundled dla wbudowanych Skills).
Nadpisania config (~/.openclaw/openclaw.json)
Wbudowane/zarządzane Skills można przełączać i dostarczać im wartości env:
image_generate z agents.defaults.imageGenerationModel zamiast
wbudowanej umiejętności. Przykłady umiejętności tutaj dotyczą niestandardowych lub zewnętrznych przepływów pracy.
Dla natywnej analizy obrazów użyj narzędzia image z agents.defaults.imageModel.
Dla natywnego generowania/edycji obrazów użyj image_generate z
agents.defaults.imageGenerationModel. Jeśli wybierzesz openai/*, google/*,
fal/* lub inny model obrazów specyficzny dla dostawcy, dodaj także auth/klucz API tego dostawcy.
Klucze config domyślnie odpowiadają nazwie umiejętności. Jeśli umiejętność definiuje
metadata.openclaw.skillKey, użyj tego klucza w skills.entries.
Zasady:
enabled: falsewyłącza umiejętność, nawet jeśli jest wbudowana/zainstalowana.env: wstrzykiwane tylko wtedy, gdy zmienna nie jest już ustawiona w procesie.apiKey: wygodny skrót dla Skills, które deklarująmetadata.openclaw.primaryEnv. Obsługuje zwykły ciąg tekstowy lub obiekt SecretRef ({ source, provider, id }).config: opcjonalny worek na niestandardowe pola per umiejętność; niestandardowe klucze muszą znajdować się tutaj.allowBundled: opcjonalna allowlista tylko dla wbudowanych Skills. Jeśli jest ustawiona, kwalifikowane są tylko wbudowane Skills z listy (zarządzane/Skills workspace pozostają bez zmian).
Wstrzykiwanie środowiska (per uruchomienie agenta)
Gdy zaczyna się uruchomienie agenta, OpenClaw:- Odczytuje metadane umiejętności.
- Stosuje wszelkie
skills.entries.<key>.envlubskills.entries.<key>.apiKeydoprocess.env. - Buduje prompt systemowy z kwalifikowanymi Skills.
- Po zakończeniu uruchomienia przywraca oryginalne środowisko.
Snapshot sesji (wydajność)
OpenClaw tworzy snapshot kwalifikowanych Skills gdy sesja się rozpoczyna i ponownie używa tej listy w kolejnych turach tej samej sesji. Zmiany w Skills lub config zaczynają działać przy następnej nowej sesji. Skills mogą też odświeżać się w trakcie sesji, gdy watcher Skills jest włączony lub gdy pojawi się nowy kwalifikowany zdalny node (patrz niżej). Potraktuj to jako hot reload: odświeżona lista zostanie przejęta przy następnej turze agenta. Jeśli zmieni się efektywna allowlista Skills agenta dla tej sesji, OpenClaw odświeży snapshot, aby widoczne Skills pozostały zgodne z bieżącym agentem.Zdalne node macOS (gateway Linux)
Jeśli Gateway działa na Linux, ale podłączony jest node macOS z dozwolonymsystem.run (bezpieczeństwo zatwierdzeń Exec nie jest ustawione na deny), OpenClaw może traktować umiejętności tylko dla macOS jako kwalifikowane, gdy wymagane binaria są obecne na tym node. Agent powinien wykonywać te Skills przez narzędzie exec z host=node.
To opiera się na raportowaniu obsługi poleceń przez node i na sondzie bin przez system.run. Jeśli node macOS później przejdzie offline, Skills pozostaną widoczne; wywołania mogą kończyć się błędem, dopóki node się nie połączy ponownie.
Watcher Skills (automatyczne odświeżanie)
Domyślnie OpenClaw obserwuje foldery Skills i podbija snapshot Skills, gdy zmieniają się plikiSKILL.md. Skonfiguruj to w skills.load:
Wpływ na tokeny (lista Skills)
Gdy Skills są kwalifikowane, OpenClaw wstrzykuje zwartą listę XML dostępnych Skills do promptu systemowego (przezformatSkillsForPrompt w pi-coding-agent). Koszt jest deterministyczny:
- Narzut bazowy (tylko gdy istnieje ≥1 Skill): 195 znaków.
- Na Skill: 97 znaków + długość wartości
<name>,<description>i<location>po escapowaniu XML.
- Escapowanie XML rozszerza
& < > " 'do encji (&,<itd.), zwiększając długość. - Liczba tokenów zależy od tokenizera modelu. Przybliżony szacunek 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 będące częścią instalacji (pakiet npm lub OpenClaw.app).~/.openclaw/skills istnieje dla lokalnych
nadpisań (na przykład przypięcia/załatania umiejętności bez zmieniania wbudowanej
kopii). Skills workspace należą do użytkownika i przy konfliktach nazw nadpisują oba te źródła.
Dokumentacja config
Zobacz Konfiguracja Skills, aby poznać pełny schemat konfiguracji.Szukasz więcej Skills?
Przeglądaj https://clawhub.ai.Powiązane
- Tworzenie Skills — tworzenie niestandardowych Skills
- Konfiguracja Skills — dokumentacja konfiguracji Skills
- Slash Commands — wszystkie dostępne slash commands
- Plugins — przegląd systemu pluginów