Benvenuto o benvenuta,
io sono Filippo Astrozzi e stai ascoltando Avvocati a Mac Compendium.
Compendium è un podcast in cui parlo delle mie esperienze quotidiane con la tecnologia,
in particolare quella Apple.
Questa è la puntata 53 nella quale parlerò di agenti e MCP,
ovvero Model,
Context,
Protocol,
sulle promesse di questa nuova tecnologia e sulle effettive possibilità.
Ma prima,
sigla!
Allora,
prima di andare all'occhio della puntata,
devo fare alcune premesse e non ho comunicazioni di servizio perché non le ho preparate.
L'unica comunicazione,
diciamo,
di servizio estemporanea è che,
come al solito,
sto facendo tutto non seguendo,
diciamo,
la scaletta programmata delle puntate che mi ero fatto.
Quindi questa è una cosa che ho fatto nel weekend,
mentre sto registrando.
Siamo al 24 di marzo mentre registro,
ma presumibilmente questa puntata andrà pubblicata fine aprile,
direi,
perché non è anche controllato il calendario editoriale,
come si dice.
Per il resto non ci sono grandi novità e l'altra cosa che,
invece,
voglio discutere con te,
questa puntata nasce da tutta una serie di sperimentazioni,
diciamo,
collegate alle cose che ho detto nelle scorse e precedenti puntate.
Diciamo che la cosa che attualmente mi coinvolge di più,
come si capisce dal titolo e dalle modalità delle puntate,
sono ovviamente l'intelligenza artificiale,
in particolare il "Large Language Model",
ma soprattutto la possibilità di utilizzare questi strumenti come interfaccia linguistica di un programma.
Adesso mi spiego meglio come.
Abbiamo parlato,
secondo me,
due o tre puntate fa del discorso di agenti e del fatto che,
nella sostanza,
gli agenti sono i veri programmi ma gli LLM,
diciamo,
si interfacciano a questi programmi e quindi appunto si creano poi dei sistemi avanzati e che effettivamente hanno un suo senso logico,
mettiamola in questi termini.
Gli LLM hanno sicuramente dei lati positivi però,
dal mio punto di vista,
per tantissimi motivi,
riescono a fare attualmente relativamente poco perché,
nella sostanza,
gli LLM sono dei completatori di testo con gli steroidi.
Quindi è ovvio che ci sono limiti sostanziali e anche organizzativi,
diciamo,
di questi strumenti,
sicuramente utilissimi per fare riassunti,
fare tutta una serie di cose,
ma abitualmente questi strumenti vanno agganciati a qualcos'altro.
Quello che io vedo veramente come futuro,
dal mio punto di vista almeno,
è che utilizzare questi LLM come interfaccia linguistica a un programma,
cioè poter parlare a un programma con,
con linguaggio umano,
mettiamolo in questi termini,
essere "compresi" dalla macchina e a questo punto far fare cose alla macchina.
Ecco,
l'argomento di oggi,
cioè gli MCP,
adesso ti spiegherò che cosa sono sostanzialmente,
è una tecnologia,
appunto,
utile proprio per fare questo.
Quindi veniamo subito a dire che cos'è un MCP.
Un MCP,
ovviamente,
è una sigla che sta Model Context Protocol,
sostanzialmente,
è un modo semplice e senza necessità di scrivere codice per integrare i tool,
cioè gli strumenti,
quindi questi programmini,
chiamiamoli così,
giusto per rendere la cosa molto banale,
mettiamola in questi termini,
in un LLM che così facendo si può interfacciare,
diciamo,
con il mondo esterno.
Questo cosa vuol dire?
Questo vuol dire,
per esempio,
appunto,
che si può interfacciare con delle,
chiamiamoli così,
web app,
cioè delle applicazioni web e quindi interfacciarsi e strapolare dati e anche eventualmente inserire dati in queste web app.
Fare le ricerche web,
appunto,
una delle cose che sto curando in particolar modo e che abbiamo visto nella puntata,
secondo me,
51,
credo,
Web UI e Browser Use,
sostanzialmente,
è possibile,
appunto,
far fare,
far interagire LLM,
far fare delle ricerche online agli LLM e dargli accesso,
per esempio,
a un browser.
Addirittura,
e lo vedremo negli esempi di oggi,
perché diciamo,
il gioco che ho fatto nel weekend è stato interagire con il file system del pc,
nel mio caso specifico del Mac,
e tante altre cose.
Quindi la cosa interessante è proprio questa,
cioè per permettere di legare,
mettiamola così,
il large language model a,
appunto,
un programma che può interfacciarsi a un'applicazione,
può fare ricerche web,
quindi interfacciarsi con un browser virtuale/a motori di ricerca che le restituiscono i risultati della ricerca o addirittura,
per esempio,
interfacciarsi col file system e quindi fare operazioni,
eseguire operazioni,
diciamo,
manipolando sostanzialmente il file system.
L'idea di questo,
gli MCP esistono o MCP,
dipende come lo si pronuncia,
ovviamente io tendo a pronunciare con gli acronimi in inglese perché poi da lì io prendo,
diciamo,
molto spunto.
L'MCP nasce da un progetto di Antropica.
Antropica è una dei maggiori aziende,
diciamo,
che stanno creando,
americane,
che stanno creando quelli a,
e nella sostanza MCP viene venduto,
mettiamolo in questi termini,
come un protocollo aperto che standardizza il modo con cui le applicazioni forniscono il contesto agli LLM.
Pensa all MCP come una sorta di porta USB-C per l'applicazione di intelligenza artificiale,
proprio come un USB-C fornisce un modo standardizzato per collegare i tuoi dispositivi a vari periferiche e accessori,
così MCP fornisce un modo standardizzato per collegare modelli di intelligenza artificiale a diverse fonti di dati e strumenti.
Questa è proprio la definizione del progetto.
Il progetto si trova a questa pagina,
ovviamente nel link delle note dell'episodio troverai tutti i link per andare a cercare tutte queste cose.
Oltre al sito,
diciamo,
al sito di presentazione con la guida come si struttura il sistema,
diciamo,
c'è anche invece il progetto GitHub,
su GitHub,
che sono i Model Context Protocol Server.
Nella sostanza come funziona sotto la scocca tutti questi sistemi,
giusto per darti un'idea di base,
poi ti farò capire che non ti interessa,
per molti versi,
approfondire,
almeno io non l'ho fatto,
mettiamolo in questi termini,
il funzionamento di questi sistemi,
l'idea di fondo qual è?
L'idea di fondo qual è?
E' quella di astrarre sostanzialmente il modo di interfacciarsi con questi sistemi di terze parti,
mettiamole così,
quindi con appunto web app,
browser,
piuttosto che appunto il file system stesso,
e creare questi,
chiamiamoli così,
server,
cioè dei programmi che hanno già all'interno tutta una serie di azioni,
di capacità,
diciamo,
e da una parte appunto spiegano all'lnm cosa appunto questo mcp server può fare,
ok?
Quindi gli dà le indicazioni testuali ovviamente,
di cosa può fare e delle azioni che può eseguire,
mettiamole in questi termini.
Dall'altro appunto,
chiamiamolo così,
lato software,
invece il server cosa fa?
Fa da tradunion,
cioè fa da traduttore tra comando,
diciamo,
testuale e programmazione,
quindi chi programma i server mcp sostanzialmente crea questo substrato trasparente per l'utente finale e anche per l'lnm da un certo punto di vista,
dove appunto da una parte descrive cosa può fare il programma,
chiamiamolo in questi termini,
dall'altro appunto interfaccia queste azioni,
mettiamola così,
questi appunto tool,
con un'interfaccia grafica,
cioè con un'interfaccia per il sistema operativo o comunque per la web app,
quindi nel mio esempio pratico,
cosa succede?
Io voglio rinominare / spostare un file / leggere il contenuto o creare un file,
io dirò attraverso l'lnm,
interagirò con questo server mcp e a questo punto il server,
in base alle istruzioni che dà ovviamente l'lnm,
eseguirà queste operazioni sul file system e la cosa interessante è per quello che ti dico che non ci interessa diciamo poi approfondire troppo,
mettiamola così o meglio,
ti può casomai interessare se sei un programmatore ma da utente finale diciamo o da smanettone come mi ritengo io,
non mi interessa andare a approfondire troppo il sistema da un certo punto di
vista perché appunto questi server sono sono già stati sviluppati o almeno
alcuni di questi server sono stati sviluppati e quindi semplicemente
basta installare diciamo e utilizzare uno server specifico,
mettiamola così,
un server mcp specifico per poi poter già appunto far fare cose al tuo llm.
Se stai guardando questa puntata registrata sulla parte diciamo registrata in
diretta su youtube vedrai anche degli screenshot che ho preso che ho fatto in
questa mia solita mappa mentale dove appunto ti faccio vedere come appunto nella
pagina principale del progetto appunto ci sono già svariati server mcp tra cui
appunto quello che mi interessava testare che diciamo l'ho utilizzato per fare
le mie primissime prove perché era quello che mi interessa di più era appunto
quello che si chiama file system cioè un modo sicuro per fare operazioni e
configurare l'accesso e controllo appunto al tuo sistema operativo perché mi
interessava farlo perché e qui apro una piccola parentesi chiamiamola così
su questo argomento tutto quello che ho fatto io e l'ho fatto
attraverso n8n che è questa diciamo web app che permette di,
ne ho già parlato in puntate scorse,
che permette di interfacciarsi diciamo è una via di mezzo tra comandi rapide
quindi mi ci trovo molto bene perché poi lo apprezzo particolarmente ti permette
appunto con questo attraverso questa web app di interfacciarsi sia interfacciare
l'lm con tanti servizi e quindi io avevo già fatto queste cose qui ed è ovvio
che però gli mcp potenzialmente semplificano di gran lunga la creazione diciamo
l'utilizzo di questi tool in n8n l'altra cosa che ovviamente mi interessa è che
è un n8n diciamo la struttura blocchi come come comandi rapidi e quindi io
riesco con le mie limitate capacità diciamo e con questi strumenti tra
virgolette non coding mettiamola in questi termini a creare soluzioni e
possibilità e quindi appunto sto lavorando molto diciamo nel mio tempo perso
sull'utilizzo di n8n perché effettivamente è un'applicazione relativamente
complicata e avendo una serie di feed diciamo su youtube di youtuber che parlano
di queste cose effettivamente è venuta fuori mcp sembrava e sembra un bel
progetto e quindi ho detto proviamoci vediamo cosa succede l'altra cosa prima di
entrare diciamo nel vivo della della puntata e di spiegare un poco cosa ho fatto
cosa scoperto e così via è che mcp nasce sostanzialmente pensato per cloud
desktop cioè l'applicazione desktop di cloud cloud llm appunto di antropico
meglio il nome generale di varia llm di di antropic e ovviamente questa
circostanza diciamo è da tenere presente per i ragionamenti poi che faremo
successivamente l'ultimissima cosa appunto giusto per per chiudere l'argomento
mcp diciamo dal punto di vista di cosa fa come perché era anche interessante
tutta questa vicenda è che ci sono una marea di server cioè io adesso te ne ho
elencati alcuni ma diciamo antropic ha creato sostanzialmente nel repository
chiamiamoli così dei server base già attualmente perché poi mcp nasce come
progetto fino a ottobre novembre 2024 quindi non è un progetto giovanissimo ma
diciamo un progetto già presente da un po di tempo a questa parte in più si è
sviluppata una community piuttosto grossa di sviluppatori che hanno creato
appunto questi server ulteriori server diciamo per interfacciarsi con quel
servizio piuttosto con quell'altro servizio allora diciamo la verità la cosa che
appunto mi ha fatto venire voglia mettiamola così di mettermi a lavorare con gli
mcp è questa e lo dichiaro subito diciamo che quando sono andato un po a
guardare intorno ai vari server presenti uno dei primi che mi è capitato di
vedere è un server mcp per comandi rapidi e quindi mi è venuta voglia diciamo di
provare a implementare ovviamente a fare interfacciare sostanzialmente gli llm
con comandi rapidi l'mcp server ovviamente deve girare su mac per poter
interfacciarsi con comandi rapidi e questo perché da un certo punto di vista
appunto la puntata scorsa o due puntate fa non mi ricordo più ne abbiamo parlato
e appunto apple intelligence la parte veramente interessante quella dove diciamo
c'è siri che può fare cose mettiamola in questi termini quindi si può
interfacciare appunto tra le altre cose con comandi rapidi attualmente non è
prevista o l'arrivo a breve mettiamola così nel mondo apple quindi ero
interessato a anticipare nella sostanza apple e vedere se riusciva a fare
qualcosa di veramente interessante piccolo spoiler giusto perché non voglio
creare false aspettative teoricamente fattibile e io nella concretezza non ci
sono riuscito ma ci sono diciamo tutta una serie di da quello che ho capito io
grossi limiti a questo sistema ma comunque appunto è molto interessante proprio
perché innanzitutto se per esempio ti interessa utilizzare l mcp con cloud
desktop si possono fare cose molto interessanti secondariamente appunto lo dico
già tutta questa questa cosa te ne parlo da un certo punto di vista perché conto
e mi riprometto di anche scrivere un articolo abbastanza dettagliato sul
funzionamento vero e proprio ovviamente qui nel podcast ti racconterò che cosa
ho fatto ma non ti spiegherò proprio tutto nel dettaglio perché non ha
abbastanza senso farlo in maniera solo audio già su youtube ho inserito nelle
nella mappa mentale alcuni alcuni screenshot che già danno un po più di idea
diciamo di cosa si riesce a fare però è una tecnologia interessante è una
tecnologia sicuramente futuribile diciamo dei grossi limiti attualmente dal mio
punto di vista ma potrebbe in futuro non averne e comunque è interessante tutto
il sistema e devo dire la verità mi sono divertito molto a giocare con gli mcp
in questo weekend benissimo adesso vediamo nel concreto che cosa ho fatto nel
weekend e quali sono le mie conclusioni attuali perché ovviamente diciamo che
queste conclusioni potrebbe anzi sicuramente si modificheranno nel tempo allora
innanzitutto come ti dicevo lo ho utilizzato mcp con n8n perché perché appunto
posso creare agenti in modo relativamente semplice nel senso che appunto n8n mi
permette di non sporcarmi le mani troppo col codice diciamo che la mentalità di
a blocchi di mi piace molto mettiamola in questi termini dall'altro anche se non
è ancora stato diciamo implementato direttamente dai creatori di n8n n8n ha un
grosso vantaggio mettiamoli in questi termini ovvero ha la possibilità di
installare mettiamola così dei nodi e che sono appunto i blocchi sostanzialmente
le azioni di comandi rapidi giusto perché ci intendiamo diciamo con un
background comune dei nodi appunto della community questo nodo della community
di mcp cosa fa è molto interessante perché permette di configurare da una parte
i singoli mcp e dall'altra appunto in automatico sostanzialmente ne permette di
scaricare e installare l'mcp sul nel container o nella macchina dove dove gira
n8n nella sostanza il nodo quindi fava svariate cose effettivamente un po
confusionario da questo punto di vista si poteva probabilmente ragionare con
nodi differenti ma nella sostanza da una parte chiamiamo inserendo le
credenziali del nodo è possibile configurare il nodo e quindi scegliere quale
server chiamiamo così installare e utilizzare con quelle credenziali nel backend
sostanzialmente i nodi mcp possono essere diciamo creati e installati attraverso
npm che in pratica repository è un sistema per scaricare pacchetti diciamo fatti
in javascript non voglio stare troppo a andare nel dettaglio perché sono
bazzeccole mettiamole in questi termini e una volta comunque che hai capito come
è possibile avendo idea di della documentazione diciamo dell mcp server che ti
interessa installarlo è relativamente semplice è ovviamente possibile ovviamente
collegarsi io ho utilizzato ovviamente un server che funzionava diciamo sul
computer mettiamola in questi termini perché poi a me quello che interessa di
più di utilizzare con n8n è la possibilità di lavorare non con servizi di terza
parte a cui comunque per forza di cose devi passare dei dati mettiamolo in
questi termini ma lavorare tutto in locale o quantomeno nella rete locale
spostare file lavorare in maniera varia ed eventuali manipolando sostanzialmente
i dati sempre in locale appunto per mio approccio abbastanza conservativo
diciamo dei miei dati e soprattutto dei dati dei miei clienti all'interno
appunto di questo nodo e di mcp ci sono due cose fondamentali da capire due
funzioni in pratica da capire la list tool e l'executive tool tradotto molto
banalmente list tool sta per lista degli strumenti serve appunto per far
conoscere agli llm quali sono gli strumenti tool che ha a disposizione nella
sostanza te la faccio molto breve ma attraverso questo questo sistema di list
tool in pratica viene dato in pasto all'lm un json con tutti i parametri per
capire quali sono il nome dello strumento innanzitutto che è fondamentale perché
c'è lo strumento a per fare a lo strumento b per fare b una descrizione dello
strumento ovviamente perché siccome l'llm lavora col testo devi dargli una
descrizione relativamente dettagliata di cosa fa quello strumento perché in
questa maniera sapendo cosa fa lo strumento e ovviamente una volta che gli viene
passata la descrizione riesce diciamo a capire se quello strumento può essere
utilizzato per fare la richiesta dell'utente oppure no e dall'altra una volta
che sa quali strumenti a disposizione ovviamente può eseguire in base al
chiamiamo così comando al prompt dell'utente quello specifico tool attraverso
appunto l'execute tool cioè il tool di esecuzione la cosa molto interessante
quindi è da una parte che la lista dei tool e dai del server mcp è già
predisposta e preparata e quindi tu non ti devi metterli a descrivere all'lm che
cos'è cosa fa e così via e non ti deve mettere a interfacciarti con tutti i
sistemi che comunque altrimenti dovresti fare quindi c'è molto meno qualcuno ha
già programmato al posto tuo mettiamola in questi termini dall'altro che la cosa
forse più bella di questo sistema è che può fare il tool e ha per cui una
parentesi mi sono scordato di dirti una cosa nell'istato diciamo nella nella
lista di tool quindi c'è il tuo il nome del tool la descrizione del tool e non
solo c'è anche lo schema diciamo dei dati che devi passare al tool perché è
evidente che io non posso dire sposta il file a nella cartella b senza che dare
senza dare appunto queste informazioni di base mettiamola così il serve mcp non
sa qual è il file che voglio spostare per esempio e dove lo voglio spostare non
ha le informazioni necessarie per eseguire l'operazione quindi nella sostanza
oltre al nome del tool oltre alle descrizioni di cosa fa il tool ci deve essere
anche una struttura schematica diciamo sostanzialmente una struttura json di
quali sono i parametri di cui ha necessità impellente diciamo il tool per
funzionare correttamente benissimo quindi tornando all'executo tool appunto la
cosa interessante è che con n 8 n la configurazione del sistema è praticamente
automatica nel senso che in pratica non voglio entrare troppo nel dettaglio di n
8 n della gestione del tool ma in pratica si dà la gestione dell'executo quindi
della scelta del tool e dei parametri da dare a questo tool direttamente all'llm
che deve fare tutte queste operazioni e qui tra virgolette da una parte c'è la
cosa bellissima di questo sistema perché in pratica anche qui l'utente finale
deve fare poco o niente dall'altro però c'è il problema più grosso di tutto
questo sistema ovvero e lo vedremo dopo meglio siccome l'llm che deve
individuare e indicare appunto l'executo quale tool vuole utilizzare e passargli
lo schema idoneo dei parametri idonei per farlo funzionare correttamente spesso
e volentieri su modelli di piccole dimensioni mettiamola così cioè modelli
soprattutto quelli locali qui casca il grosso dell'asino cioè non riescono a
fare questa operazione ora riescono a fare solo parzialmente ma andiamo per
ordine come ti dicevo appunto quello che ho fatto io perché ero incuriosito e
ritenevo che fosse abbastanza semplice dal punto di vista e anche qui come al
solito la mia l'ignoranza a volte fa sempre dei danni e ho deciso di appunto
siccome mi piace lavorare in locale e anche avere vedere come funzionava questo
strumento diciamo che ho utilizzato l'mcp per lavorare sul file system quindi
per eseguire operazioni diciamo direttamente sul file system come dicevo un
amico con cui ho discusso della cosa effettivamente è rischiosissimo come se
come come scelta però dal mio punto di vista non era così complicata o meglio
non era così rischiosa perché in estrema sintesi tutto quello che ho fatto io
l'ho fatto in un container docker e il container docker non ha accesso a tutto
il mio sistema operativo e non glielo voglio neanche dare ma ha accesso limitato
al sistema operativo cioè a delle cartelle sostanzialmente del sistema operativo
in particolare nelle cartelle diciamo e di configurazione di dn8n e quindi non
avevo particolari dubbi e comunque non mi sono lanciato a fare "distruggi tutto
il file system" o roba del genere e mi sono diciamo trattenuto quindi
effettivamente non avevo grossi problemi venendo appunto ai problemi però che ho
riscontrato in tutto questo sistema il primo appunto è proprio il modo diciamo
che ho utilizzato per installare n8n e quindi poi conseguentemente tutto il
resto infatti se è comodissimo e anzi io lo consiglio tantissimo l'installazione
di dn8n attraverso docker e ho fatto anche un video su diciamo sulle
installazioni di altri software diciamo con docker e se ce la farò credo open
web ui e se ce la farò e ne farò altri diciamo ne ho in programma altri
mettiamola così poi è tra dire e fare c'è sempre di mezzo al mare comunque
l'installazione di docker ha dei vantaggi enormi nel senso che puoi creare
diciamo questi container a crearli distruggerli velocemente a rifare tutte le
operazioni n volte e questo almeno da neofita quale sono io mi permette di fare
un tentativo ripartire di nuovo da zero rifare e quindi anche imparare
progressivamente facendo rifacendo le varie cose ottimizzando e scoprendo anche
cose particolari e tra l'altro appunto non non essendo legato diciamo a un
installazione specifica o meglio poi ho un'installazione specifica dn8n che
diciamo che quella che io utilizzo chiamiamola così pulita mettiamola in questi
termini ma se devo fare degli esperimenti creo dei container virtuali di nuovi
diciamo dn8n dove faccio tutti i miei esperimenti se l'esperimento va a buon
fine eventualmente salvo il workflow di dn8n e poi lo installo invece nella
macchina chiamiamola così pulita dove invece faccio cose non serie perché non è
vero nella sostanza attualmente ad oggi mentre sto registrando questa puntata
non ho dei workflow specifici dn8n per il lavoro diciamo sto ancora giocando
tantissimo proprio per imparare per vedere cosa è possibile
fare per poi decidere cosa fare e se è possibile farlo
mettiamola in questi termini ma appunto l'utilizzo,
l'installazione diciamo di dn8n in docker è sicuramente consigliata soprattutto
per chi vuole imparare a far funzionare dn8n non solo mettiamola così il
problema qual è di questa soluzione che me ne sono reso conto relativamente
velocemente il problema è che ovviamente per utilizzare comandi rapidi dn8n
dovrebbe essere installato direttamente sul file system diciamo della
macchina di un mac sostanzialmente quindi non attraverso docker,
docker in estrema sintesi separa il container dalla macchina principale è la
grossa comodità del sistema sotto la scocca sono andato un po' a ravanare il
server NCP per comandi rapidi si poggia sulla CLI cioè sull'interfaccia righe di
comando di comandi rapidi per mac os quindi in estrema sintesi lancia dei
comandi a terminale per far funzionare i comandi rapidi e poi per ricevere per
passare e ricevere dati peccato che appunto in questo caso dovrei installare
appunto n8n via npm che è il sistema appunto di installazione di generale
mettiamola così e dei javascript ma a questo punto inizia a essere un po un po
più pericoloso appunto e quindi per ora diciamo l'opzione di utilizzare comandi
rapidi attraverso mcp è sfumata mettiamola in questi termini anche perché
arriviamo al nodo più grosso della vicenda e che ho già in parte anticipato il
problema è che funziona e in ogni mcp server ncp funzionano bene mettiamola così
sono molto potenti ma solo se si utilizza un llm molto potente e come ti dicevo
se sei stato attento c'è il problema originale qual è che effettivamente gli mcp
server sono stati sviluppati e l'idea diciamo di fondo è stata sviluppata da
antropic che ovviamente l'ha sviluppata ragionando sui suoi llm in particolare
ed effettivamente ho fatto dei test con sonnet 3.5 neanche il 3.7 funziona e
funziona relativamente bene se stai guardando la diretta diciamo su youtube la
registrazione su youtube qui c'è uno screenshot relativamente banale di quello
che ho fatto però effettivamente è molto interessante ho detto nella sostanza ho
scritto nella chat con llm crea la cartella giugno tra virgolette nella cartella
gli ho indicato tutto il percorso perché effettivamente senza il percorso non sa
dove andare a creare questa cartella o meglio la crea nella base del file system
ma comunque dm8n tende a precisare poco ci interessa diciamo per queste cose poi
al suo interno creare il file test punto md giusto per creare un file quindi
anche qui operazione relativamente complessa cioè non solo gli dico di creare
una cartella ma diciamo con la stessa frase gli dico di una volta creata la
cartella poi di inserire proprio in quella cartella un file specifico come si
vede appunto nell'immagine effettivamente sonnet non ha avuto problemi anzi ci
ha messo relativamente poco ha creato appunto la cartella e poi ha creato un
file markdown appunto denominato test punto md all'interno del quale non c'era
niente perché non gli avevo detto di salvare niente e per un po' di tempo mi
sono arrabattato perché non riuscivo a fare mentre con sonnet non avuto problemi
anche qui ovviamente io te la racconto in velocità ma ovviamente ci ho perso
delle ore cercando di capire perché non funzionava questo o quello e anche qui
se vai a guardare il video su youtube nello screenshot che ho catturato ti
faccio anche notare che nella sostanza c'è il workflow chiamiamolo così base per
un'agente AI fatto con n8n e adesso in audio si fa fatica a descriverlo
dettagliatamente ma nella sostanza c'è un nodo dove ti permette di chattare col
modello c'è un nodo agente appunto che ha varie sistemi diciamo uno è per ti
permette di collegare un modello specifico nel mio caso specifico per sonnet ho
utilizzato open router che mi dà accesso sostanzialmente a tutti gli LLM a
pagamento pagando solo open router che poi a sua volta a fare le sue
cose e appunto due cosiddetti tool appunto uno è quello per
trovare il famoso list tool e l'altro è l'execute tool.
Anche qui nota se ti interessa giocare con n8n e tool una cosa fondamentale che
ci ho messo anche lì del tempo a capire è che anche il nome diciamo che dai al
singolo nodo diciamo tool deve avere un suo significato logico per LLM nel mio
caso specifico appunto gli ho specificato che uno appunto il tool per appunto
dare la lista di tool per gestire file e directory e l'altro per eseguire.
In estrema sintesi comunque tutto questo sistema ha funzionato meravigliosamente
quando mi ci sono messo con gli LLM locali che era quello che mi interessava di
più a dirti la verità invece ho ottenuto errori su errori sono diventato
abbastanza di gomma e a un certo punto ci stavo quasi per per mollare poi mi è
venuta la lampadina detto ma vuoi vedere che ci vuole un LLM particolarmente
potente performante e quant'altro ho provato con sonnet ha funzionato ho detto
vabbè allora mistral small che era quello che mi interessava utilizzare non
funziona o meglio funziona ma a un certo punto si ingrippa mettiamola così
perché non riesce a fare lo step successivo non riesce a fare il ragionamento
successivo quindi casomai recupera la lista dei tool impara tra virgolette quali
sono i tool possibili ma non riesce a dare il comando successivo per fare
eseguire il tool mettiamola in questi termini ho detto proviamo a vedere se
invece i modelli più avanzati anche qui apre chiudo una parentesi perché vabbè
non è così scontato ma nella sostanza non tutti gli LLM riescono a gestire i
tool in hollama per esempio occorre andare a vedere quali sono gli LLM che
gestiscono i tool tra i vari LLM che gestiscono i tool per esempio c'era c'è
mistral small che è uno di quelli che amo di più la versione 3 che è uno di
quelli che amo di più ma che effettivamente non ce la fa funziona anche
abbastanza bene mettiamola così sul mio mac studio ho quindi provato utilizzare
vabbè deepseek non funziona proprio perché non non gestisce i tool ho provato
qwq di alibaba che è uno de lo dicevo nelle puntate scorse uno dei modelli
appunto con catene di pensiero che funzionano meglio dal mio punto di vista che
hanno dato notevoli risultati con cui mi trovo molto bene ho detto vediamo se
funziona effettivamente sul comando semplice funzionava correttamente quindi
giusto per adesso sto facendo vedere ovviamente come al solito lo screenshot del
funzionamento mettiamola così il comando che ho dato è usando un tool a tua
disposizione individua lo schema e crea il seguente file con il contenuto ciao
quindi gli ho detto dove doveva andare il file con tutto il percorso del file
perché purtroppo è un percorso un po astruso mettiamola in questi termini ma
comunque volendosi si può ottimizzare questa cosa ed effettivamente con
un'azione singola appunto riusciva a farlo cioè è appunto nel mio specifico gli
avevo detto di creare un file pippo.txt nella cartella principale e con
contenuto ciao e effettivamente come si vede appunto se stai guardando su
youtube se no fidati di me nella sostanza generava effettivamente il file
correttamente il problema si poneva invece quando volevo fargli fare qualcosa di
più complesso come avevo fatto fare con sonet cioè non solo per esempio di far
generare un file ma per esempio far creare la cartella e poi salvarci dentro il
file alla fine un giorno e mezzo dopo credo ci sono arrivati in fondo perché ci
ho riprovato e riprovato e alla fine cosa ho fatto nella sostanza adesso quella
che ti faccio vedere io è una domanda relativamente semplice ma anche qui non
così scontata puoi farmi un elenco di tutti i file contenuti nella cartella
pinco pallino e puoi spostare il file pippo.txt quello di prima nella cartella
nella sotto cartella diciamo pippo ok adesso gli ho dovuto dare il percorso
corretto perché sennò non ce la fa perché appunto il percorso della cartella e
dove voglio andare a salvare i file è tra le cose che sono necessarie all mcp
server del file system per poter fare le singole operazioni mettiamola in questi
termini ed effettivamente ci sono riuscito mi ha fatto l'elenco dei file che
erano contenuti nella cartella come si vede qua addirittura molto carino non ha
spostato il file e quindi ha detto prima pippo.txt stava nella cartella
principale poi è stato un mosso spostato nel subfolder quindi nella sotto
cartella pippo come ho fatto a fare tutto questo nella sostanza appunto ho
dovuto impostare nella configurazione di qwq dei parametri specifici in
particolare la temperatura del modello che l'ho tenuta bassissima mettiamoli in
questi termini quindi molto lo 0,2 e per sicurezza non sono sicuro che questo
incida al 100 per cento ma per non fare errori gli ho dato il massimo contesto
possibile che nel mio caso specifico è tra gli 8 e 9 mila token supportato
diciamo dal mio mac studio e quindi in questa maniera effettivamente ho fatto
alcuni test sbagliati è una parola grossa perché comunque è l'altro grossissimo
difetto di questa soluzione che mentre con con sonnet è un'operazione che si fa
relativamente veloce per fare tutte queste operazioni il mio buon qwq su mac
studio m1 con 30 32 gigabyte di ram ci mette dai 5 ai 10 minuti per fare queste
operazioni ed è anche qui dove casca casca l'asino mettiamola in questi termini
da ultimo l'altro problema appunto che in parte ho già segnalato è proprio
questo cioè questo è appunto che se da una parte come come hai potuto capire
tranquillamente perché ti ho detto ti ho detto ti ho letto sostanzialmente le le
istruzioni cadati il sistema effettivamente utilizzando linguaggio semplice
l'unica cosa che gli ho dovuto dire è la struttura cartella tutto dare
l'indirizzo appunto è completo la cartella e così via lui effettivamente faceva
tutte queste operazioni senza nessun tipo di problema addirittura svariato testo
l'ha salvato direttamente dentro il file e così via sposti file addirittura la
possibilità di andare a cercare non ho fatto uno screenshot ma ti puoi poi
dirgli anche di andare a cercare dove il file pippo punto txt e lui va a cercare
in tutto l'albero a cartella ovviamente dove ha a disposizione e ti fa appunto e
te lo va a trovare ti dici guarda e qua e quindi anche lì li puoi dire per
esempio deve dare i comandi relativamente complessi dicendo cercami il file
pinco pallino e spostamelo nella cartella di là o manipolare in questa maniera
o fai altre cose mettiamola così il sistema funziona veramente bene ed
effettivamente ti permette di parlare con il sistema operativo sostanzialmente
quindi sia in maniera ovviamente testuale ma volendo appunto e interfacciando un
po più di sistemi rendendo la cosa un po più complicato nulla vieta che appunto
tu gli dica ne fammi quest'operazione sul file system e a voce converte voce in
testo e testo va all'lm che utilizza i tools e fa tutte le sue cose quindi il
sistema è veramente interessante e le potenzialità sono evidenti dal mio punto
di vista è ovvio che però comunque richiede questo sistema richiede anche
determinate conoscenze in particolar modo non ho trovato almeno io un modo per
farmi dire o meglio ci sarebbe anche il modo perché ovviamente devi chiedere
prima quali sono i parametri diciamo dei vari comandi quindi chiedali per
esempio che comandi può eseguire quindi chiedali fammi la lista dei tuoi comandi
per il tool pinco pallino lui ti restituisce la lista dei tool tu gli chiedi
voglio utilizzare il tool pinco pallino a mi dai i parametri a quel punto lì
alla domanda successiva li puoi dire va bene allora crea la il file pinco
pallino pippo punto txt nella cartella taglia itali ma se tu non sai tutte
queste cose il sistema ovviamente non è che ti aiuti molto per cui io ovviamente
ho ho visto in varie maniere alla fine poi appunto avendo tutta la descrizione
attraverso la lista dei parametri così via andando tentone all'inizio e poi
finalmente capendo più o meno come funziona il sistema non ci ho messo molto a
appunto dare di dare dei prompt e quindi dei comandi efficaci mettiamola in
questi termini però l'esperto che non sa tutte queste cose che non ha giocato
lavorato con tutto questo sistema può trovarsi in difficoltà e diciamo può non
risultare così immediato mettiamola in questi termini come invece da un certo
punto di vista una volta che ho capito il sistema lo dico sempre però è stato
per me però sicuramente è qualcosa di molto molto interessante e adesso questi
siamo agli albori mettiamoli in questi termini però sicuramente le potenzialità
di questo sistema soprattutto perché appunto evita all'uomo comune mettiamola
così di dover imparare a programmare tutta una serie di cose è ovvio che se non
c'è l'mcp server che ti interessa che si interfaccia con questo particolare
strumento di cui hai bisogno tu hai le gambe tagliate però presumibilmente nel
tempo e se questa cosa prenderà piede diciamo questi questi server mcp è
ovviamente diventeranno sempre più strutturati e avranno sempre maggiori
potenzialità benissimo siamo in conclusione giusto per trarre le conclusioni di
rito anche perché qui sono importanti ovviamente quello che ti ho raccontato
adesso è un test di verifica di come funziona il sistema di della fattibilità
appunto del sistema come dicevo e come probabilmente sarà il titolo di questa
puntata non è tutto oro quello che luccica però il sistema del model con textual
protocol è molto interessante ha delle notevoli potenzialità e non so se sarà il
futuro diciamo degli lm ma sicuramente è un sistema molto utile quando quando
diventerà diciamo più generale effettivamente permetterà di fare cose molto
molto interessanti anche a chi è programmatore non è ovviamente chiamiamo così
appoggiandosi sulle spalle dei giganti come ho fatto io nella sostanza ho dovuto
smanettare un pochino per approfondire certi argomenti anche perché ero
veramente totalmente a digiuno però in un weekend con con esperimenti qua e là
diluiti nel tempo e soprattutto tra l'altro il grosso difetto di tutta questa
operazione che ogni volta che lanciamo un comando doveva aspettare 5 10 minuti
per vedere se il comando riusciva oppure no però sicuramente ci sono delle
potenzialità sicuramente se tu utilizzi diciamo e non hai problemi per per la
tua attività utilizzare strumenti come cloud sonnet e così via diciamo che
questo strumento è già operativo dal mio punto di vista è sempre un discorso
di trade off cioè di compromessi se sei disponibile ad avere determinati
compromessi quindi essere meno interessato alla riservatezza e sicurezza dei
tuoi dati allora tutto questo sistema funziona e funziona bene se invece vuoi
lavorare tutto in locale e così via diciamo che il sistema ha delle potenzialità
ma decisamente non e maturo anche perché dire al sistema di di creare un file e
aspettare 5 10 minuti perché lo crei direi che è molto più semplice farlo
manualmente o farlo con altre tipologie di automazioni ma sicuramente in un
futuro da quello che sto venendo io c'è un miglioramento delle m anche in locale
non esponenziale ma comunque progressivo e notevole quindi sono soddisfattissimo
diciamo di avere fatto questa questa ricerca è probabile che riprende in mano
gli mcp più avanti nel tempo adesso come adesso una volta che mi sono tolto
l'asfizio diciamo che non credo di farci molto a breve ho sicuramente imparato
tante cose anche su n 8 n e quindi sono anche soddisfatto di certi concetti che
mi si sono resi più chiari è stata sicuramente un'esperienza utile però è ancora
diciamo un qualcosa di molto sperimentale come ti dicevo nel corso della puntata
se ce la farò mi piacerebbe anche formalizzare tutto quello che ho raccontato
qui così oralmente in un articolo ma anche lì ci vuole un minimo di tempo e
ovviamente scrivere gli articoli richiede maggior tempo e maggiore anche
precisione e tutta una serie di cose che ovviamente richiedono richiedono
maggior fatica dal mio punto di vista e volevo come il mio solito da una parte
condividere dall'altra appunto buttare fuori tutto questo per poi appunto
eventualmente fare ulteriori cose benissimo siamo arrivati quindi alla fine come
sempre se ti è piaciuto quel che hai ascoltato ti propongo di iscriverti alla
mia newsletter ogni mese ti invio una mail con link ad articoli che ho trovato
interessanti ti avviso dei podcast nuovi che pubblico degli eventuali articoli
degli eventuali molto eventuali video come sempre trovi le note dell'episodio
digitando https due punti slash slash www.avocati trattino e trattino mac.it
slash podcast slash 53 che il numero di questa puntata come sempre alla prossima