Skills
Tworzenie Skills
Skills uczą agenta, jak i kiedy używać narzędzi. Każdy skill to katalog
zawierający plik SKILL.md z YAML frontmatter i instrukcjami w Markdown.
OpenClaw ładuje Skills z kilku katalogów głównych w zdefiniowanej kolejności pierwszeństwa.
Utwórz swój pierwszy skill
Create the skill directory
Skills znajdują się w folderze skills/ Twojego workspace. Utwórz katalog
dla nowego skilla:
mkdir -p ~/.openclaw/workspace/skills/hello-worldMożesz grupować Skills w podfolderach dla lepszej organizacji — skill nadal
jest nazywany przez frontmatter w SKILL.md, a nie przez ścieżkę folderu:
mkdir -p ~/.openclaw/workspace/skills/personal/hello-world# skill name is still "hello-world", invoked as /hello-worldWrite SKILL.md
Utwórz SKILL.md w katalogu. Frontmatter definiuje metadane;
treść zawiera instrukcje dla agenta.
---name: hello-worlddescription: A simple skill that prints a greeting.--- # Hello World When the user asks for a greeting, use the `exec` tool to run: ```bashecho "Hello from your custom skill!" Zasady nazewnictwa:- Używaj małych liter, cyfr i łączników w polu `name`.- Utrzymuj zgodność nazwy katalogu i frontmatter `name`.- `description` jest pokazywane agentowi i w wykrywaniu poleceń slash — powinno być jednowierszowe i mieć mniej niż 160 znaków. OPENCLAW_DOCS_MARKER:stepClose: OPENCLAW_DOCS_MARKER:stepOpen:IHRpdGxlPSJWZXJpZnkgdGhlIHNraWxsIGxvYWRlZCI ```bashopenclaw skills listOpenClaw domyślnie obserwuje pliki SKILL.md w katalogach głównych Skills.
Jeśli obserwator jest wyłączony albo kontynuujesz istniejącą sesję, rozpocznij
nową, aby agent otrzymał odświeżoną listę:
# From chat — archive current session and start fresh/new # Or restart the gatewayopenclaw gateway restartTest it
Wyślij wiadomość, która powinna uruchomić skill:
openclaw agent --message "give me a greeting"Możesz też otworzyć czat i zapytać agenta bezpośrednio. Użyj /skill hello-world,
aby jawnie wywołać go po nazwie.
Dokumentacja SKILL.md
Wymagane pola
| Pole | Opis |
|---|---|
name |
Unikalny slug używający małych liter, cyfr i łączników |
description |
Jednowierszowy opis pokazywany agentowi i w wynikach wykrywania |
Opcjonalne klucze frontmatter
| Pole | Domyślnie | Opis |
|---|---|---|
user-invocable |
true |
Udostępnia skill jako polecenie slash użytkownika |
disable-model-invocation |
false |
Nie umieszcza skilla w system prompt agenta (nadal działa przez /skill) |
command-dispatch |
— | Ustaw na tool, aby skierować polecenie slash bezpośrednio do narzędzia, z pominięciem modelu |
command-tool |
— | Nazwa narzędzia do wywołania, gdy ustawiono command-dispatch: tool |
command-arg-mode |
raw |
Dla wysyłania do narzędzia przekazuje surowy ciąg argumentów do narzędzia |
homepage |
— | URL pokazywany jako „Witryna” w interfejsie Skills na macOS |
Pola bramkujące (requires.bins, requires.env itd.) opisuje sekcja
Skills — Bramkowanie.
Używanie {baseDir}
Użyj {baseDir} w treści skilla, aby odwoływać się do plików wewnątrz
katalogu skilla bez wpisywania ścieżek na stałe:
Run the helper script at `{baseDir}/scripts/run.sh`.Dodawanie aktywacji warunkowej
Ogranicz ładowanie skilla tak, aby ładował się tylko wtedy, gdy jego zależności są dostępne:
---name: gemini-searchdescription: Search using Gemini CLI.metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }---Gating options
| Klucz | Opis |
|---|---|
requires.bins |
Wszystkie pliki binarne muszą istnieć w PATH |
requires.anyBins |
Co najmniej jeden plik binarny musi istnieć w PATH |
requires.env |
Każda zmienna env musi istnieć w procesie lub konfiguracji |
requires.config |
Każda ścieżka openclaw.json musi być prawdziwa |
os |
Filtr platformy: ["darwin"], ["linux"], ["win32"] |
always |
Ustaw true, aby pominąć wszystkie warunki i zawsze uwzględniać skill |
Pełna dokumentacja: Skills — Bramkowanie.
Environment and API keys
Powiąż klucz API z wpisem skilla w openclaw.json:
{ skills: { entries: { "gemini-search": { enabled: true, apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, }, }, },}Klucz jest wstrzykiwany do procesu hosta tylko na czas danej tury agenta. Nie trafia do sandboxa — zobacz zmienne env w sandboxie.
Proponowanie przez Warsztat Skills
W przypadku Skills przygotowanych przez agenta albo gdy chcesz, aby operator
sprawdził skill przed uruchomieniem go produkcyjnie, użyj propozycji
Warsztatu Skills zamiast pisać SKILL.md bezpośrednio.
# Propose a brand-new skillopenclaw skills workshop propose-create \ --name "hello-world" \ --description "A simple skill that prints a greeting." \ --proposal ./PROPOSAL.md # Propose an update to an existing skillopenclaw skills workshop propose-update hello-world \ --proposal ./PROPOSAL.md \ --description "Updated greeting skill"Użyj --proposal-dir, gdy propozycja zawiera pliki pomocnicze:
openclaw skills workshop propose-create \ --name "hello-world" \ --description "A simple skill that prints a greeting." \ --proposal-dir ./hello-world-proposal/Katalog musi zawierać PROPOSAL.md. Pliki pomocnicze mogą znajdować się w assets/,
examples/, references/, scripts/ lub templates/.
Po przeglądzie:
openclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>Zobacz Warsztat Skills, aby poznać pełny cykl życia propozycji.
Publikowanie w ClawHub
Ensure your SKILL.md is complete
Upewnij się, że ustawiono name, description oraz wszystkie pola bramkujące
metadata.openclaw. Dodaj URL homepage, jeśli masz stronę projektu.
Install the ClawHub skill
Skill ClawHub dokumentuje aktualny kształt polecenia publikowania i wymagane metadane:
openclaw skills install @openclaw/clawhub-publishPublish
clawhub publishPełny proces opisuje ClawHub — Publikowanie.
Najlepsze praktyki
Powiązane
Kolejność ładowania, bramkowanie, listy dozwolonych elementów i format SKILL.md.
Kolejka propozycji dla Skills przygotowanych przez agenta.
Pełny schemat konfiguracji skills.*.
Przeglądaj i publikuj Skills w publicznym rejestrze.
Plugins mogą dostarczać Skills razem z narzędziami, które dokumentują.