Volevo aggiungere una funzionalità a OpenClaw che non esisteva: un digest di Hacker News che riassume le principali notizie ogni mattina e le pubblica su Slack. Non esisteva nulla di simile come abilità. Così ne ho costruita una.
La prima volta ci sono volute quattro ore, comprese due ore a leggere male la specifica dell’abilità. La seconda abilità che ho creato ha richiesto 45 minuti. Alla quinta, riuscivo a crearne una in 30 minuti. Ecco il processo, privo di tutti gli errori che ho commesso lungo il cammino.
Cosa sono realmente le abilità
Un’abilità è una cartella con istruzioni e script opzionali. Al minimo, contiene un file SKILL.md — un documento markdown che dice a OpenClaw cosa fa l’abilità, quando attivarla e come usarla.
È tutto qui. Niente compilazione. Niente registro dei pacchetti. Niente sistema di build. Un’abilità è un documento che OpenClaw legge quando deve eseguire un compito specifico.
L’abilità più semplice possibile:
Una cartella chiamata daily-hn-digest contenente un singolo file, SKILL.md, con istruzioni come: “Quando l’utente chiede un digest di Hacker News, usa lo strumento web_search per trovare le attuali notizie principali su Hacker News, riassumile in 2-3 frasi e formatta il risultato come un elenco puntato.”
Funziona. L’agente legge le istruzioni, le segue e produce un digest di Hacker News. Non è necessario alcun codice.
Aggiungere complessità quando è necessario
L’abilità di base gestisce casi semplici. Per flussi di lavoro più complessi, puoi aggiungere:
File di riferimento. La mia abilità di Hacker News include una cartella refs/ con esempi di output — mostrando all’agente come appare un buon digest. Questo migliora notevolmente la coerenza. Invece di “riassumi le storie,” l’agente vede “ecco come appare un buon riassunto — segui questo formato.”
Script. Alcune abilità includono script shell o script Python per compiti che l’AI non può eseguire direttamente. La mia abilità di digest include uno script che recupera l’API di Hacker News (più veloce e affidabile del web scraping). Le istruzioni dell’abilità dicono all’agente di eseguire lo script e processarne l’output.
Configurazione. Le abilità possono leggere da file di configurazione. La mia abilità di digest ha un config.yaml che specifica quante storie includere (predefinito: 10), quali categorie prioritizzare e il formato di output (Slack, email o testo semplice).
La struttura che funziona
Dopo aver costruito circa una dozzina di abilità, ecco la struttura della cartella su cui mi sono stabilito:
my-skill/
├── SKILL.md — Istruzioni principali (richieste)
├── refs/ — Esempi di input e output (opzionali)
├── scripts/ — Script di supporto (opzionali)
└── config.yaml — Configurazione (opzionale)
SKILL.md è il file più importante. Dovrebbe includere:
1. Una descrizione chiara di ciò che fa l’abilità
2. Quando l’abilità dovrebbe attivarsi (condizioni di attivazione)
3. Istruzioni passo dopo passo per il flusso di lavoro
4. Indicazioni per la gestione degli errori
5. Esempi di output buoni
La qualità del tuo SKILL.md determina direttamente la qualità dell’abilità. Un SKILL.md vago produce risultati incoerenti. Un SKILL.md preciso produce risultati affidabili.
Scrivere buone istruzioni
La lezione più grande che ho imparato: scrivi SKILL.md come se stessi formando un nuovo dipendente, non come se stessi scrivendo documentazione.
Cattivo: “Recupera le notizie di Hacker News e riassumile.”
Buono: “Recupera le 10 principali storie dall’API di Hacker News utilizzando lo script in scripts/fetch-hn.sh. Per ogni storia, scrivi un riassunto di 2-3 frasi che copra: cosa è successo, perché è rilevante e la reazione della comunità (se notevole). Formatta come un elenco numerato con il titolo della storia come link.”
La versione buona elimina l’ambiguità. L’agente sa esattamente cosa fare, che formato usare e quali informazioni includere. Nessun margine per interpretazioni creative dove non è desiderato.
Includi le modalità di errore. “Se l’API di Hacker News non è raggiungibile, usa web_search come fallback. Se ci sono meno di 5 storie disponibili, annota questo nell’output e procedi con quelle disponibili. Non inventare storie.”
Includi i confini. “Non editorializzare. Non aggiungere opinioni sulle storie. Non saltare storie perché sembrano poco importanti. Presenta tutte le storie principali in modo neutrale.”
Testare la tua abilità
Il processo di testing è semplice: installa l’abilità, attivala e controlla l’output.
Per la mia abilità di Hacker News:
1. Copia la cartella nella directory delle abilità
2. Riavvia OpenClaw (o aspetta che rilevi la nuova abilità)
3. Digita “Dammi un digest di Hacker News”
4. Controlla l’output rispetto alle aspettative
5. Modifica SKILL.md in base a ciò che è andato storto
Di solito passo attraverso 3-4 cicli di revisione prima di essere soddisfatto. Problemi comuni: l’agente salta passaggi (aggiungere istruzioni più esplicite), formattazione incoerente (aggiungere un esempio di output) o includere informazioni che non volevi (aggiungere confini espliciti).
Pubblicazione e condivisione
Una volta che la tua abilità funziona, puoi condividerla attraverso ClawHub — il mercato delle abilità della comunità. Carica la tua cartella di abilità, aggiungi una descrizione e altri utenti possono installarla con un solo comando.
Prima di pubblicare, sistemare la tua abilità: rimuovi eventuali configurazioni personali, aggiungi un README con istruzioni di configurazione e testala su un’installazione fresca di OpenClaw per assicurarti che non dipenda dal tuo ambiente locale.
Le migliori abilità della comunità sono focalizzate (fanno una cosa bene), ben documentate (chiaro SKILL.md) e solide (gestiscono i fallimenti con grazia). Le peggiori sono vaghe (“usa l’AI per fare cose”), mal documentate o fragili.
Le mie abilità personalizzate preferite
A parte il digest di Hacker News, ecco le abilità personalizzate che uso quotidianamente:
Preparazione incontri. Prima di un incontro, dico “preparati per il mio incontro delle 14 con [cliente].” L’abilità recupera le email recenti, aggiornamenti di progetto e questioni aperte relative a quel cliente e compila un briefing di una pagina.
Assistente per la revisione del codice. Quando invio codice, l’abilità lo esamina rispetto agli standard di codifica del nostro team (documentati in un file di riferimento) e pubblica commenti nel nostro canale di team.
Generatore di retro settimanali. Ogni venerdì, l’abilità compila ciò che ho realizzato quella settimana (da commit su GitHub, messaggi Slack e completamenti di attività) e redige un riepilogo settimanale.
Ciascuna di queste ha richiesto circa un’ora per essere costruita. Ognuna risparmia 15-30 minuti per utilizzo. Il ROI è ovvio.
🕒 Published: