SKILL.md sotto:
- Memory memorizza fatti, preferenze, entità e contesto passato.
- Skills memorizzano procedure riutilizzabili che l’agente dovrebbe seguire in attività future.
- Skill Workshop è il ponte da un turno utile a una Skill durevole del workspace, con controlli di sicurezza e approvazione facoltativa.
- come validare asset GIF animate provenienti da fonti esterne
- come sostituire asset screenshot e verificare le dimensioni
- come eseguire uno scenario QA specifico del repo
- come eseguire il debug di un guasto ricorrente di un provider
- come riparare una nota di workflow locale obsoleta
- fatti come “all’utente piace il blu”
- memoria autobiografica ampia
- archiviazione grezza delle trascrizioni
- segreti, credenziali o testo nascosto del prompt
- istruzioni una tantum che non si ripeteranno
Stato predefinito
Il Plugin incluso è sperimentale e disabilitato per impostazione predefinita a meno che non venga esplicitamente abilitato inplugins.entries.skill-workshop.
Il manifest del Plugin non imposta enabledByDefault: true. Il valore predefinito enabled: true
all’interno dello schema di configurazione del Plugin si applica solo dopo che la voce del Plugin è già stata selezionata e caricata.
Sperimentale significa:
- il Plugin è abbastanza supportato per test opt-in e dogfooding
- l’archiviazione delle proposte, le soglie del revisore e le euristiche di acquisizione possono evolvere
- l’approvazione pending è il modo consigliato da cui iniziare
- l’applicazione automatica è per configurazioni personali/del workspace attendibili, non per ambienti condivisi o ostili ricchi di input
Abilitazione
Configurazione minima sicura:- lo strumento
skill_workshopè disponibile - le correzioni riutilizzabili esplicite vengono accodate come proposte pending
- i passaggi del revisore basati su soglia possono proporre aggiornamenti alle Skill
- nessun file Skill viene scritto finché una proposta pending non viene applicata
approvalPolicy: "auto" usa comunque lo stesso scanner e lo stesso percorso di quarantena. Non
applica le proposte con risultati critici.
Configurazione
| Chiave | Predefinito | Intervallo / valori | Significato |
|---|---|---|---|
enabled | true | boolean | Abilita il Plugin dopo che la voce del Plugin è stata caricata. |
autoCapture | true | boolean | Abilita acquisizione/revisione post-turno sui turni agente riusciti. |
approvalPolicy | "pending" | "pending", "auto" | Accoda le proposte o scrive automaticamente quelle sicure. |
reviewMode | "hybrid" | "off", "heuristic", "llm", "hybrid" | Sceglie acquisizione di correzioni esplicite, revisore LLM, entrambi o nessuno. |
reviewInterval | 15 | 1..200 | Esegue il revisore dopo questo numero di turni riusciti. |
reviewMinToolCalls | 8 | 1..500 | Esegue il revisore dopo questo numero di chiamate di tool osservate. |
reviewTimeoutMs | 45000 | 5000..180000 | Timeout per l’esecuzione del revisore embedded. |
maxPending | 50 | 1..200 | Numero massimo di proposte pending/in quarantena conservate per workspace. |
maxSkillBytes | 40000 | 1024..200000 | Dimensione massima della Skill generata/file di supporto. |
Percorsi di acquisizione
Skill Workshop ha tre percorsi di acquisizione.Suggerimenti dello strumento
Il modello può chiamare direttamenteskill_workshop quando vede una procedura riutilizzabile
o quando l’utente gli chiede di salvare/aggiornare una Skill.
Questo è il percorso più esplicito e funziona anche con autoCapture: false.
Acquisizione euristica
QuandoautoCapture è abilitato e reviewMode è heuristic o hybrid, il
Plugin analizza i turni riusciti alla ricerca di frasi esplicite di correzione dell’utente:
next timefrom now onremember tomake sure toalways ... use/check/verify/record/save/preferprefer ... when/for/instead/usewhen asked
- attività con GIF animate ->
animated-gif-workflow - attività con screenshot o asset ->
screenshot-asset-workflow - attività QA o scenari ->
qa-scenario-workflow - attività GitHub PR ->
github-pr-workflow - fallback ->
learned-workflows
Revisore LLM
QuandoautoCapture è abilitato e reviewMode è llm o hybrid, il Plugin
esegue un revisore embedded compatto al raggiungimento delle soglie.
Il revisore riceve:
- il testo della trascrizione recente, limitato agli ultimi 12.000 caratteri
- fino a 12 Skills esistenti del workspace
- fino a 2.000 caratteri da ogni Skill esistente
- istruzioni solo JSON
disableTools: truetoolsAllow: []disableMessageTool: true
{ "action": "none" } oppure una proposta. Il campo action è create, append o replace — preferisci append/replace quando esiste già una Skill rilevante; usa create solo quando nessuna Skill esistente è adatta.
Esempio di create:
append aggiunge section + body. replace sostituisce oldText con newText nella Skill nominata.
Ciclo di vita della proposta
Ogni aggiornamento generato diventa una proposta con:idcreatedAtupdatedAtworkspaceDir- facoltativamente
agentId - facoltativamente
sessionId skillNametitlereasonsource:tool,agent_endoreviewerstatuschange- facoltativamente
scanFindings - facoltativamente
quarantineReason
pending- in attesa di approvazioneapplied- scritta in<workspace>/skillsrejected- rifiutata da operatore/modelloquarantined- bloccata da risultati critici dello scanner
maxPending.
Riferimento dello strumento
Il Plugin registra uno strumento agente:status
Conta le proposte per stato per il workspace attivo.
list_pending
Elenca le proposte pending.
status:
pendingappliedrejectedquarantined
list_quarantine
Elenca le proposte in quarantena.
skill-workshop: quarantined <skill>.
inspect
Recupera una proposta per ID.
suggest
Crea una proposta. Con approvalPolicy: "pending" (predefinito), questa viene accodata invece di essere scritta.
Forza una scrittura sicura (apply: true)
Forza una scrittura sicura (apply: true)
Forza pending sotto criterio auto (apply: false)
Forza pending sotto criterio auto (apply: false)
Aggiungi a una sezione nominata
Aggiungi a una sezione nominata
Sostituisci testo esatto
Sostituisci testo esatto
apply
Applica una proposta pending.
apply rifiuta le proposte in quarantena:
reject
Segna una proposta come rifiutata.
write_support_file
Scrive un file di supporto dentro una directory Skill esistente o proposta.
Directory di supporto di primo livello consentite:
references/templates/scripts/assets/
maxSkillBytes, sottoposti a scansione e scritti in modo atomico.
Scritture delle Skill
Skill Workshop scrive solo sotto:- in minuscolo
- le sequenze non
[a-z0-9_-]diventano- - i caratteri non alfanumerici iniziali/finali vengono rimossi
- la lunghezza massima è 80 caratteri
- il nome finale deve corrispondere a
[a-z0-9][a-z0-9_-]{1,79}
create:
- se la Skill non esiste, Skill Workshop scrive una nuova
SKILL.md - se esiste già, Skill Workshop aggiunge il body a
## Workflow
append:
- se la Skill esiste, Skill Workshop aggiunge alla sezione richiesta
- se non esiste, Skill Workshop crea una Skill minima e poi aggiunge
replace:
- la Skill deve già esistere
oldTextdeve essere presente esattamente- viene sostituita solo la prima corrispondenza esatta
Modello di sicurezza
Skill Workshop ha uno scanner di sicurezza sul contenuto generato diSKILL.md e sui file di supporto.
I risultati critici mettono in quarantena le proposte:
| ID regola | Blocca contenuto che… |
|---|---|
prompt-injection-ignore-instructions | dice all’agente di ignorare istruzioni precedenti/superiori |
prompt-injection-system | fa riferimento a prompt di sistema, messaggi developer o istruzioni nascoste |
prompt-injection-tool | incoraggia ad aggirare permessi/approvazioni degli strumenti |
shell-pipe-to-shell | include curl/wget pipe a sh, bash o zsh |
secret-exfiltration | sembra inviare dati env/process env sulla rete |
| ID regola | Segnala… |
|---|---|
destructive-delete | comandi ampi in stile rm -rf |
unsafe-permissions | uso di permessi in stile chmod 777 |
- mantengono
scanFindings - mantengono
quarantineReason - compaiono in
list_quarantine - non possono essere applicate tramite
apply
Guida del prompt
Quando abilitato, Skill Workshop inietta una breve sezione di prompt che dice all’agente di usareskill_workshop per la memoria procedurale durevole.
La guida enfatizza:
- procedure, non fatti/preferenze
- correzioni dell’utente
- procedure riuscite non ovvie
- ricorrenza di problemi
- riparazione di Skills obsolete/sottili/sbagliate tramite append/replace
- salvataggio della procedura riutilizzabile dopo lunghi cicli di tool o correzioni difficili
- testo della Skill breve e imperativo
- niente dump di trascrizione
approvalPolicy:
- modalità pending: accoda i suggerimenti; applica solo dopo approvazione esplicita
- modalità auto: applica aggiornamenti sicuri alle Skills del workspace quando sono chiaramente riutilizzabili
Costi e comportamento runtime
L’acquisizione euristica non chiama alcun modello. La revisione LLM usa un’esecuzione embedded sul modello attivo/predefinito dell’agente. È basata su soglie, quindi per impostazione predefinita non viene eseguita a ogni turno. Il revisore:- usa lo stesso contesto provider/modello configurato quando disponibile
- ripiega sui valori predefiniti runtime dell’agente
- ha
reviewTimeoutMs - usa un contesto bootstrap leggero
- non ha strumenti
- non scrive nulla direttamente
- può emettere solo una proposta che passa attraverso il normale scanner e il percorso di approvazione/quarantena
Modelli operativi
Usa Skill Workshop quando l’utente dice:- “la prossima volta, fai X”
- “d’ora in poi, preferisci Y”
- “assicurati di verificare Z”
- “salva questo come workflow”
- “questo ha richiesto un po’; ricordati il processo”
- “aggiorna la skill locale per questo”
- ha forma da trascrizione
- non è imperativa
- include dettagli rumorosi e una tantum
- non dice all’agente successivo cosa fare
Debugging
Controlla se il Plugin è caricato:| Sintomo | Causa probabile | Controllo |
|---|---|---|
| Lo strumento non è disponibile | La voce del Plugin non è abilitata | plugins.entries.skill-workshop.enabled e openclaw plugins list |
| Non compare alcuna proposta automatica | autoCapture: false, reviewMode: "off" oppure soglie non raggiunte | Configurazione, stato delle proposte, log del Gateway |
| L’euristica non ha acquisito | Il testo dell’utente non corrispondeva ai pattern di correzione | Usa skill_workshop.suggest esplicito o abilita il revisore LLM |
| Il revisore non ha creato una proposta | Il revisore ha restituito none, JSON non valido o è andato in timeout | Log del Gateway, reviewTimeoutMs, soglie |
| La proposta non viene applicata | approvalPolicy: "pending" | list_pending, poi apply |
| La proposta è sparita dal pending | Proposta duplicata riutilizzata, pruning del max pending o è stata applicata/rifiutata/messa in quarantena | status, list_pending con filtri di stato, list_quarantine |
| Il file Skill esiste ma il modello non lo vede | Lo snapshot delle Skill non è stato aggiornato o il gating delle skill lo esclude | Stato openclaw skills e idoneità delle skill del workspace |
skill-workshop: queued <skill>skill-workshop: applied <skill>skill-workshop: quarantined <skill>skill-workshop: heuristic capture skipped: ...skill-workshop: reviewer skipped: ...skill-workshop: reviewer found no update
Scenari QA
Scenari QA supportati dal repo:qa/scenarios/plugins/skill-workshop-animated-gif-autocreate.mdqa/scenarios/plugins/skill-workshop-pending-approval.mdqa/scenarios/plugins/skill-workshop-reviewer-autonomous.md
reviewMode: "llm" ed esercita il passaggio del revisore embedded.
Quando non abilitare l’applicazione automatica
EvitaapprovalPolicy: "auto" quando:
- il workspace contiene procedure sensibili
- l’agente lavora su input non attendibili
- le Skills sono condivise tra un team ampio
- stai ancora ottimizzando prompt o regole dello scanner
- il modello gestisce spesso contenuti web/email ostili