Skills
Warsztat Skills
Skill Workshop to zarządzana przez OpenClaw ścieżka tworzenia i aktualizowania Skills obszaru roboczego. Agenci i operatorzy nigdy nie zapisują bezpośrednio pliku SKILL.md za pośrednictwem tej ścieżki — tworzą propozycję (oczekującą wersję roboczą z zawartością, powiązaniem docelowym, stanem skanera, skrótami i metadanymi wycofania), która staje się aktywnym Skill dopiero po zastosowaniu.
Skill Workshop zapisuje wyłącznie Skills obszaru roboczego. Nigdy nie modyfikuje Skills dołączonych, pochodzących z Pluginów, ClawHub, dodatkowych katalogów głównych, zarządzanych, osobistych agentów ani systemowych.
Jak to działa
- Najpierw propozycja: wygenerowana zawartość jest przechowywana jako
PROPOSAL.md, a nieSKILL.md. - Zastosowanie jest jedynym zapisem na żywo: tworzenie, aktualizowanie i poprawianie nigdy nie zmienia aktywnych Skills.
- Zakres obszaru roboczego: tworzone Skills trafiają do katalogu głównego
skills/obszaru roboczego; aktualizacje są dozwolone wyłącznie dla zapisywalnych Skills obszaru roboczego. - Bez nadpisywania: tworzenie kończy się niepowodzeniem, jeśli docelowy Skill już istnieje.
- Powiązanie skrótem: propozycje aktualizacji są powiązane z bieżącym skrótem elementu docelowego i uzyskują stan
stale, jeśli aktywny Skill zmieni się przed zastosowaniem. - Kontrola skanera: przed zapisem zastosowanie ponownie uruchamia skaner bezpieczeństwa.
- Możliwość odzyskania: przed modyfikacją aktywnych plików zastosowanie zapisuje metadane wycofania.
- Spójne interfejsy: czat, CLI i Gateway wywołują tę samą usługę.
Cykl życia
utworzenie/aktualizacja -> pendingpoprawienie -> pendingzastosowanie -> appliedodrzucenie -> rejectedkwarantanna -> quarantinedzmiana celu -> staleTylko propozycję o stanie pending można poprawić, zastosować, odrzucić lub poddać kwarantannie.
Zarządzanie cyklem życia
Gateway śledzi zagregowane użycie Skills we współdzielonej bazie danych stanu. Raz dziennie przegląda Skills utworzone i zastosowane przez Skill Workshop. Skills nieużywane przez ponad 30 dni uzyskują stan stale; po 90 dniach uzyskują stan archived i nie są uwzględniane w nowych migawkach Skills agentów. Pliki zarchiwizowanych Skills pozostają na dysku bez zmian. Ręcznie utworzone Skills nigdy nie podlegają temu zarządzaniu; do zarządzania cyklem życia trafiają wyłącznie Skills utworzone przez propozycje Skill Workshop.
Przypięte Skills pomijają przejścia cyklu życia. Nieaktualny Skill wraca do stanu active po użyciu i wykonaniu następnego przeglądu. Zarchiwizowane Skills wracają wyłącznie przez jawne przywrócenie:
Przejścia cyklu życia i przywracanie dotyczą nowych sesji; trwające sesje zachowują swoją bieżącą migawkę Skills.
openclaw skills curator statusopenclaw skills curator pin <skill>openclaw skills curator unpin <skill>openclaw skills curator restore <skill>Wszystkie polecenia zarządcy obsługują --json. Stan zgłasza również deterministyczne kandydatury nakładających się Skills, wyłącznie jako sugestie; nigdy nie scala Skills ani nie wywołuje modelu.
Czat
Poproś agenta o wybrany Skill; agent wywoła skill_workshop i zwróci identyfikator propozycji.
Nauka na podstawie ostatniej pracy
Użyj /learn, aby przekształcić bieżącą rozmowę lub wskazane źródła w jedną propozycję Skill zgodną ze standardami:
/learn/learn docs/runbook.md and https://example.com/guide; focus on recoveryBez treści żądania /learn prosi agenta o wyodrębnienie z bieżącej rozmowy przepływu pracy nadającego się do ponownego wykorzystania. Jeśli żądanie podano, agent traktuje ścieżki, adresy URL, wklejone notatki i odwołania do rozmowy jako źródła, przestrzegając wymagań dotyczących priorytetu, zakresu i nazewnictwa. Zbiera źródła za pomocą istniejących narzędzi, a następnie wywołuje skill_workshop z action: "create".
Powstała propozycja pozostaje w stanie pending; /learn nigdy jej nie stosuje. Przejrzyj ją i zastosuj za pomocą zwykłego procesu zatwierdzania lub polecenia openclaw skills workshop.
Tworzenie:
Utwórz Skill o nazwie morning-catchup, który wykonuje moją poniedziałkową procedurę obsługi skrzynki odbiorczej.Aktualizacja istniejącego Skill obszaru roboczego:
Zaktualizuj trip-planning, aby przed rezerwacją sprawdzał również mapy miejsc.Iterowanie nad oczekującą propozycją:
Pokaż mi propozycję morning-catchup.Popraw ją, aby oznaczała również wszystko opatrzone jako pilne.Zastosuj propozycję morning-catchup.Inicjowane przez agenta operacje apply, reject i quarantine domyślnie wyświetlają monit o zatwierdzenie. Ustaw skills.workshop.approvalPolicy na "auto", aby pominąć go w zaufanych środowiskach.
Monit wskazuje identyfikator propozycji i docelowy Skill oraz przedstawia opis propozycji, liczbę plików pomocniczych i rozmiar treści. Żądania zatwierdzenia mają ograniczony czas, aby zakończyły się przed limitem czasu narzędzia agenta. Jeśli przed wygaśnięciem monitu nie zostanie podjęta decyzja, operacja cyklu życia nie zostanie wykonana: propozycja pozostanie oczekująca i niezmieniona. Decyzję można podjąć później w interfejsie Skill Workshop lub uruchamiając openclaw skills workshop apply|reject|quarantine <proposal-id>. Agenci nie powinni wielokrotnie ponawiać wygasłej operacji cyklu życia.
CLI
# Utworzenieopenclaw skills workshop propose-create \ --name morning-catchup \ --description "Codzienne nadrabianie skrzynki odbiorczej: selekcja, archiwizacja, wyróżnianie, przygotowywanie wersji roboczych, planowanie" \ --proposal ./PROPOSAL.md # Aktualizacja istniejącego Skill obszaru roboczegoopenclaw skills workshop propose-update trip-planning --proposal ./PROPOSAL.md # Wyświetlanie listy i sprawdzanieopenclaw skills workshop listopenclaw skills workshop inspect <proposal-id> # Poprawienie przed zatwierdzeniemopenclaw skills workshop revise <proposal-id> --proposal ./PROPOSAL.md # Zakończenieopenclaw skills workshop apply <proposal-id>openclaw skills workshop reject <proposal-id> --reason "Duplikat"openclaw skills workshop quarantine <proposal-id> --reason "Wymaga przeglądu zabezpieczeń"Każde podpolecenie przyjmuje --agent <id> (docelowy obszar roboczy; domyślnie ustalany na podstawie bieżącego katalogu roboczego, a następnie domyślnego agenta) oraz --json (ustrukturyzowane dane wyjściowe). Polecenia propose-create, propose-update i revise przyjmują również --goal <text> oraz --evidence <text>, aby wraz z --proposal zapisać kontekst propozycji.
Zawartość propozycji
W stanie oczekującym propozycja jest przechowywana jako PROPOSAL.md z metadanymi frontmatter przeznaczonymi wyłącznie dla propozycji:
---name: "morning-catchup"description: "Codzienne nadrabianie skrzynki odbiorczej: selekcja, archiwizacja, wyróżnianie, przygotowywanie wersji roboczych, planowanie"status: proposalversion: "v1"date: "2026-05-30T00:00:00.000Z"---Podczas zastosowania Skill Workshop zapisuje aktywny plik SKILL.md i usuwa pola przeznaczone wyłącznie dla propozycji: status, propozycyjne version oraz propozycyjne date.
Pliki pomocnicze
Użyj --proposal-dir, gdy proponowany Skill wymaga plików obok PROPOSAL.md:
openclaw skills workshop propose-create \ --name weekly-update \ --description "Piątkowe podsumowanie: statystyki, najważniejsze informacje, trzy główne priorytety na następny tydzień" \ --proposal-dir ./weekly-update-proposalKatalog musi zawierać PROPOSAL.md. Pliki pomocnicze muszą znajdować się w katalogach assets/, examples/, references/, scripts/ lub templates/. Skill Workshop skanuje je, oblicza ich skróty i przechowuje je wraz z propozycją, a następnie zapisuje obok aktywnego pliku SKILL.md dopiero podczas zastosowania.
Odrzucane ścieżki plików pomocniczych: ścieżki bezwzględne, ukryte segmenty ścieżki, przechodzenie między katalogami, nakładające się ścieżki, pliki wykonywalne, tekst inny niż UTF-8, bajty zerowe oraz ścieżki spoza standardowych katalogów pomocniczych.
Narzędzie agenta
Model używa skill_workshop z jedną wymaganą wartością action:
create | update | revise | list | inspect | apply | reject | quarantine.
Pozostałe parametry mają zastosowanie zależnie od operacji:
| Parametr | Używany przez | Uwagi |
|---|---|---|
name |
create, inspect, revise |
Wymagany dla create; w pozostałych przypadkach wyszukuje oczekującą propozycję według nazwy |
description |
create, update, revise |
Maksymalnie 160 bajtów |
skill_name |
update |
Nazwa lub klucz istniejącego Skill |
proposal_content |
create, update, revise |
Przechowywany jako PROPOSAL.md; ograniczony przez skills.workshop.maxSkillBytes |
support_files |
create, update, revise |
Tablica elementów { path, content } |
goal, evidence |
create, update, revise |
Kontekst w postaci dowolnego tekstu |
proposal_id |
inspect, revise, apply, reject, quarantine |
Propozycja docelowa |
reason |
apply, reject, quarantine |
Opcjonalny |
query, status, limit |
list |
Filtrowanie/paginacja; maksymalna wartość limit to 50, domyślna to 20 |
Agenci muszą używać skill_workshop do pracy nad generowanymi Skills. Nie mogą tworzyć ani zmieniać plików propozycji za pomocą write, edit, exec, poleceń powłoki ani bezpośrednich operacji na systemie plików.
Sugerowane Skills
OpenClaw wykrywa trwałe instrukcje, takie jak „następnym razem” i „pamiętaj, aby”, oraz korekty będące reakcją na wynik, gdy kończy się interaktywna tura, w tym także tura zakończona niepowodzeniem. W następnej turze agent proponuje zapisanie ostatnio wykrytego przepływu pracy za pomocą skill_workshop; użytkownik decyduje, czy utworzyć propozycję. Ta wbudowana sugestia sama nie tworzy ani nie zmienia Skill. Włącz skills.workshop.autonomous.enabled, aby zamiast tego bezpośrednio tworzyć oczekujące propozycje.
Zatwierdzanie i autonomia
{ skills: { workshop: { autonomous: { enabled: false, }, allowSymlinkTargetWrites: false, approvalPolicy: "pending", maxPending: 50, maxSkillBytes: 40000, }, },}| Ustawienie | Wartość domyślna | Działanie |
|---|---|---|
autonomous.enabled |
false |
Bezpośrednio tworzy oczekujące propozycje zamiast proponować w następnej turze ostatnio wykryty przepływ pracy. |
allowSymlinkTargetWrites |
false |
Umożliwia operacji zastosowania zapis przez dowiązania symboliczne Skills obszaru roboczego, których rzeczywisty cel znajduje się na liście skills.load.allowSymlinkTargets. |
approvalPolicy |
"pending" |
"pending" wymaga monitu o zatwierdzenie przed inicjowanymi przez agenta operacjami apply, reject lub quarantine. "auto" pomija monit (agent nadal musi wywołać operację). |
maxPending |
50 |
Ogranicza liczbę oczekujących i poddanych kwarantannie propozycji na obszar roboczy (1–200). |
maxSkillBytes |
40000 |
Ogranicza rozmiar treści propozycji w bajtach (1024–200000). |
Autonomiczne przechwytywanie rozpoznaje reguły dotyczące przyszłości (na przykład „od teraz”) oraz korekty będące reakcją na wynik (na przykład „nie o to prosiłem”). Grupuje nowe instrukcje według tematów w maksymalnie trzy propozycje na turę, kieruje dopasowania słownictwa do istniejących zapisywalnych Skills obszaru roboczego i poprawia własną oczekującą propozycję, gdy kolejna korekta dotyczy tego samego Skill.
Opisy propozycji są zawsze ograniczone do 160 bajtów, niezależnie od wartości maxSkillBytes.
Metody Gateway
| Metoda | Zakres |
|---|---|
skills.proposals.list |
operator.read |
skills.proposals.inspect |
operator.read |
skills.proposals.create |
operator.admin |
skills.proposals.update |
operator.admin |
skills.proposals.revise |
operator.admin |
skills.proposals.requestRevision |
operator.admin |
skills.proposals.apply |
operator.admin |
skills.proposals.reject |
operator.admin |
skills.proposals.quarantine |
operator.admin |
skills.curator.status |
operator.read |
skills.curator.pin |
operator.admin |
skills.curator.unpin |
operator.admin |
skills.curator.restore |
operator.admin |
requestRevision jest dostępne wyłącznie w Gateway (bez odpowiednika w CLI ani w narzędziach agenta): przekazuje instrukcje dotyczące korekty w postaci dowolnego tekstu do sesji czatu agenta będącego właścicielem zamiast bezpośrednio zastępować plik PROPOSAL.md. Jest przeznaczone dla interfejsów użytkownika, które proszą agenta o poprawienie propozycji, zamiast przesyłać dosłowną nową treść.
Przechowywanie
<OPENCLAW_STATE_DIR>/skill-workshop/ proposals.json proposals/<proposal-id>/ proposal.json PROPOSAL.md rollback.json assets/ examples/ references/ scripts/ templates/Domyślny katalog stanu: ~/.openclaw.
proposal.json: kanoniczny rekord propozycji.proposals.json: indeks do szybkiego wyświetlania listy, który można odbudować z folderów propozycji.PROPOSAL.md: oczekująca propozycja umiejętności.rollback.json: metadane odzyskiwania zapisywane przed zastosowaniem zmian w aktywnych plikach.
Limity
| Limit | Wartość |
|---|---|
| Opis | 160 bajtów |
| Treść propozycji | skills.workshop.maxSkillBytes (domyślnie 40 000; twardy limit 1 MiB) |
| Pliki pomocnicze | 64 na propozycję |
| Rozmiar pliku pomocniczego | 256 KiB każdy, łącznie 2 MiB |
| Oczekujące i odizolowane propozycje | skills.workshop.maxPending na obszar roboczy (domyślnie 50) |
Rozwiązywanie problemów
| Problem | Rozwiązanie |
|---|---|
Skill proposal description is too large |
Skróć description do maksymalnie 160 bajtów. |
Skill proposal content is too large |
Skróć treść propozycji lub zwiększ skills.workshop.maxSkillBytes. |
Target skill changed after proposal creation |
Popraw propozycję względem bieżącej docelowej umiejętności albo utwórz nową propozycję. |
Proposal scan failed |
Sprawdź ustalenia skanera, a następnie popraw lub odizoluj propozycję. |
untrusted symlink target |
Skonfiguruj skills.load.allowSymlinkTargets i włącz skills.workshop.allowSymlinkTargetWrites wyłącznie dla celowo współdzielonych katalogów głównych umiejętności. |
Support file paths must be under one of... |
Przenieś pliki pomocnicze do katalogu assets/, examples/, references/, scripts/ lub templates/. |
| Propozycja nie pojawia się na liście | Sprawdź wybrany obszar roboczy --agent oraz OPENCLAW_STATE_DIR. |
Agent nie może wywołać skill_workshop |
Sprawdź aktywne zasady dostępu do narzędzi oraz tryb uruchomienia. Tryb coding obejmuje to narzędzie; restrykcyjne zasady tools.allow muszą wymieniać je jawnie, a uruchomienia w piaskownicy muszą używać zwykłej sesji agenta po stronie hosta lub CLI. |
Diagnostyka zasad dostępu do narzędzi
Gdy autonomiczne przechwytywanie jest włączone, polecenie openclaw doctor uruchamia sprawdzenie core/doctor/skill-workshop-tool-policy dla domyślnego agenta. Jeśli zasady ukrywają skill_workshop, ostrzeżenie wskazuje pierwszą wykluczającą warstwę konfiguracji oraz dokładną zmianę allow lub alsoAllow, którą należy wprowadzić. Starsze procedury mogą nadal używać polecenia openclaw plugins inspect skill-workshop; obecnie wyjaśnia ono, że Skill Workshop jest wbudowany, i w stosownych przypadkach wyświetla tę samą wskazówkę dotyczącą zasad.
Powiązane materiały
- Skills — kolejność ładowania, pierwszeństwo i widoczność
- Tworzenie umiejętności — podstawy ręcznego tworzenia pliku
SKILL.md - Konfiguracja Skills — pełny schemat
skills.workshop - CLI Skills — polecenia
openclaw skills