Benvenuto o benvenuta, io sono Filippo Strazzi e stai ascoltando Avocati Mac Compendium Compendium è un podcast in cui parlo delle mie esperienze quotidiane con la tecnologia, in particolare con quella app.
Compendium fa parte del network Ramtere e la Radio Geek questa è la puntata 85 nella quale ti parlerò delle skill di cosa sono perché sono utili, sono indispensabili nel mondo legale professionale e di come funzionano.
Questa è una puntata introduttiva.
Probabilmente ne seguiranno altre con aspetti più tecnici.
Ma prima sigla, una rapidissima comunicazione di servizio.
Registro metà luglio, la puntata dovrebbe uscire invece a fine luglio la settimana prossima sarò in vacanza con la famiglia quindi ovviamente mi devo mettere avanti, non c'è ancora registrazione su YouTube.
Penso che appunto se ne se ne riparlerà verso settembre perché in questo periodo estivo la situazione è quella che è.
Altre grandi cose ecco, probabilmente c'è la possibilità che nel mese di agosto invece non ci siano puntate o ci sia solo una puntata.
Adesso vedrò come sono messo a livello di programmazione e cosa da settembre, conto invece di ripartire più o meno con la cadenza ogni due settimane.
Partiamo e andiamo subito nel nucleo della puntata, e facciamo una permessa.
Il contesto: le skill possono essere usate sia nelle chat, poi vedremo cos'è una skill.
Però, intanto volevo far capire meglio dove si possono utilizzare, ma diciamo, se sono, tra virgolette, possono essere comode in una chat.
Ovviamente, anche qui le skill devono essere supportate dal sistema di chat.
Piccola parentesi: stavo facendo dei test con un slot Studio sul mio Mac Studio e mi sono reso conto, tristemente che le skill non sono gestite da questo sistema, ma altre cose, sì.
E questo mi ha un po' intristito perché se avesse avuto anche la possibilità di gestire le skill.
Insomma, ci sono modi per farlo, lo vedremo eventualmente in altre puntate, ma sarebbe stato molto comodo.
Il suo uso migliore l'uso migliore delle skill, però è con gli assistenti agentici di A.
Un assistente agentico può eseguire più passi in autonomia.
Leggere file, scrivere documenti, eseguire comandi, mentre la chat normale abitualmente è conversazionale e quindi lì si ferma.
La differenza sostanzialmente è tra chiedere un consiglio in una chat e delegare invece un compito alla gente.
Le skill ovviamente danno alla gente le istruzioni per svolgere il compito che li vuoi demandare.
Abitualmente questi strumenti sono Cloud Code, Cloud Cowork o Codex.
Poi gli assistenti agentici li vediamo diciamo dal più facile al più complesso.
Attualmente gli assistenti agentici che io consiglio proprio per iniziare, sono Cloud Cowork e ciò GPT Work che di fatto è la copia di Cowork anche se devo dire la verità.
C'è GPT Work.
Non lo ancora mai testato anche se ne avrei la possibilità, quelli un po' più complessi sono Cloud Code che esiste nella versione diciamo desktop e quindi all'interno diciamo di applicazione desktop di Claude Codex, che invece adesso una settimana o due fa è stato inserito nell'app di c'è GPT.
Quindi ormai adesso c'è una strana distinzione, una strana gestione, ma comunque c'è un'applicazione Codex.
E poi ci sono ovviamente le stesse applicazioni, ma a riga di comando quindi a terminale e poi abbiamo Open Code, che diciamo è la soluzione open della vicenda.
Diciamo che è molto interessante più che altro perché se Cloud Code e Codec salvo situazioni particolari, salvo piccoli hack possono essere utilizzati solo e esclusivamente con i relativi sistemi.
Quindi con Cloud Cloud Code con i vari modelli Cloud e invece Codec con i vari modelli di Open AI sostanzialmente.
Open Code ti dà la possibilità di utilizzare invece svariati sistemi anche quelli i vari cinesi mettiamoli nei modelli cinesi, ma soprattutto io, per esempio, lo utilizzo molto con Open Router e con un utilizzo consumo diciamo di token del sistema.
Fate, diciamo, queste premesse su dove si possono utilizzare le skill.
Diciamo, vediamo invece cosa sono esattamente le skill.
Cercherò di dartene una definizione inizialmente abbastanza molto semplice, anche perché poi, nella sostanza, sono un trucco che appunto, essendo un trucco, mettiamola così, poi si può adattare a tante soluzioni.
Oggi non credo che ti racconterò tutti le modalità come utilizzare le skill anche nei sistemi chiamiamoli così non supportati, ma ti premetto già che è possibile farlo.
Nella sostanza, cosa sono le skill?
Quindi, quindi fate questa parentesi, sono delle ricette che spiegano i large language model o l'intelligenza artificiale generativa come fare una cosa.
Sono scritti in linguaggio naturale, abitualmente sono scritte in formato Markdown.
Ne ho già parlato mille volte del fatto che il Markdown è una delle lingue franche dei modelli dell'IA generativa.
Quindi, nella concretezza, questi file spiegano al Large Language Model come fare un determinato flusso di lavoro.
L'esempio che posso darti, che probabilmente è più compatibile con il legale, diciamo: è come spiegare al praticante, l'Aarge Language Model come lavoro legale.
Le skill di Cloud sono più potenti delle semplici cosiddette custom instruction o system Prom perché da una parte si attivano solo quando sono rilevanti quindi solo utilizzando quando vengono invocate, diciamo, possono contenere codice eseguibile.
Questo qui, ovviamente, solo se sono non in chat, ma appunto, si utilizzano un assistente iarga di comando, questo ovviamente è potenzialmente anche pericoloso nel mondo legale e non solo, ma offre enormi potenzialità proprio perché ti permette di far fare cose sul tuo computer attraverso le skill attraverso questa diciamo programmazione, a large language model.
Un esempio che ti faccio è una delle skill che mi sono creato per me stesso è quella della trascrizione da audio a testo.
Faccio una brevissima parentesi, ma credo che sia utile per spiegare il sistema.
Nella sostanza sui Mac, ma comunque su tutti i computer che hanno la capacità, diciamo di computazionale, mettiamola così, è possibile utilizzare Whisper o altri sistemi di riconoscimento da audio a testo, quindi di conversione da audio a testo, per appunto creare una trascrizione da un file MP3 o un file audio sostanzialmente.
Io, per esempio, lo uso molto per le trascrizioni di questo podcast.
Benissimo esistono sia delle applicazioni a pagamento ne ho parlato varie volte.
La transcriber dell'amico Alex Carculia, MacWisper che sostanzialmente impacchettano in un'applicazione desktop, diciamo Whisper, che di fatto è un modello e un sistema riga di comando.
Ovviamente, quando ho iniziato a giocare con le skill, mi sono reso conto che, per esempio, appunto per continuare tutto il mio flusso di lavoro diventava comodo avere la possibilità di non dover prendere il file, spostarlo nell'applicazione di Alex piuttosto che in Mac Whisper, aspettare che facesse la trascrizione, salvare la trascrizione sul computer e poi passarla all'archio language model per fare altre cose.
Ma sarebbe diventato molto più semplice fare un processo dove il sistema faceva già tutto in automatico e questo è possibile.
Ho creato appunto una skill apposta.
La trovare poi di riferimento alle skill, diciamo dell'uso del mondo legale che ho creato, dove nella sostanza, la Skill spiega come eventualmente scaricare il modello a riga di comando all'arge language model, verificare, ovviamente che il modello eventualmente sia già stato installato se se ovviamente l'hai già usato, e poi i comandi a terminale per fare la trascrizione e salvarla direttamente nel formato che mi interessa.
Tutto questo ovviamente senza che io poi alla fine debba sporcarmi, diciamo le mani con la riga di comando.
E tra l'altro, appunto, siccome queste skill possono lavorare uno in sequenza all'altro o una in concomitanza all'altra.
È ovvio che mi ha permesso, ovviamente, soprattutto per il podcast, per i podcast, di automatizzare maggiormente tutto il sistema.
Sono anche modulari e componibili, come di fatto ti ho già accennato prima, quindi il vantaggio, qual è che io posso creare delle chiamiamole così micro skill, cioè delle singole funzioni, diciamo, delle singole ricette per fare la cosa A e poi per fare la cosa B e poi per fare la cosa C e poi, in base al flusso di lavoro che di cui ho bisogno, quindi ho bisogno solo della funzione A e della funzione C, io posso dire fai A e poi dopo fai C, oppure fai C, poi A e poi B.
Insomma, posso comporre e strutturare il tutto.
Altre esempio, giusto per farla capire con vari sistemi, per esempio, ho creato una skill per utilizzare meglio l'MCP di Boudalò, che sostanzialmente mi dà accesso alla giurisprudenza che può fare per me l'intelligenza artificiale di fare ricerca direttamente nella banca dati di Boudalo, ho creato questa skill che da una parte ottimizza queste ricerche perché gli dà tutti i parametri migliori, diciamo, per fare la ricerca e strappola anche tutta una serie di informazioni, diciamo, di colorario per poi ottimizzare le ricerche.
Ma questa skill di Budalò la posso utilizzare in concomitanza con altre skill, per esempio, ho creato questa skill per creare gli atti, e ovviamente quando faccio creare gli atti, dico per tutte le ricerche giurisprudenziali, uso la skill di Buddha, che poi usa l'MCP di Budalò per fare ricerche giuridiche.
Quindi si vede come le singole skill possono essere poi unita, concatenati l'uno all'altro e quindi ogni attività, ogni compito può essere messo assieme.
Ecco, poi ne parleremo meglio, ma ho creato anche una skill per normativa.
An qui la skill normativa e la skill del Boudalò perciamo avere riferimenti normativi e avere riferimenti giurisprudenziali all'interno del documento, ovviamente possono lavorare in concomitanza, quindi, quando cito un articolo di una legge di un codice e così via, utilizza la skill di normativa.
Quando invece cita la giurisprudenza, crea un link su Boudalà per andare a esaminare il testo completo della sentenza, estrapola le informazioni da Boudalò di quel documento per trovare la giurisprudenza, il caso pratico e così via.
Infine, seguono uno standard aperto: le skill nascono, diciamo, sono stati inventate, chiamiamole così, da Antropic quindi per Cloud, ma nella sostanza, più o meno, tutti i grandi provider ti permettono di utilizzare le skill, poi, a volte, in base ai provider, diciamo, hanno creato dei dialetti o delle capacità particolari.
Quindi, per esempio, nel mio progetto di skill legali, siccome le utilizzo sia con Clude che con Codex, che sono rispettivamente Antropic e Open AI, ogni volta che faccio generare le skill, le faccio generare per tutte le due piattaforme con le particolarità di tutte le piattaforme.
L'altro vantaggio grosso è che le custom instruction o i sostanzialmente system prompt sono come delle note permanenti, che le A legge sempre che consumano sostanzialmente contesto e token, mentre le skin sono dei manuali che si consultano solo quanto servono.
Quindi è come se io dovessi utilizzare il forno microonde, non so come funziona, e quindi cerco il manuale del forno di microonde, ma quando non utilizzo il microonde, io questo manuale ce l'ho lì nel mio archivio, esiste e so che esiste e appunto so che quando devo utilizzarlo posso andare a cercare lì, ma il mio contesto già, tutte queste informazioni vengono caricate nel contesto solo e esclusivamente quando servono.
Questo ovviamente è molto utile perché da una parte appunto non mi sporca il contesto con informazioni inutili se non quando servono, diciamo.
E dall'altra, mi permette diciamo specializzare il large language model in tante situazioni, rispetto a tante circostanze e questo aiuta molto.
La domanda è perché sono utili queste skill.
Innanzitutto, nella sostanza sono delle SOP, cioè delle standard operation procedure che nel mondo legale non vengono utilizzate molto.
Mettiamola così.
Io invece sono un fanatico di questo sistema.
Sostanzialmente sono delle procedure standard per svolgere un'operazione, appunto, sono delle ricette, sono delle descrizioni dei flussi di lavoro che quindi sono doppiamente vantaggiose, perché da una parte ti permettono di formalizzare come lavori, e dall'altra, appunto, ti permettono di standardizzare le attività dello studio legale.
Per cui se io spiego per esempio come si crea un link normativa in una skill, il large language model non dovrà inventare ogni, ma facendo le opportune ricerche, quindi, per esempio, recuperando il numero della legge l'articolo della legge e sapendo come si compone sostanzialmente quali sono i dati essenziali per comporre un link normativa, me lo riesce a gestire.
Riesce anche a gestire, per esempio, tutte le particolarità di link normativa, cioè solitamente dei codici più grandi, diciamo, codice civile, procedura civile, codice penale e così via, perché sa tutti i trucchetti, mettiamola così, per fare queste cose.
Inoltre, quindi abbiamo standardizzazione sostanzialmente, abbiamo anche la possibilità di verificare e perfezionare i flussi di lavoro dello studio legale, ovvero abitualmente, cosa faccio quando creo una skill per il mondo legale.
Abitualmente ho dovuto svolgere un compito mi sono reso conto che questo compito è ripetitivo, diciamo, in alcune maniere, e diciamo, ho avuto un processo, diciamo non lineare per svolgere questo compito.
Una volta che me ne accorgo: se me ne accorgo, ovviamente, io quando ho realizzato quello che volevo fare, dico: va benissimo.
A fronte di tutta questa conversazione, generiamo una skill.
A questo punto diciamo nasce la prima versione della skill, nasce un primo sistema di funzionamento che poi posso, tra l'altro, richiamare le volte successive che mi serve, ma soprattutto posso ottimizzare.
Anche qui appunto, te l'ho già detto in varie salse quindi nelle note dell'episodio.
Lascerò il link al mio repository sulle skill legali, quello che vedrai tra le varie cose.
È che questo repository è cresciuto nel tempo, credo credo di averlo iniziato a utilizzare da aprile di quest'anno, guardo velocemente sul repository.
Direi: sì, che le prime cose che ho creato.
Appunto, la skill per normativa l'ho creata a inizio aprile e come vedrai sono state generate progressivamente svariate altre skill, ma soprattutto ho anche modificato le skill, o meglio, ho cercato di ottimizzarle sostanzialmente.
Questo per esempio con normativa avevo creato un primo core, chiamiamolo così del funzionamento normativo.
Funzionava tutto quindi i link funzionavano e così via.
Poi ho cercato di ottimizzarla e a fronte delle necessità sopravvenute mettiamola in questi termini.
Per esempio, ho inserito tutto un sistema che gestisce anche le successioni di norme.
Quindi il testo normativo che si modifica nel tempo e ti permette anche di avere i link ai testi cosiddetti abrogati, cioè precedenti e non più vigenti, e in questa maniera oltretutto, appunto, siccome è possibile creare questi link che diventano molto utili per verificare, ovviamente quello che dice il Large Language Model, ma attraverso questi link, ovviamente il Large Language Model può attingere alla normativa di riferimento corretta in quel momento specifico e quindi ridurre anche lì gli errori.
Nella sostanza, appunto, quello che ho fatto io, che ho già più o meno raccontato, è creare una serie di ricette per velocizzare e aiutare il mio lavoro quotidiano.
Da una parte ho creato questo reposito perché mi è comodo nel senso che spesso e volentieri se cambio computer, se faccio altre cose, ho tutto lì e so che esiste, posso copiare anche io e sostanzialmente installare, anche io sui vari computer dove utilizzo i vari large language mode.
Secondariamente questo mi permette di avere una storia, quindi avere le varie versioni delle skill.
Quindi potere, se vedo che ci sono dei problemi, tornando indietro, poter versionare, si dice tutte le varie cose, giusto per intenderci, alcune skill che ho creato: sono quella di normativa, sono quella di Boudalò appunto, che sostanzialmente migliora l'interazione con il sistema di Boudalau.
Ho creato quello che dal mio punto di vista, ma ancora una versione molto acerba, mettiamola così, aiuta a rendere più chiari leggibili gli atti legali.
Sostanzialmente prendendo lo spunto, diciamo, del libro da come scrivere in plain English, diciamo di Brian Gardner.
Ma anche qui avevo creato dei flussi di lavoro collegati a questo.
Non avevo mai creato una skill apposta per fare solo questa cosa qua.
Quello che ho visto che c'ero, diciamo, quello che ho aggiunto, per esempio, è stato il fatto che sono andato anche a cercare tutto il materiale di riferimento per il mondo legale italiano, e se c'erano appunto qualcosa di simile a Brian Gardner, diciamo, nel mondo italiano.
Ho scoperto che non c'era, ma ho scoperto anche che ci sono vari autori che si sono dedicati a queste cose e quindi appunto l'ho potuto inserire.
Ho inserito, per esempio, un'altra skill, il miglioratore di prompt legale.
Quindi, quando si chiama questa skill, sostanzialmente se fai un prompt, chiamiamo così generico o comunque non strutturato, che quindi funziona meno bene con i large language model.
Questa skill può essere invocata, può appunto farti delle domande, migliorare, e sostanzialmente a quel punto lì poi darti delle risposte più approfondite, appunto, avendo un contesto migliore sostanzialmente passando a un contesto migliore all'arge language model, ottenere risultati migliori nella risposta.
Queste skill, ovviamente, come ti dicevo, sono in continuo sviluppo.
Infatti, ti suggerisco, diciamo, di guardare il reposito adesso, non è che vengono fuori ogni 5 minuti, però, nell'ultimo periodo, in base poi sostanzialmente a quello che sto affrontando in quel momento specifico al lavoro, ho fatto varie cose.
Per esempio, l'ultima skill, diciamo, che ho creato, si chiama Memo legale strutturale memo legale strutturato, che, diciamo, è una skill pensata, diciamo, per creare dei memo legali italiani brevi e operativi, prendendo spunto, diciamo, dal mondo anglosassone, ma ovviamente cercando di renderlo più compatibile col mondo italiano.
Il problema è che inizia a avere veramente tante skill e quindi anche poi tutta l'attività successiva di test di controllo è importante e appunto ci vuole anche un minimo di tempo, diciamo, per gestirla.
Vediamo quindi a come creare queste skill.
Beh allora, come ti raccontavo, sostanzialmente sono dei file markdown, quindi volendo, si possono fare a mano.
Secondo me non è utilissimo, ma può essere utile invece fare la revisione manuale delle skill a mano.
Perché non è utilissimo scrivere le skill a mano, perché, nella sostanza, la skill comunque richiede tutta una serie di informazioni che spesso volentieri, se hai studiato come funziona tutto il sistema, ok, ma tendenzialmente, siccome ci sono tutta una serie di informazioni che devi devi sapere, mettiamole in questi termini, è più comodo farlo con l'ausilio dell'intelligenza artificiale.
Questo per vari motivi: innanzitutto, perché quasi tutti i sistemi principali hanno comunque una skill pensata per creare le skill, quindi hanno già un flusso di lavoro definito per creare la skill.
Inoltre, di fatto tu puoi spiegare all'intelligenza artificiale quello che vuoi, quello che vorresti ottenere, diciamo, demandare anche tutta una serie di ricerche e di approfondimenti all'intelligenza artificiale, fargli generare una prima bozza di skill, testarla, migliorarla e poi aggiustarla progressivamente.
Lì, secondo me invece è utile, per esempio, una volta che hai la skill funzionante, mettiamola in questi termini, e diciamo, hai dei piccoli tweak, delle piccole correzioni da apporre, invece lavorare manualmente.
Tuttavia, per esempio, giusto per farti un esempio, la skill di normativa, io cosa ho fatto?
Mi ho detto: voglio fare questa skill, le ho dato le pagine web dove c'erano tutto il materiale legato a normativa e come si creano i link.
Gli ho dato due o tre dritte che potevo dargli solo io perché sapevo meno male alcune cose come funzionavano, gli ho fatto fare una prima skill e poi progressivamente a fronte di test vari ed eventuali, liel' fatta migliorare.
Ho già detto appunto che c'ero skill creator, quindi non mi ripeto, e ti ho anche già raccontato più o meno come ho generato la skill di normativa.
L'esempio di una skill è abbastanza semplice, ma mi sembra giusto, anche se siamo in un podcast, diciamo, orale, poi se ho modo, nelle note dell'episodio, metterò comunque anche il testo, diciamo di come è strutturata di base la skill.
Ma quello che è lo standard, diciamo di Entropic.
Poi per esempio, Open Eye già fa qualcosa di un pino diverso.
Comunque hai un'intestazione che si chiama YAML, cioè sostanzialmente un'intestazione con dati strutturati, in pratica sono tre lineette che aprono e chiudono l'intestazione YAML del file Markdown, il primo campo è name, quindi il nome della skill, il secondo campo necessario è la description, cioè appunto la descrizione di come è fatta, di cosa fa la skill, e quando deve scattare, diciamo.
Nome della skill e description sono le uniche cose che vengono caricate nel contesto dell'archest model quando si usano le skill.
Se poi tu chiami la skill, diciamo, a questo punto o comunque il sistema ritiene che sia necessario la skill per la domanda che hai posto, allora viene caricato anche tutto il contesto della skill che sta subito dopo il file YAML, e sostanzialmente è una descrizione punto per punto passo dopo passo, di cosa devi fare.
Quindi adesso l'esempio che avevo fatto in un'altra di citazione quando redigi un atto di citazione, prima inserisci l'intestazione, con tribunale sezione, indica le parti, esponi i fatti in modo cronologico, cita le norme con l'inca normativa, fai le conclusioni specifica alle domande richieste, verifica i requisiti dell'articolo 163, ovviamente, questo è un esempio molto banale, ma ti dà un'idea sostanzialmente di come funzionano le skill.
Poi appunto, come ti dicevo, se vuoi vedere nel dettaglio, tutto puoi andare tranquillamente a guardare il repository delle mie skill, quindi capire sostanzialmente nel dettaglio come sono state fatte, cosa è stato inserito dentro.
Anche qui io spesso e volentieri alcune, soprattutto quando nascono, diciamo, non faccio tutti questi approfondimenti.
E poi solo progressivamente, in base agli errori o a cose che non mi tornano, mettiamolo così, o casi anche speciali, diciamo che non avevo pensato originariamente, vado e faccio fare abitualmente modifiche a tutta la large language model di queste skill e cerco di ottimizzare.
Un'altra cosa importante da conoscere per creare e lavorare con le skill è il concetto di progressive disclosure.
È un termine che nasce nell'interaction design degli anni 80, attribuito a Ben Miderman.
Spero che di averlo letto correttamente.
Per presentare le informazioni in strati successivi solo quando l'utente è pronta a riceverle e invece di mostrare tutto subito.
Come si applica alle skill?
Significa che la gente carica il contesto solo quando serve e nella misura strettamente necessaria.
Questo perché?
Perché ovviamente anche qui l'ho detto varie volte, ma lo ripeto, non si va a bruciare, o comunque non si va a inserire troppe informazioni all'interno del contesto.
Innanzitutto, appunto si ha potenza senza consumo eccessivo di token.
Cioè il principio fondamentale a ogni stadio di carica si carica solo il minimo indispensabile per determinare se passare allo stadio successivo.
Quindi spesso e volentieri, per esempio, la skill è strutturata step, vengono caricati i primi step, o addirittura quello che spesso succede, è che la skill prevede tutti gli step, e poi ogni singolo step è inserito in un file successivo.
Ovviamente, in base agli step viene caricato quel singolo file e quelle singole informazioni.
L'altro discorso è appunto che si evita il cosiddetto lost in the middle, sostanzialmente i modelli linguistici non processano tutto il contesto in modo uniforme, ma spesso i volentieri danno più peso all'inizio e alla fine del contesto.
Quindi, spesso e volentieri, se ci sono informazioni a metà skill, diciamo in un prompt molto grosso, diciamo, rischi si rischia.
Quindi ha per esempio 15.000 token, si rischia che parte dell'informazione venga persa, quindi ovviamente il large model non svolga tutto.
Inoltre, ovviamente c'è meno rumore, meno confusione.
Se ho caricato 20 skill, per esempio contemporaneamente e che non mi servono, ma me ne servono solo una o due, è ovvio che il large language model casomai rischi di sbagliare, diciamo, o addirittura di fraintendere le informazioni di una skill con un'altra.
Invece, in questa maniera, ovviamente viene caricato solo quello che è necessario e ovviamente essendo caricato solo quello che è necessario, il prompt, le domanda, la domanda all'arge model è più piccola, mettiamola in questi termini, e quindi si consumano sia meno token per il prompt, sia tendenzialmente la risposta sarà più centrata e quindi verranno la risposta consumerà anche meno token.
Come si implementa?
Io abitualmente lo faccio dicendoglielo: nel senso: la prima interazione è generare la skill completa.
Mettiamola così.
Gli do un occhio veloce, vedo se funziona.
A questo punto chiedo di ottimizzarla per la progressive disclosure.
In questo modo sostanzialmente la skill più o meno è già strutturata, e quindi viene fatto solo un singolo passaggio per verificare, appunto che questi principi siano stati attuati.
Abitualmente lo dichiaro, almeno dal mio esperienza personale la progressive disclosure non viene utilizzata quando si generano questi skill dai generatori di skill, da quello che ho visto io.
Quindi spesso volentieri le skill sono molto grosse, soprattutto ovviamente se l'attività è complessa e il passaggio specifico di progressive disclosure diventa utile.
Io proprio gli scrivo ottimo ottimizza la skill, seguendo il principio della progressive disclosure.
Anche perché anche qui sono quelle informazioni, bene o male che i large language model, soprattutto quelli evoluti, sanno fare, diciamo, hanno già il concetto, e quindi non è richiesto una cosa particolare, spesso e volentieri cosa succede, la skill viene spezzettata, e la struttura della skill non è un singolo file, ma c'è il file skill.md che la skill vera e proprio il file principale dove sono contenuti le informazioni principali della skill, e poi ci sono i cosiddetti references, c'è una sottocartella dentro la cartella della singola skill dove vengono inserite tutte queste informazioni.
Per esempio gli script da lanciare, le informazioni utili.
Io spesso e volentieri, per esempio, nel modo di fare le skill, spesso e volentieri se ho fatto riferimento a informazioni che mi interessava comunque tracciare, mettiamolo in questi termini, inserisco comunque o faccio inserire le fonti all'interno della skill, proprio perché ci sia un riferimento, e la large language model da una parte sappia da dove è stata presa, dall'altra l'uomo sappia come poter approfondire e verificare quello che è stato fatto.
Alcune avvertenze su come fare le skill sul progressive disclosure.
Ho fatto fare ovviamente l'intelligenza artificiale delle ricerche.
Perché poi è sempre utile.
Io quando preparo queste puntate, sostanzialmente poi vado a approfondire gli argomenti è anche utile per me, ma spero che sia utile anche per te.
Nelle note dell'episodio, se tutto va come deve andare, poi i vari paper che non ho letto integralmente lo dichiaro, ma su cui ho fatto poi fare le ricerche e che farò inserire dall'intelligenza artificiale nella note, diciamo, ci sono due cose chiare che emergono dalla ricerca accademica.
Innanzitutto caricare troppo contesto, peggiora le prestazioni, non le migliora.
Quindi sostanzialmente è utile che la progressive disclosure è utile proprio per questo motivo.
Perché permette di caricare il minimo indispensabile.
Abitualmente quando si utilizza la progressive disclosure.
Poi l'assistente lavora in maniera più metodica, mettiamole in questi termini, quindi consulta più risorse, ma il guadagno finale è modesto e dipende dal tipo di task.
Non è una sostanzialmente una pallottola d'argento, è una buona pratica igienica, come lavarsi le mani, il che comunque non è poco, nel senso che comunque non aspettarti che con la progressive disclosure ci siano dei cambiamenti magici, diciamo, ma sicuramente permette di strutturare meglio le informazioni e il flusso di lavoro, è utile anche a livello pratico, anche qui sempre con un esempio di normativa.
Nella sostanza, la schema principale, diciamo, dai, dai casi abituali di come si crea l'URN per una norma, soprattutto per i codici e così via, e poi ci sono tutta una serie di riferimenti specialistici e di normativa specialistica, che diciamo è inserita solo un file separato che appunto prevede le maggiori eccezioni e così via, proprio per rendere più semplice la lettura e perché tendenzialmente, non so, in ambito civile il codice civile e il codice di procedura civile sono quelli più citati, diciamo, poi ci sono anche altre normative, ovviamente.
Tuttavia, tendenzialmente a livello statistico, spesso e volentieri, quei link devono essere fatti in una certa maniera, e ovviamente avere informazioni subito rende più semplice tutta l'operazione.
Non so, ad esempio, mentre facevo i vari test, proprio per rendere più semplice e consumare meno token, per esempio, ho inserito una regola per cui se può, il sistema utilizza il modello meno intelligente, diciamo, ma siccome ho visto, ho fatto un po' di test, ho visto che comunque anche per esempio iQu di Antropic funziona bene per creare il link normativa, gli ho detto utilizza un subagente per creare link.
Quindi, tra altre cose, non va sporcare il contesto della ricerca che sta facendo, casomai, demanda a un subagente la creazione di tutti i link mentre farà risposta.
Quindi, anche qui ho cercato di ottimizzare dove era possibile farlo.
Quindi ovviamente bisogna sempre e questo l'ho fatto io: l'ottimizzazione spesso e volentieri nasce da esigenze e sensibilità dell'utente, non dal large language model e anche qui come ti possono venire in mente queste cose.
Innanzitutto, perché comunque Clude l'abbonamento base, diciamo, è abbastanza spartano a livello di capacità di token e quindi mi ero reso conto che consumavo abbastanza velocemente i token, allora ho detto: come potrei ottimizzarlo, ciò pensato, ho fatto qualche test con la Skill e HIV.
Quando mi sono reso conto che i risultati erano buoni, ho detto: proviamo a fare così.
È ovvio che non è che ho migliorato incredibilmente il risultato finale, ma ho limato, qui là, secondo me, qualche dispegno inutile di token, diciamo.
Ovviamente i paper che ho esaminato, o meglio che fate di esaminare l'intelligenza artificiale sono paper legati al mondo dell'informatica.
Quindi, quello che ti ho raccontato e i paper che leggerai se vorrei approfondirle, ovviamente sono l'avvertenza è che non sono il mondo giuridico e quindi fino a quando non ci saranno le benchmark legali tramite il progressing disclosure e con ipotesi specifiche.
Diciamo quello che ti ho raccontato fino adesso prendilo comunque con un minimo di attenzione, perché le ricerche di cui abbiamo parlato fino adesso sono state fatte in un ambito differente e quindi non si applicano paro paro, mettiamola in questi termini.
Altro discorso che, però, oggi non approfondiremo perché sarebbe un discorso a parte, è che però il concetto generale voglio che ti sia chiaro perché secondo me è un concetto utile da sapere, è che le skill, diciamo, funzionano con questi strumenti, ma possono essere utilizzate anche con i cosiddetti strumenti web.
Io li utilizzo in particolare con gli spazi di Perplexity, ma nella sostanza, quello che faccio io con Perplexity si possono fare con le gemes di Gemini GPT di GPT e i progetti di Claude, nella sostanza, siccome la skill di fatto le skill sono dei file mark down e siccome i progetti o gli spazi o quello che sono, sono sostanzialmente dei chat in cui ci sono recaricati e quindi il large language model ha la possibilità di accedere a dei file, non ci sono grossi problemi, tra virgolette, a caricare le skill come file a questo punto, e ovviamente spesso e volentieri poi dipende dalla piattaforma, non si avrà la possibilità di lanciare degli script, mettiamoli in questi termini quindi comunque sono meno performanti da quel punto di vista lì.
Ma per esempio, Perplexity comunque ha un suo sistema minimale che permette di fare delle operazioni e quindi se riesce ad accedervi, diciamo, può anche eseguire gli script, ma questo è un altro discorso ancora.
Diciamo in questa maniera sostanzialmente con un idoneo prompt di sistema che si può personalizzare in questi spazi, in questi progetti e così via, puntando a quei file, ovviamente, è possibile implementare le skill direttamente.
Oggi non ne parlerò in dettaglio, ma te lo segnalo.
Perché, diciamo, se ti pone la domanda va benissimo, bellissimo, ma io non voglio usare cloud code o roba del genere, in un certo limite lo puoi fare, e secondo me, ovviamente vanno personalizzate.
Perché ovviamente, soprattutto se la skill è singola, ok, basta caricare quella skill lì è rinominarla come ritieni opportuno, se la skill fa riferimento dei sottofilini in sottopercorsi, va lievemente modificata.
Ma insomma, non voglio entrare nel merito troppo, se c'è interesse, ne parlerò casomai meglio.
Ora ragioniamo prima di arrivare alla conclusione a come sviluppare queste skill.
In parte ne ho già parlato, però, nella sostanza, voglio specificarti alcune cose che credo siano utili e che secondo me, vanno ragionate.
Non lo vedo raccontare da noi.
Bisognerebbe pensare, secondo me, alle skill come un programma.
Lo so che qui immagino tutti impazziate, perché io sono avvocato e mi o non in quel senso.
Nel senso, semplicemente che, per esempio, da una parte, se esistono già delle skill che fanno parte di quello che vorresti che venisse fatto, ma tu le vuoi personalizzare, non c'è bisogno di reinventare la ruota, ma basta prendere quella skill e dire all'arge language mod di modificarla di copiarla e modificarla come ti risulta più utile, secondariamente è importante ed è forse la cosa fondamentale di testare le skill.
Ovviamente, siccome non siamo programmatori, io l'ho imparato.
Dicamo, creando le mie piccole applicazioni con l'ausilio di un'intelligenza artificiale, ma il metodo che ti ho riscritto, tra l'altro, secondo me, la puntata precedente o in quella ancora precedente, non mi ricordo più, è quello di far fare all'A creare alle A dei test.
Testare le skill, infatti, non è un optional, non è per esperti, non è roba da ingegneri, è quello che fate già con le procedure dello studio.
Le scrivete, le provate su un caso, trovate il punto dove il praticante si blocca, corregge o ripristinare, la differenza è che con gli A potete farlo 20 volte in un'ora invece che in un mese e questo ovviamente è molto potente.
Quindi, io abitualmente, anche qui ti rimando appunto all'esame delle singole skill, non all'interno della skill perché spesso con interno non voglio complicare troppo la vita, ho scoperto poi che certe cose non vanno bene, diciamo se stanno tutte dentro la skill, ma ho una cartella dedicata ai test e sostanzialmente io cosa faccio?
Faccio fare dei ovviamente si spendono un quintale di token, lo segnalo.
Ma prima diciamo di testare io stesso la skill, la faccio testare alla Large Language Model in n casi, che genera direttamente il Large Language Model, questo mi permette, o meglio, permette, poi alla large language model di vedere se ci sono dei problemi.
Per esempio, appunto, normativa come Boudalou, in particolare, l'ho veramente ottimizzata tanto, nel senso che gli ho fatto fare una quantità enorme di test di ricerca sostanzialmente all'interno di Boudalou, e quindi li ho fatto trovare tutti i casi un po' particolari, un po' speciali, tutte le piccole cose, che abitualmente un large language model casmai non c'entra sempre al primo colpo, anzi ha dei problemi, e in questa maniera, ovviamente, ho migliorato notevolmente poi i risultati delle ricerche di Boudalò dell'MCP di Boudalò.
Infatti, anche qui, per esempio, l'MCP l'MCP espone, chiamiamoli così, solo tutta una serie di informazioni, ma dopo sta il ragionamento, chiamiamolo così del Large Language Model, quello di fare la ricerca.
Quindi sa che ha questi strumenti e deve utilizzare questi strumenti per fare la ricerca.
Benissimo, io cosa ho fatto sostanzialmente, gli ho fatto provare a fare N ricerca.
Credo che di essere arrivato più di 200 ricerche contemporanea, o meglio in batch, a questo punto, a fronte del fatto che i risultati di queste ricerche fossero corretti o meno, edessero errori o meno, ho fatto ottimizzare la skill per evitare tutti gli errori sostanzialmente, a questo punto a fronte di questo, la skill performa molto meglio e i risultati di utilizzare l'MCP di Budalò senza skill e con la mia skill sono effettivamente molto differenti.
Anche qui, per esempio, recentemente l'amico Roberto Alma ha inserito le nuove funzionalità nell'MCP, non ho ancora avuto il tempo di implementarle, quindi, per esempio, queste funzionalità presumo possono avere più problemi proprio perché non ho avuto tempo di aggiornare la skill con tutte le funzionalità.
Più vuoi ottenere buoni risultati, più il mio suggerimento è quello di fare dei test e ovviamente non devi farli tu, ma li puoi delegare, diciamo all'intelligenza artificiale e metterti solo a supervisionare o a comprendere quali possono essere i problemi.
È ovvio che, per esempio, per strumenti come Boudalò come normativa, che sono strumenti diciamo che io utilizzo quotidianamente nelle mie ricerche aumentate con l'intelligenza artificiale, è ovvio che ho impiegato molto tempo e ho cercato di ottimizzare il tutto.
Per altre situazioni, o non ho avuto il tempo di farlo o ho avuto meno tempo.
Però è proprio questo, per esempio, nel miglioratore di chiarezza degli atti legali, ho fatto dei primi test, ma non ho avuto il tempo per esempio di farli approfonditi.
Tant'è vero che dal mio punto di vista questa skill è ancora marginale, cioè ancora non perfetta, ha ancora dei margini di miglioramento.
Pian pianino, avendo nel tempo, ovviamente fare i test permette di migliorare.
Giusto per farti l'ultimissimo esempio su l'attività che ho fatto io, ho creato appunto questa ricerca web con Search XG, sostanzialmente Search XG, un motore open source di ricerca online che cosa fa.
In pratica, quando tu fai la ricerca, la fa su N sistemi, quindi Brave, Google e così via, molto legato alla privacy e cosa ho fatto sostanzialmente per fare i test, non ho fatto solo questo, ma nella sostanza, siccome avevo accesso anche alle ricerche di Perplexity, li ho in pratica, fare dei test per verificare, ovviamente n test, per verificare i risultati della ricerca di Search Gix di Perplexity e la ricerca, diciamo, normale dei modelli, in modo che ottimizzando le ricerche di Search Gx, in pratica, Search Gic funzionasse quasi come perplexity, come risultati e così via.
In questa maniera, in estrema sintesi, ho creato un sistema per cui se non hai perplexiti per fare ricerche, devi installare il Search X, che è un argomento a parte, mettiamola così, anche se credo di aver fatto fare una guida passo passo su come si installa sempre l'intelligenza artificiale, quindi ho fatto fare tutta una serie di cose proprio per rendere più semplice anche per chi non è abituato a questi sistemi, e credo addirittura che la guida passo passo sostanzialmente sia utile anche per il large language model per fare l'installazione sostanzialmente.
Quindi se ovviamente qui ci vuole uno strumento come Cloud Code e così via, però, in questa maniera anche per chi non fosse avvezza queste cose, tu dici: questa è la skill di Search GX, installa prima Search GX, configuralo correttamente e poi fai i test per verificare se tutto funziona e installa la skill anche nel mio sistema.
Eccolo strumenti come Cloud Code e così via, poi se non sei avvezio a queste cose, le skill puoi far installare direttamente il sistema, ovviamente dicendo di guarda, questa la skill è qui la trovi qui, installala.
Tendenzialmente casomai ti chiederà dei permessi, ti chiederà di fare cose, diciamo, ma ti permette poi di installare correttamente tutto, e anche qui, abitualmente io cerco sempre di inserire in una parte della skill, diciamo che non viene chiamata automaticamente, le regole di base per installarla.
Quindi anche per rendere più semplice la vita al modello, che non deve inventare di nuovo la ruota, ma ha già tutte le informazioni per fare le varie cose.
Tirando le somme, diciamo che le skill trasformano l'intelligenza artificiale da consulente generico a collaboratore che parla la lingua dello studio legale.
Inizi con una skill semplice, per esempio il formato di un atto, testatela, iteratela, miglioratela.
Non serve essere sviluppatori, basta spiegare il proprio processo anche a voce all'intelligenza artificiale.
Anche qui è utile non dare per scontato che l'intelligenza artificiale vi capisca il primo colpo, ma spesso e volentieri è utile, appunto nella fase di iterazione, vi renderete ti renderai conto che non ha capito questo concetto, non ha capito quell'altro, ma progressivamente nelle varie modifiche che fai, ti renderai conto che il sistema prevede sempre di più tutte le varie funzioni quindi diventa molto utile.
E anche qui una volta che hai creato la skill, da una parte se ti va, condividila.
Ma dall'altra, ti renderai conto che la skill ha un doppio vantaggio.
Cioè diventa anche uno strumento, diciamo che non solo può utilizzare l'intelligenza artificiale da un certo punto di vista, ma che puoi utilizzare anche tu.
Quindi può formalizzare anche tutta una serie di flussi di lavoro che abitualmente tu fai, ma che non hai mai formalizzato concretamente.
Anche questo, secondo me, è un vantaggio enorme.
Appunto.
Le famose SOP sono utili proprio perché casomai, appunto, formalizzando nelle skill e il flusso di lavoro del tuo ufficio, puoi anche poi trasmettere sostanzialmente non solo all'assistente intelligenza artificiale, ma anche al praticante, al collaboratore e così via.
Bene, siamo arrivati alla fine.
Come al solito.
Se ti è piaciuto quel che hai ascoltato, ti propongo di iscriverti alla mia newsletter.
Ogni mese invio i link ad articoli che ho trovato interessanti.
Ti avviso di nuovi podcast, di nuovi articoli e così via.
Come sempre, trovi le note dell'episodio, all'indirizzo HTTPS: due punti slash slash www.avvocati Mac.
Che è il numero di questa puntata.
Come sempre, ci sentiamo alla prossima.