Skills
Creazione di Skills
Skills insegna all'agente come e quando usare gli strumenti. Ogni skill è una directory
che contiene un file SKILL.md con frontmatter YAML e istruzioni markdown.
OpenClaw carica le Skills da più radici in un ordine di precedenza definito.
Crea la tua prima skill
Crea la directory della skill
Le Skills risiedono nella cartella skills/ del tuo workspace. Crea una directory per la tua
nuova skill:
mkdir -p ~/.openclaw/workspace/skills/hello-worldPuoi raggruppare le skill in sottocartelle per organizzarle: la skill viene comunque
denominata dal frontmatter di SKILL.md, non dal percorso della cartella:
mkdir -p ~/.openclaw/workspace/skills/personal/hello-world# skill name is still "hello-world", invoked as /hello-worldScrivi SKILL.md
Crea SKILL.md all'interno della directory. Il frontmatter definisce i metadati;
il corpo fornisce istruzioni all'agente.
---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!" Regole di denominazione:- Usa lettere minuscole, cifre e trattini per `name`.- Mantieni allineati il nome della directory e il `name` del frontmatter.- `description` viene mostrata all'agente e nella scoperta dei comandi slash: mantienila su una riga e sotto i 160 caratteri. OPENCLAW_DOCS_MARKER:stepClose: OPENCLAW_DOCS_MARKER:stepOpen:IHRpdGxlPSJWZXJpZmljYSBjaGUgbGEgc2tpbGwgc2lhIHN0YXRhIGNhcmljYXRhIg ```bashopenclaw skills listOpenClaw osserva per impostazione predefinita i file SKILL.md sotto le radici delle Skills. Se il
watcher è disabilitato o stai continuando una sessione esistente, avviane una nuova
in modo che l'agente riceva l'elenco aggiornato:
# From chat — archive current session and start fresh/new # Or restart the gatewayopenclaw gateway restartTestala
Invia un messaggio che dovrebbe attivare la skill:
openclaw agent --message "give me a greeting"Oppure apri una chat e chiedi direttamente all'agente. Usa /skill hello-world per
invocarla esplicitamente per nome.
Riferimento di SKILL.md
Campi obbligatori
| Campo | Descrizione |
|---|---|
name |
Slug univoco con lettere minuscole, cifre e trattini |
description |
Descrizione su una riga mostrata all'agente e nell'output di scoperta |
Chiavi frontmatter opzionali
| Campo | Predefinito | Descrizione |
|---|---|---|
user-invocable |
true |
Espone la skill come comando slash utente |
disable-model-invocation |
false |
Esclude la skill dal prompt di sistema dell'agente (funziona comunque tramite /skill) |
command-dispatch |
— | Imposta su tool per instradare il comando slash direttamente a uno strumento, bypassando il modello |
command-tool |
— | Nome dello strumento da invocare quando è impostato command-dispatch: tool |
command-arg-mode |
raw |
Per il dispatch allo strumento, inoltra allo strumento la stringa di argomenti grezza |
homepage |
— | URL mostrato come "Sito web" nell'interfaccia Skills di macOS |
Per i campi di gating (requires.bins, requires.env, ecc.) vedi
Skills — Gating.
Uso di {baseDir}
Usa {baseDir} nel corpo della skill per fare riferimento ai file all'interno della directory
della skill senza codificare percorsi fissi:
Run the helper script at `{baseDir}/scripts/run.sh`.Aggiunta dell'attivazione condizionale
Applica un gate alla tua skill in modo che venga caricata solo quando le sue dipendenze sono disponibili:
---name: gemini-searchdescription: Search using Gemini CLI.metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }---Opzioni di gating
| Chiave | Descrizione |
|---|---|
requires.bins |
Tutti i binari devono esistere in PATH |
requires.anyBins |
Almeno un binario deve esistere in PATH |
requires.env |
Ogni variabile env deve esistere nel processo o nella configurazione |
requires.config |
Ogni percorso openclaw.json deve essere truthy |
os |
Filtro piattaforma: ["darwin"], ["linux"], ["win32"] |
always |
Imposta true per saltare tutti i gate e includere sempre la skill |
Riferimento completo: Skills — Gating.
Ambiente e chiavi API
Collega una chiave API a una voce skill in openclaw.json:
{ skills: { entries: { "gemini-search": { enabled: true, apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, }, }, },}La chiave viene iniettata nel processo host solo per quel turno dell'agente. Non raggiunge la sandbox: vedi variabili env sandboxed.
Proponi tramite Skill Workshop
Per skill redatte dall'agente o quando vuoi una revisione dell'operatore prima che una skill diventi
attiva, usa le proposte di Skill Workshop invece di scrivere
direttamente SKILL.md.
# 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"Usa --proposal-dir quando la proposta include file di supporto:
openclaw skills workshop propose-create \ --name "hello-world" \ --description "A simple skill that prints a greeting." \ --proposal-dir ./hello-world-proposal/La directory deve contenere PROPOSAL.md. I file di supporto possono andare in assets/,
examples/, references/, scripts/ o templates/.
Dopo la revisione:
openclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>Vedi Skill Workshop per il ciclo di vita completo della proposta.
Pubblicazione su ClawHub
Assicurati che il tuo SKILL.md sia completo
Verifica che name, description e tutti i campi di gating metadata.openclaw
siano impostati. Aggiungi un URL homepage se hai una pagina di progetto.
Installa la skill ClawHub
La skill ClawHub documenta la forma attuale del comando di pubblicazione e i metadati richiesti:
openclaw skills install @openclaw/clawhub-publishPubblica
clawhub publishVedi ClawHub — Pubblicazione per il flusso completo.
Best practice
Correlati
Ordine di caricamento, gating, allowlist e formato SKILL.md.
Coda di proposte per skill redatte dall'agente.
Schema di configurazione skills.* completo.
Sfoglia e pubblica skill nel registro pubblico.
I Plugin possono distribuire skill insieme agli strumenti che documentano.