Skills
Laboratorio sulle Skills
Skill Workshop è il percorso governato di OpenClaw per creare e aggiornare le skill dell'area di lavoro.
Gli agenti e gli operatori non scrivono direttamente file SKILL.md attivi
attraverso questo percorso. Creano prima una proposta. Una proposta è una
bozza in sospeso che contiene il contenuto della skill proposto, il binding di
destinazione, lo stato dello scanner, gli hash, i metadati dei file di supporto
e i metadati di rollback. Diventa una skill live solo quando viene applicata.
Skill Workshop scrive solo skill dell'area di lavoro. Non modifica skill incluse, di Plugin, ClawHub, extra-root, gestite, di agenti personali o di sistema.
Come funziona
- Prima la proposta: il contenuto della skill generato viene archiviato come
PROPOSAL.md, non comeSKILL.md. - Apply è l'unica scrittura live: create, update e revise non modificano le skill attive.
- Con ambito area di lavoro: le creazioni hanno come destinazione la root
skills/dell'area di lavoro. Gli aggiornamenti sono consentiti solo per skill dell'area di lavoro scrivibili. - Nessuna sovrascrittura: create non riesce se la skill di destinazione esiste già.
- Vincolata all'hash: le proposte di aggiornamento si vincolano all'hash corrente della destinazione e diventano obsolete se la skill live cambia prima dell'applicazione.
- Controllata dallo scanner: apply riesegue la scansione prima di scrivere.
- Recuperabile: apply scrive i metadati di rollback prima di modificare i file live.
- Superfici coerenti: chat, CLI e Gateway chiamano tutti lo stesso servizio Skill Workshop.
Ciclo di vita
create/update -> pendingrevise -> pendingapply -> appliedreject -> rejectedquarantine -> quarantinedtarget change -> staleSolo le proposte pending possono essere revisionate, applicate, rifiutate o
messe in quarantena.
Chat
Chiedi all'agente la skill che vuoi. L'agente chiama skill_workshop e
restituisce un id proposta.
Crea:
Make a skill called morning-catchup that runs my Monday inbox routine.Aggiorna una skill dell'area di lavoro esistente:
Update trip-planning to also check seat maps before booking.Itera su una proposta in sospeso:
Show me the morning-catchup proposal.Revise it to also flag anything marked urgent.Apply the morning-catchup proposal.Per impostazione predefinita, apply, reject e quarantine avviati
dall'agente mostrano una richiesta di approvazione prima dell'esecuzione.
Imposta skills.workshop.approvalPolicy su "auto" per saltare la richiesta
negli ambienti attendibili.
CLI
Crea una nuova proposta di skill:
openclaw skills workshop propose-create \ --name morning-catchup \ --description "Daily inbox catch-up: triage, archive, surface, draft, plan" \ --proposal ./PROPOSAL.mdCrea una proposta di aggiornamento per una skill dell'area di lavoro esistente:
openclaw skills workshop propose-update trip-planning --proposal ./PROPOSAL.mdElenca e ispeziona:
openclaw skills workshop listopenclaw skills workshop inspect <proposal-id>Revisiona prima dell'approvazione:
openclaw skills workshop revise <proposal-id> --proposal ./PROPOSAL.mdChiudi la proposta:
openclaw skills workshop apply <proposal-id>openclaw skills workshop reject <proposal-id> --reason "Duplicate"openclaw skills workshop quarantine <proposal-id> --reason "Needs security review"Contenuto della proposta
Finché è in sospeso, la proposta viene archiviata come PROPOSAL.md con
frontmatter riservato alla proposta:
---name: "morning-catchup"description: "Daily inbox catch-up: triage, archive, surface, draft, plan"status: proposalversion: "v1"date: "2026-05-30T00:00:00.000Z"---All'applicazione, Skill Workshop scrive il SKILL.md attivo e rimuove i campi
riservati alla proposta: status, proposta version e proposta date.
File di supporto
Usa --proposal-dir quando la skill proposta richiede file accanto a
PROPOSAL.md:
openclaw skills workshop propose-create \ --name weekly-update \ --description "Friday wrap-up: stats, highlights, next week's top three" \ --proposal-dir ./weekly-update-proposalLa directory deve contenere PROPOSAL.md. I file di supporto devono trovarsi
sotto:
assets/examples/references/scripts/templates/
Skill Workshop scansiona, calcola gli hash e archivia i file di supporto con la
proposta. Vengono scritti accanto al SKILL.md live solo all'applicazione.
I percorsi dei file di supporto rifiutati includono percorsi assoluti, segmenti di percorso nascosti, attraversamento di percorsi, percorsi sovrapposti, file eseguibili da directory di proposta, testo non UTF-8, byte nulli e file al di fuori delle cartelle di supporto standard.
Strumento agente
Il modello usa skill_workshop:
action: create | update | revise | list | inspect | apply | reject | quarantineGli agenti devono usare skill_workshop per il lavoro sulle skill generate. Non
devono creare o modificare file di proposta tramite write, edit, exec,
comandi shell o operazioni dirette sul filesystem.
Approvazione e autonomia
{ skills: { workshop: { autonomous: { enabled: false, }, allowSymlinkTargetWrites: false, approvalPolicy: "pending", maxPending: 50, maxSkillBytes: 40000, }, },}autonomous.enabled: consente a OpenClaw di creare proposte in sospeso da segnali durevoli della conversazione dopo turni riusciti. Predefinito:false.allowSymlinkTargetWrites: consente ad apply di scrivere attraverso symlink di skill dell'area di lavoro il cui target reale è elencato inskills.load.allowSymlinkTargets. Predefinito:false.approvalPolicy: "pending": richiede una richiesta di approvazione prima diapply,rejectoquarantineavviati dall'agente.approvalPolicy: "auto": salta tale richiesta di approvazione. L'agente deve comunque chiamare l'azione.maxPending: limita le proposte in sospeso e in quarantena per area di lavoro.maxSkillBytes: limita la dimensione del corpo della proposta. Predefinito:40000.
Le descrizioni delle proposte sono sempre limitate a 160 byte.
Metodi Gateway
skills.proposals.listskills.proposals.inspectskills.proposals.createskills.proposals.updateskills.proposals.reviseskills.proposals.applyskills.proposals.rejectskills.proposals.quarantineI metodi in sola lettura richiedono operator.read. I metodi di modifica
richiedono operator.admin.
Archiviazione
<OPENCLAW_STATE_DIR>/skill-workshop/ proposals.json proposals/<proposal-id>/ proposal.json PROPOSAL.md rollback.json assets/ examples/ references/ scripts/ templates/Directory di stato predefinita: ~/.openclaw.
proposal.json: record canonico della proposta.proposals.json: indice di elenco rapido, ricostruibile dalle cartelle delle proposte.PROPOSAL.md: proposta di skill in sospeso.rollback.json: metadati di recupero scritti prima che apply modifichi i file live.
Limiti
- Descrizione: 160 byte.
- Corpo della proposta:
skills.workshop.maxSkillBytes(predefinito 40.000). - File di supporto: 64 per proposta.
- Dimensione dei file di supporto: 256 KB ciascuno, 2 MB totali.
- Proposte in sospeso e in quarantena:
skills.workshop.maxPendingper area di lavoro (predefinito 50).
Risoluzione dei problemi
| Problema | Risoluzione |
|---|---|
Skill proposal description is too large |
Riduci description a 160 byte o meno. |
Skill proposal content is too large |
Riduci il corpo della proposta o aumenta skills.workshop.maxSkillBytes. |
Target skill changed after proposal creation |
Revisiona la proposta rispetto alla destinazione corrente oppure crea una nuova proposta. |
Proposal scan failed |
Ispeziona i risultati dello scanner, quindi revisiona o metti in quarantena la proposta. |
untrusted symlink target |
Configura skills.load.allowSymlinkTargets e abilita skills.workshop.allowSymlinkTargetWrites solo per root di skill condivise intenzionali. |
Support file paths must be under one of... |
Sposta i file di supporto sotto assets/, examples/, references/, scripts/ o templates/. |
| La proposta non viene mostrata nell'elenco | Controlla l'area di lavoro --agent selezionata e OPENCLAW_STATE_DIR. |
L'agente non può chiamare skill_workshop |
Controlla la policy degli strumenti attiva e la modalità di esecuzione. coding include lo strumento; le policy tools.allow restrittive devono elencarlo esplicitamente e le esecuzioni in sandbox devono usare una normale sessione agente lato host o la CLI. |
Correlati
- Skills per ordine di caricamento, precedenza e visibilità
- Creazione di skill per le basi di
SKILL.mdscritto a mano - Configurazione Skills per lo schema completo
skills.workshop - CLI Skills per i comandi
openclaw skills