Skills
Skills
OpenClaw używa folderów Skills zgodnych z AgentSkills, aby nauczyć agenta korzystania z narzędzi. Każdy Skill to katalog zawierający SKILL.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 pierwszeństwo
OpenClaw ładuje Skills z tych źródeł, od najwyższego pierwszeństwa:
| # | Źródło | Ścieżka |
|---|---|---|
| 1 | Skills obszaru roboczego | <workspace>/skills |
| 2 | Skills agenta projektu | <workspace>/.agents/skills |
| 3 | Osobiste Skills agenta | ~/.agents/skills |
| 4 | Zarządzane/lokalne Skills | ~/.openclaw/skills |
| 5 | Wbudowane Skills | dostarczane z instalacją |
| 6 | Dodatkowe foldery Skills | skills.load.extraDirs (config) |
Jeśli nazwa Skill koliduje, wygrywa źródło o najwyższym pierwszeństwie.
Natywny katalog $CODEX_HOME/skills narzędzia Codex CLI nie jest jednym z tych katalogów głównych Skills OpenClaw. W trybie uprzęży Codex lokalne uruchomienia serwera aplikacji używają izolowanych katalogów domowych Codex przypisanych do agenta, więc osobiste Skills Codex CLI nie są ładowane niejawnie. Użyj openclaw migrate codex --dry-run, aby je zinwentaryzować, oraz openclaw migrate codex, aby wybrać katalogi Skills za pomocą interaktywnego monitu z polami wyboru przed skopiowaniem ich do bieżącego obszaru roboczego agenta OpenClaw. W uruchomieniach nieinteraktywnych powtórz --skill <name> dla dokładnych Skills do skopiowania.
Skills na agenta a współdzielone Skills
W konfiguracjach wieloagentowych każdy agent ma własny obszar roboczy:
| Zakres | Ścieżka | Widoczne dla |
|---|---|---|
| Na agenta | <workspace>/skills |
Tylko ten agent |
| Agent projektu | <workspace>/.agents/skills |
Tylko agent tego obszaru roboczego |
| Osobisty agent | ~/.agents/skills |
Wszyscy agenci na tej maszynie |
| Współdzielone zarządzane/lokalne | ~/.openclaw/skills |
Wszyscy agenci na tej maszynie |
| Współdzielone dodatkowe katalogi | skills.load.extraDirs (najniższe pierwszeństwo) |
Wszyscy agenci 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, agentem osobistym, zarządzanymi/lokalnymi, wbudowanymi i dodatkowymi katalogami.
Listy dozwolonych Skills agenta
Lokalizacja Skill i widoczność Skill to osobne mechanizmy kontroli. Lokalizacja/pierwszeństwo decyduje, która kopia Skill o tej samej nazwie wygrywa; listy dozwolonych agenta decydują, których Skills agent może faktycznie używać.
{
agents: {
defaults: {
skills: ["github", "weather"],
},
list: [
{ id: "writer" }, // dziedziczy github, weather
{ id: "docs", skills: ["docs-search"] }, // zastępuje wartości domyślne
{ id: "locked-down", skills: [] }, // brak Skills
],
},
}
Reguły listy dozwolonych
- Pomiń
agents.defaults.skills, aby domyślnie nie ograniczać Skills. - Pomiń
agents.list[].skills, aby odziedziczyćagents.defaults.skills. - Ustaw
agents.list[].skills: [], aby nie było żadnych Skills. - 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ń ukośnikowych Skill, synchronizacji piaskownicy i migawkach Skill.
Pluginy i Skills
Pluginy mogą dostarczać własne Skills, wskazując katalogi skills w openclaw.plugin.json (ścieżki względem katalogu głównego Plugin). Skills Plugin ładują się, gdy Plugin jest włączony. To właściwe miejsce na instrukcje obsługi specyficzne dla narzędzi, które są zbyt długie dla opisu 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 Skills Plugin są scalane z tą samą ścieżką o niskim pierwszeństwie co skills.load.extraDirs, więc wbudowany, zarządzany, agencki lub roboczy Skill o tej samej nazwie je nadpisuje. Możesz je bramkować przez metadata.openclaw.requires.config we wpisie konfiguracji Plugin.
Zobacz Pluginy, aby poznać wykrywanie/konfigurację, oraz Narzędzia, aby poznać powierzchnię narzędzi, której uczą te Skills.
Skill Workshop
Opcjonalny, eksperymentalny Plugin Skill Workshop może tworzyć lub aktualizować Skills obszaru roboczego z wielokrotnego użytku procedur 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ą zawartość, obsługuje oczekującą akceptację lub automatyczne bezpieczne zapisy, poddaje kwarantannie niebezpieczne propozycje i odświeża migawkę Skill po udanych zapisach, aby nowe Skills były dostępne bez ponownego uruchamiania Gateway.
Używaj go do korekt, takich jak "następnym razem zweryfikuj atrybucję GIF", lub mozolnie wypracowanych przepływów pracy, takich jak listy kontrolne QA mediów. Zacznij od oczekującej akceptacji; automatycznych zapisów używaj tylko w zaufanych obszarach roboczych po przejrzeniu propozycji. Pełny przewodnik: Plugin Skill Workshop.
ClawHub (instalacja i synchronizacja)
ClawHub to publiczny rejestr Skills 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.
| Działanie | Polecenie |
|---|---|
| Zainstaluj Skill w obszarze roboczym | openclaw skills install <skill-slug> |
| Zaktualizuj wszystkie zainstalowane Skills | 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 Skills obsługują też jeden poziom grupowania, taki jak skills/<group>/<skill>/SKILL.md, dzięki czemu powiązane Skills firm trzecich można trzymać we współdzielonym folderze bez szerokiego skanowania rekurencyjnego.
Strony Skills w ClawHub pokazują najnowszy stan skanu bezpieczeństwa przed instalacją, z osobnymi stronami szczegółów skanerów dla VirusTotal, ClawScan i analizy statycznej. openclaw skills install <slug> pozostaje wyłącznie ścieżką instalacji; publikujący usuwają wyniki fałszywie dodatnie przez panel ClawHub albo clawhub skill rescan <slug>.
Bezpieczeństwo
- Wykrywanie Skills z obszaru roboczego i dodatkowych katalogów akceptuje tylko katalogi główne Skills oraz pliki
SKILL.md, których rozwiązany realpath pozostaje wewnątrz skonfigurowanego katalogu głównego. - Instalacje zależności Skill obsługiwane przez Gateway (
skills.install, onboarding oraz interfejs ustawień Skills) uruchamiają wbudowany skaner niebezpiecznego kodu przed wykonaniem metadanych instalatora. Wynikicriticalblokują domyślnie, chyba że wywołujący jawnie ustawi niebezpieczne nadpisanie; podejrzane wyniki nadal tylko ostrzegają. openclaw skills install <slug>działa inaczej - pobiera folder Skill z ClawHub do obszaru roboczego 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 piaskownicy). 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-lab
description: Generate or edit images via a provider-backed image workflow
---
OpenClaw stosuje specyfikację AgentSkills dla układu/intencji. Parser używany przez osadzonego agenta obsługuje tylko jednowierszowe klucze frontmatter; metadata powinno być jednowierszowym obiektem JSON. Używaj {baseDir} w instrukcjach, aby odwołać się do ścieżki folderu Skill.
Opcjonalne klucze frontmatter
homepagestringURL wyświetlany jako "Website" w interfejsie macOS Skills. Obsługiwane także przez metadata.openclaw.homepage.
user-invocablebooleanGdy true, Skill jest udostępniany jako polecenie ukośnikowe użytkownika.
disable-model-invocationbooleanGdy true, OpenClaw nie umieszcza instrukcji Skill w normalnym prompcie agenta. Skill nadal jest zainstalowany i nadal można go uruchomić jawnie jako polecenie ukośnikowe, gdy user-invocable również ma wartość true.
command-dispatch"tool"Gdy ustawione na tool, polecenie ukośnikowe pomija model i przekazuje wywołanie bezpośrednio do narzędzia.
command-toolstringNazwa narzędzia do wywołania, gdy ustawiono command-dispatch: tool.
command-arg-mode"raw"Dla przekazywania do narzędzia przesyła surowy ciąg argumentów do narzędzia (bez parsowania przez rdzeń). Narzędzie jest wywoływane z { command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
Bramkowanie (filtry podczas ładowania)
OpenClaw filtruje Skills podczas ładowania, używając metadata (jednowierszowego JSON):
---
name: image-lab
description: Generate or edit images via a provider-backed image workflow
metadata:
{
"openclaw":
{
"requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] },
"primaryEnv": "GEMINI_API_KEY",
},
}
---
Pola w metadata.openclaw:
alwaysbooleanGdy true, zawsze uwzględniaj Skill (pomija inne bramki).
emojistringOpcjonalne emoji używane przez interfejs macOS Skills.
homepagestringOpcjonalny URL pokazywany jako "Website" w interfejsie macOS Skills.
os"darwin" | "linux" | "win32"Opcjonalna lista platform. Jeśli ustawiona, Skill kwalifikuje się tylko w tych systemach OS.
requires.binsstring[]Każdy musi istnieć w PATH.
requires.anyBinsstring[]Co najmniej jeden musi istnieć w PATH.
requires.envstring[]Zmienna env musi istnieć albo zostać podana w konfiguracji.
requires.configstring[]Lista ścieżek openclaw.json, które muszą być truthy.
primaryEnvstringNazwa zmiennej env powiązanej 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 występuje, Skill zawsze się kwalifikuje (chyba że jest wyłączony w konfiguracji albo zablokowany przez skills.allowBundled dla wbudowanych Skills).
Uwagi o piaskownicy
requires.binsjest sprawdzane na hoście podczas ładowania Skill.- Jeśli agent działa w piaskownicy, binarium musi też istnieć wewnątrz kontenera. Zainstaluj je przez
agents.defaults.sandbox.docker.setupCommand(albo niestandardowy obraz).setupCommanduruchamia się raz po utworzeniu kontenera. Instalacje pakietów wymagają też wyjścia do sieci, zapisywalnego głównego systemu plików i użytkownika root w piaskownicy. - Przykład: Skill
summarize(skills/summarize/SKILL.md) potrzebuje CLIsummarizew kontenerze piaskownicy, aby tam działać.
Specyfikacje instalatorów
---
name: gemini
description: 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 razienode). - Jeśli wszystkie instalatory to
download, OpenClaw wyświetla każdy wpis, aby pokazać dostępne artefakty. - Specyfikacje instalatorów mogą zawierać
os: ["darwin"|"linux"|"win32"], aby filtrować opcje według platformy. - Instalacje Node respektują
skills.install.nodeManagerwopenclaw.json(domyślnie: npm; opcje: npm/pnpm/yarn/bun). Dotyczy to tylko instalacji Skills; środowisko wykonawcze Gateway nadal powinno być Node - Bun nie jest zalecany dla WhatsApp/Telegram. - Wybór instalatora wspierany przez Gateway jest oparty na preferencjach: gdy specyfikacje instalacji mieszają typy, OpenClaw preferuje Homebrew, gdy
skills.install.preferBrewjest włączone i istniejebrew, potemuv, 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 przez pobranie:
url(wymagane),archive(tar.gz|tar.bz2|zip),extract(domyślnie: automatycznie po wykryciu archiwum),stripComponents,targetDir(domyślnie:~/.openclaw/tools/<skillKey>).
Nadpisania konfiguracji
Dołączone i zarządzane Skills można włączać lub wyłączać oraz dostarczać im wartości env
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 dołączony lub zainstalowany.
Dołączony skill coding-agent jest opcjonalny: ustaw
skills.entries.coding-agent.enabled: true przed udostępnieniem go agentom,
a następnie upewnij się, że jeden z claude, codex, opencode lub pi jest zainstalowany i
uwierzytelniony dla własnego CLI.
apiKeystring | { source, provider, id }Udogodnienie dla Skills deklarujących metadata.openclaw.primaryEnv. Obsługuje zwykły tekst lub SecretRef.
envRecord<string, string��-�լ���,��r�J0��r�ܳ�'����z7��;��ְ����q�configobjectOpcjonalny zbiór niestandardowych pól dla poszczególnych Skills. Niestandardowe klucze muszą znajdować się tutaj.
allowBundledstring[]Opcjonalna lista dozwolonych tylko dla dołączonych Skills. Jeśli jest ustawiona, kwalifikują się tylko dołączone Skills z tej listy (nie wpływa to na Skills zarządzane ani robocze).
Jeśli nazwa skill zawiera łączniki, ujmij klucz w cudzysłów (JSON5 dopuszcza klucze w cudzysłowach). Klucze konfiguracji domyślnie odpowiadają nazwie skill - jeśli skill definiuje metadata.openclaw.skillKey, użyj tego klucza w skills.entries.
Wstrzykiwanie środowiska
Gdy uruchomienie agenta się rozpoczyna, OpenClaw:
- Odczytuje metadane skill.
- 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 do globalnego środowiska powłoki.
Dla dołączonego backendu claude-cli OpenClaw materializuje też tę samą
kwalifikującą się migawkę jako tymczasowy Plugin Claude Code i przekazuje ją przez
--plugin-dir. Claude Code może wtedy używać swojego natywnego resolvera Skills, podczas gdy
OpenClaw nadal zarządza priorytetem, listami dozwolonych Skills dla poszczególnych agentów, bramkowaniem oraz
wstrzykiwaniem env/kluczy API skills.entries.*. Inne backendy CLI używają tylko
katalogu promptów.
Migawki i odświeżanie
OpenClaw tworzy migawkę kwalifikujących się Skills w momencie rozpoczęcia sesji i ponownie używa tej listy w kolejnych turach tej samej sesji. Zmiany w Skills lub konfiguracji zaczynają działać przy następnej nowej sesji.
Skills mogą odświeżyć się w trakcie sesji w dwóch przypadkach:
- Obserwator Skills jest włączony.
- Pojawia się nowy kwalifikujący się zdalny node.
Traktuj to jak hot reload: odświeżona lista jest używana w następnej turze agenta. Jeśli efektywna lista dozwolonych Skills agenta zmieni się dla tej sesji, OpenClaw odświeża migawkę, aby widoczne Skills pozostały zgodne z bieżącym agentem.
Obserwator Skills
Domyślnie OpenClaw obserwuje foldery Skills i podbija migawkę Skills,
gdy zmieniają się pliki SKILL.md. Skonfiguruj w skills.load:
{
skills: {
load: {
watch: true,
watchDebounceMs: 250,
},
},
}
Zdalne nody macOS (gateway Linux)
Jeśli Gateway działa na Linuksie, ale podłączony jest node macOS z
dozwolonym system.run (zabezpieczenie zatwierdzeń Exec nie jest ustawione na deny),
OpenClaw może traktować Skills przeznaczone tylko dla macOS jako kwalifikujące się, gdy wymagane
pliki wykonywalne są obecne na tym nodzie. Agent powinien wykonywać te Skills
przez narzędzie exec z host=node.
Opiera się to na zgłaszaniu obsługi poleceń przez node oraz na sondowaniu bin
przez system.which lub system.run. Nody offline nie powodują,
że Skills dostępne tylko zdalnie stają się widoczne. Jeśli podłączony node przestanie odpowiadać na
sondy bin, OpenClaw czyści jego buforowane dopasowania 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:
- Koszt bazowy (tylko gdy ≥1 skill): 195 znaków.
- Na skill: 97 znaków + długość wartości
<name>,<description>i<location>po ucieczce XML.
Formuła (znaki):
total = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(location_escaped))
Ucieczka XML rozszerza & < > " ' do encji (&, < itd.),
zwiększając długość. Liczby tokenów różnią się zależnie 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 wraz z
instalacją (pakiet npm lub OpenClaw.app). ~/.openclaw/skills istnieje na potrzeby
lokalnych nadpisań - na przykład przypięcia lub poprawienia skill bez
zmieniania dołączonej kopii. Skills robocze należą do użytkownika i nadpisują
oba źródła przy konfliktach 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