Umiejętności (OpenClaw)
OpenClaw używa folderów skills zgodnych z AgentSkills do uczenia agenta korzystania z narzędzi. Każdy skill jest katalogiem zawierającymSKILL.md z frontmatterem YAML oraz instrukcjami. OpenClaw ładuje dołączone skills oraz opcjonalne lokalne nadpisania i filtruje je w czasie ładowania na podstawie środowiska, konfiguracji i obecności binariów.
Lokalizacje i priorytety
Skills są ładowane z trzech miejsc:- Dołączone skills: dostarczane wraz z instalacją (pakiet npm lub OpenClaw.app)
- Zarządzane/lokalne skills:
~/.openclaw/skills - Skills obszaru roboczego:
<workspace>/skills
<workspace>/skills (najwyższy) → ~/.openclaw/skills → dołączone skills (najniższy)
Dodatkowo możesz skonfigurować dodatkowe foldery skills (najniższy priorytet) przez
skills.load.extraDirs w ~/.openclaw/openclaw.json.
Skills per-agent vs współdzielone
W konfiguracjach wieloagentowych każdy agent ma własny obszar roboczy. Oznacza to:- Skills per-agent znajdują się w
<workspace>/skillswyłącznie dla tego agenta. - Skills współdzielone 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 przez wielu agentów.
Wtyczki + skills
Wtyczki mogą dostarczać własne skills, wskazując katalogiskills w
openclaw.plugin.json (ścieżki względne względem katalogu głównego wtyczki). Skills wtyczek są ładowane,
gdy wtyczka jest włączona, i podlegają standardowym regułom priorytetów skills.
Możesz je bramkować przez metadata.openclaw.requires.config w wpisie konfiguracji wtyczki. Zobacz Plugins w zakresie wykrywania/konfiguracji oraz Tools w zakresie
powierzchni narzędzi, których te skills uczą.
ClawHub (instalacja + synchronizacja)
ClawHub to publiczny rejestr skills dla OpenClaw. Przeglądaj na https://clawhub.com. Użyj go do odkrywania, instalowania, aktualizowania i tworzenia kopii zapasowych skills. Pełny przewodnik: ClawHub. Wspólne przepływy:- Instalacja skilla do obszaru roboczego:
clawhub install <skill-slug>
- Aktualizacja wszystkich zainstalowanych skills:
clawhub update --all
- Synchronizacja (skanowanie + publikowanie aktualizacji):
clawhub sync --all
clawhub instaluje do ./skills w bieżącym katalogu roboczym
(lub używa skonfigurowanego obszaru roboczego OpenClaw). OpenClaw wykrywa to jako
<workspace>/skills w następnej sesji.
Uwagi dotyczące bezpieczeństwa
- Traktuj skills firm trzecich jako niezaufany kod. Przeczytaj je przed włączeniem.
- Preferuj uruchomienia w sandbox dla niezaufanych danych wejściowych i ryzykownych narzędzi. Zobacz Sandboxing.
skills.entries.*.enviskills.entries.*.apiKeywstrzykują sekrety do procesu hosta dla danej tury agenta (nie do sandboxa). Trzymaj sekrety poza promptami i logami.- Aby zapoznać się z szerszym modelem zagrożeń i checklistami, zobacz Security.
Format (AgentSkills + zgodny z Pi)
SKILL.md musi zawierać co najmniej:
- Stosujemy specyfikację AgentSkills w zakresie układu i intencji.
- Parser używany przez osadzonego agenta obsługuje wyłącznie klucze frontmatteru jednolinijkowe.
metadatapowinno być jednolinijkowym obiektem JSON.- Używaj
{baseDir}w instrukcjach, aby odwoływać się do ścieżki folderu skilla. - Opcjonalne klucze frontmatteru:
-
homepage— URL prezentowany jako „Website” w interfejsie Skills na macOS (obsługiwane również przezmetadata.openclaw.homepage). -
user-invocable—true|false(domyślnie:true). Gdytrue, skill jest udostępniany jako komenda ukośnikowa użytkownika. -
disable-model-invocation—true|false(domyślnie:false). Gdytrue, skill jest wykluczony z promptu modelu (nadal dostępny przez wywołanie użytkownika). -
command-dispatch—tool(opcjonalne). Gdy ustawione natool, komenda ukośnikowa omija model i jest bezpośrednio przekazywana do narzędzia. -
command-tool— nazwa narzędzia do wywołania, gdy ustawionocommand-dispatch: tool. -
command-arg-mode—raw(domyślnie). Dla dyspozycji narzędzia przekazuje surowy ciąg argumentów do narzędzia (bez parsowania po stronie core). Narzędzie jest wywoływane z parametrami:{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
-
Bramkowanie (filtry czasu ładowania)
OpenClaw filtruje skills w czasie ładowania przy użyciumetadata (jednolinijkowy JSON):
metadata.openclaw:
always: true— zawsze uwzględnia skill (pomija inne bramki).emoji— opcjonalna emoji używana przez interfejs Skills na macOS.homepage— opcjonalny URL wyświetlany jako „Website” w interfejsie Skills na macOS.os— opcjonalna lista platform (darwin,linux,win32). Jeśli ustawiona, skill jest kwalifikowany wyłącznie na tych systemach operacyjnych.requires.bins— lista; każdy element musi istnieć naPATH.requires.anyBins— lista; co najmniej jeden element musi istnieć naPATH.requires.env— lista; zmienna środowiskowa musi istnieć lub być podana w konfiguracji.requires.config— lista ścieżekopenclaw.json, które muszą być prawdziwe.primaryEnv— nazwa zmiennej środowiskowej powiązana zskills.entries.<name>.apiKey.install— opcjonalna tablica specyfikacji instalatorów używanych przez interfejs Skills na macOS (brew/node/go/uv/download).
requires.binsjest sprawdzane na hoście w czasie ładowania skilla.- Jeśli agent działa w sandboxie, binarium musi również istnieć wewnątrz kontenera.
Zainstaluj je przez
agents.defaults.sandbox.docker.setupCommand(lub niestandardowy obraz).setupCommanduruchamia się raz po utworzeniu kontenera. Instalacje pakietów wymagają także wyjścia sieciowego, zapisywalnego głównego systemu plików oraz użytkownika root w sandboxie. Przykład: skillsummarize(skills/summarize/SKILL.md) wymaga CLIsummarizew kontenerze sandboxa, aby działać w nim.
- Jeśli podano wiele instalatorów, Gateway wybiera jedną preferowaną opcję (brew, gdy dostępny, w przeciwnym razie node).
- Jeśli wszystkie instalatory są
download, OpenClaw wyświetla każdą pozycję, aby było widać dostępne artefakty. - Specyfikacje instalatorów 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). Dotyczy to wyłącznie instalacji skills; środowisko uruchomieniowe Gateway nadal powinno być Node (Bun nie jest zalecany dla WhatsApp/Telegram). - Instalacje Go: jeśli brakuje
go, abrewjest dostępne, Gateway najpierw instaluje Go przez Homebrew i ustawiaGOBINnabinHomebrew, gdy to możliwe. - Instalacje typu download:
url(wymagane),archive(tar.gz|tar.bz2|zip),extract(domyślnie: auto, gdy wykryto archiwum),stripComponents,targetDir(domyślnie:~/.openclaw/tools/<skillKey>).
metadata.openclaw, skill jest zawsze kwalifikowany (chyba że
wyłączony w konfiguracji lub zablokowany przez skills.allowBundled dla dołączonych skills).
Nadpisania konfiguracji (~/.openclaw/openclaw.json)
Dołączone/zarządzane skills można przełączać oraz dostarczać im wartości środowiskowe:
metadata.openclaw.skillKey, użyj tego klucza pod skills.entries.
Zasady:
enabled: falsewyłącza skill nawet jeśli jest dołączony/zainstalowany.env: wstrzykiwane tylko jeśli zmienna nie jest już ustawiona w procesie.apiKey: ułatwienie dla skills deklarującychmetadata.openclaw.primaryEnv.config: opcjonalny worek na niestandardowe pola per-skill; niestandardowe klucze muszą się tu znajdować.allowBundled: opcjonalna lista dozwolonych wyłącznie dla dołączonych skills. Jeśli ustawiona, kwalifikują się tylko dołączone skills z listy (zarządzane/obszaru roboczego nie są dotknięte).
Wstrzykiwanie środowiska (na uruchomienie agenta)
Gdy rozpoczyna się uruchomienie agenta, OpenClaw:- Odczytuje metadane skills.
- Stosuje wszelkie
skills.entries.<key>.envlubskills.entries.<key>.apiKeydoprocess.env. - Buduje prompt systemowy z kwalifikującymi się skills.
- Przywraca oryginalne środowisko po zakończeniu uruchomienia.
Migawka sesji (wydajność)
OpenClaw tworzy migawkę kwalifikujących się skills w momencie startu sesji i używa tej listy dla kolejnych tur w tej samej sesji. Zmiany w skills lub konfiguracji zaczynają obowiązywać od kolejnej nowej sesji. Skills mogą również odświeżać się w trakcie sesji, gdy włączony jest watcher skills lub gdy pojawi się nowy kwalifikujący się zdalny węzeł (zob. niżej). Traktuj to jako hot reload: odświeżona lista jest używana przy następnej turze agenta.Zdalne węzły macOS (Gateway na Linuxie)
Jeśli Gateway działa na Linuxie, ale podłączony jest węzeł macOS z dozwolonymsystem.run
(zabezpieczenia Exec approvals nie ustawione na deny), OpenClaw może traktować
skills wyłącznie dla macOS jako kwalifikujące się, gdy wymagane binaria są obecne na tym węźle. Agent powinien wykonywać te skills przez narzędzie nodes (zwykle nodes.run).
Opiera się to na raportowaniu przez węzeł obsługi poleceń oraz na sondzie binariów przez system.run. Jeśli węzeł macOS później przejdzie offline, skills pozostają widoczne; wywołania mogą się nie powieść,
dopóki węzeł nie połączy się ponownie.
Watcher skills (automatyczne odświeżanie)
Domyślnie OpenClaw obserwuje foldery skills i aktualizuje migawkę skills, gdy zmieniają się plikiSKILL.md. Skonfiguruj to w skills.load:
Wpływ na tokeny (lista skills)
Gdy skills są kwalifikowane, OpenClaw wstrzykuje zwięzłą listę XML dostępnych skills do promptu systemowego (przezformatSkillsForPrompt w pi-coding-agent). Koszt jest deterministyczny:
- Bazowy narzut (tylko gdy ≥1 skill): 195 znaków.
- Na skill: 97 znaków + długość wartości
<name>,<description>oraz<location>po ucieczce XML.
- Ucieczka XML rozszerza
& < > " 'do encji (&,<itd.), zwiększając długość. - Liczba tokenów różni się w zależności od tokenizera 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 dołączone skills w ramach instalacji (pakiet npm lub OpenClaw.app).~/.openclaw/skills istnieje dla lokalnych nadpisań
(np. przypinanie/łatanie skilla bez zmiany dołączonej kopii). Skills obszaru roboczego są
własnością użytkownika i nadpisują oba w przypadku konfliktu nazw.