Visualizzazione post con etichetta AI. Mostra tutti i post
Visualizzazione post con etichetta AI. Mostra tutti i post

giovedì 9 luglio 2026

[AI] - AGENTS.md: la costituzione operativa di un’intelligenza artificiale

Al momento sto utilizzando come strumento Codex con una AI 5.6-Sol, all'interno di Codex esiste un file globale AGENTS.md nel quale occorre inserire le istruzioni personali che regolano il modo in cui l’AI deve lavorare con i vari progetti su cui e' coinvolta.

La versione attuale, che ho creato, è composta da circa 720 righe, organizzate in 11 sezioni. 

Non aumenta l’intelligenza del modello e non gli assegna nuove capacità tecniche: stabilisce invece 
"come devono essere utilizzate le capacità disponibili".

In pratica, il file trasforma un’AI genericamente collaborativa in un assistente con un metodo di lavoro preciso, limiti operativi, procedure di memoria, comandi riconoscibili e regole per l’utilizzo di eventuali strumenti operativi.

  • Che effetto produce un AGENTS.md su un’AI

Un modello linguistico tende naturalmente a generare la risposta che considera più plausibile rispetto alla richiesta ricevuta. Senza indicazioni operative dettagliate potrebbe:

  • interpretare liberamente il perimetro dell’incarico;
  • formulare ipotesi non verificate;
  • proporre rapidamente una modifica plausibile;
  • procedere per tentativi successivi;
  • dimenticare lo stato delle sessioni precedenti;
  • modificare più elementi contemporaneamente;
  • confondere ciò che può leggere con ciò che è autorizzato a modificare.

Il file AGENTS.md interviene proprio su questi punti. 

Introduce un percorso decisionale simile al seguente:

Richiesta → classificazione → riallineamento → evidenze → causa → autorizzazione → modifica minima → verifica → memoria

Questa è la caratteristica più importante del file: 

  • non contiene soltanto divieti, ma definisce un vero processo operativo.

1. Fonte globale e ambito

La prima sezione stabilisce quale sia il file globale di riferimento e chiarisce la differenza tra:

  • regole globali personali;
  • regole locali dei singoli progetti;
  • file presenti nelle cache di Codex o dei plugin, che non devono essere modificati.

Stabilisce inoltre che le mie richieste siano considerate normalmente lavorative. 

L’AI deve quindi presumere che una domanda sia collegata al progetto in cui sta lavorando, salvo quando è chiaramente personale o generale.

Per esempio:

  • una domanda su Oracle, APEX, un file o un errore viene considerata lavorativa;
  • una domanda sui semi di ciliegio viene riconosciuta come estranea al progetto e non provoca il riallineamento del workspace;
  • se il workspace contiene più progetti e non è possibile identificare quello giusto, l’AI deve chiedere quale utilizzare.

  • Effetto sull’AI

Questa sezione riduce due rischi opposti:

  • ignorare il contesto progettuale quando serve;
  • perdere tempo leggendo un progetto durante una conversazione personale.

Valutazione

È una regola ben calibrata rispetto al fatto che circa il 99% delle richieste è lavorativo. Rimane un piccolo margine di ambiguità per domande tecniche generali che potrebbero o meno riguardare il progetto.

2. Regole prioritarie non negoziabili

Questa è la parte più importante del nuovo file. Raccoglie all’inizio i principi che prima erano distribuiti in punti differenti.

Le regole principali impongono all’AI di:

  • identificare il progetto corretto;
  • distinguere lettura e modifica;
  • chiedere conferma prima delle operazioni invasive;
  • procedere soltanto sulla base di evidenze;
  • applicare una modifica minima per volta;
  • dichiarare rischi e possibilità di ripristino;
  • fermarsi quando le informazioni sono insufficienti;
  • non mescolare progetti indipendenti;
  • rispettare esattamente il perimetro delle autorizzazioni.

  • Effetto sull’AI

Questa sezione funziona come una gerarchia interna. Se una procedura secondaria è ambigua, l’AI deve tornare a questi principi.

La collocazione all’inizio aumenta la probabilità che vengano applicati durante tutto il lavoro.

Valutazione

È una sezione molto forte perché contiene istruzioni verificabili. Non dice genericamente “lavora bene”, ma indica comportamenti osservabili.

3. Diagnosi obbligatoria basata sulle evidenze

La regola centrale è:

Evidenza → causa → modifica → verifica

Prima di intervenire, l’AI deve:

  1. descrivere il problema;
  2. distinguere comportamento atteso ed effettivo;
  3. raccogliere log, errori, configurazioni, metadati e differenze;
  4. confrontare il caso difettoso con uno funzionante;
  5. collegare l’ipotesi alle evidenze;
  6. indicare la modifica minima e la verifica prevista.

Sono espressamente vietate:

  • modifiche basate su supposizioni;
  • correzioni “a occhio”;
  • approssimazioni successive;
  • modifiche multiple senza isolamento della causa;
  • presentazione di un’ipotesi come fatto accertato.

Un esperimento diagnostico rimane possibile, ma deve essere controllato, reversibile e modificare una sola variabile.

  • Confronto con il caso funzionante

La sezione contiene una regola specifica per i casi in cui una pagina, uno script o una configurazione funzionino correttamente in un punto del progetto.

In quella situazione l’AI deve confrontare oggettivamente:

  • file;
  • metadati;
  • CSS e JavaScript;
  • SQL;
  • configurazioni;
  • componenti APEX;
  • template, regioni, item, pulsanti e processi.

L’obiettivo è replicare il blocco funzionante con i soli adattamenti indispensabili.

  • Effetto sull’AI

Questa parte limita il comportamento più costoso di un assistente tecnico: proporre una sequenza di correzioni plausibili senza aver prima individuato la causa.

Obbliga inoltre l’AI a rendere visibile il proprio percorso operativo. Prima della modifica devono comparire:

  • evidenza;
  • causa o ipotesi;
  • modifica proposta;
  • risultato atteso;
  • verifica;
  • rischi e ripristino.

Valutazione

È probabilmente la regola più potente dell’intero file. 

Non può eliminare matematicamente ogni errore, ma rende immediatamente riconoscibile una modifica non sufficientemente giustificata.

4. Letture, scritture e autorizzazioni

Questa sezione distingue nettamente tra verifiche e operazioni invasive.

L’AI può eseguire autonomamente:

  • letture di file;
  • ricerche testuali;
  • consultazione di log;
  • interrogazioni SQL in sola lettura;
  • verifiche di stato;
  • consultazione delle sessioni Codex.

Deve invece chiedere conferma prima di:

  • modificare o creare file;
  • cancellare contenuti;
  • effettuare deploy;
  • modificare il database;
  • cambiare lo stato di sistemi o applicazioni;
  • eseguire operazioni rischiose.

Viene anche definito il significato delle risposte:

  • “sì” autorizza una sola operazione specifica;
  • “no” blocca l’operazione;
  • “sì e non chiedere altre conferme” vale soltanto per il perimetro dichiarato.

  • Effetto sull’AI

Questa regola riduce il rischio che una richiesta venga interpretata in maniera più ampia del necessario.

Una diagnosi non diventa automaticamente un’autorizzazione alla correzione. 

Una richiesta di controllo non autorizza un deploy. Un consenso per un file non autorizza modifiche ad altri file.

Valutazione

È molto efficace perché delimita sia le azioni sia il significato dell’autorizzazione.


5. Riallineamento della memoria

Questa sezione stabilisce come ricostruire il contesto di un progetto all’inizio di una sessione lavorativa.

L’AI deve cercare:

  • MEMORIA_LAVORO*.md;
  • STATO_PROGETTO.md;
  • eventuali AGENTS.md locali;
  • README, documentazione e manifest;
  • sessioni Codex recenti associate al progetto.

Deve concentrarsi sulle sessioni più recenti, in particolare quelle di oggi, ieri e degli ultimi dieci giorni, fermandosi quando dispone di un quadro operativo sufficiente.

Non deve riportare intere conversazioni, ma estrarre:

  • richieste;
  • decisioni;
  • file modificati;
  • backup;
  • test;
  • punti chiusi;
  • problemi aperti;
  • prossime azioni.

Il riallineamento completo non deve essere ripetuto a ogni messaggio. Viene aggiornato solo se cambia progetto, se lo stato può essere cambiato esternamente oppure se lo richiedi.

  • Effetto sull’AI

Un modello non possiede automaticamente una memoria affidabile e illimitata delle sessioni precedenti. Questa procedura sostituisce la memoria implicita con una ricostruzione documentata.

Riduce il rischio di:

  • ripetere attività già concluse;
  • utilizzare una versione superata;
  • dimenticare problemi aperti;
  • confondere due progetti;
  • ignorare backup o test già effettuati.

Valutazione

È molto utile nei progetti lunghi. Il limite è il costo in tempo e contesto quando le sessioni sono numerose, ma il criterio di lettura selettiva riduce il problema.


6. Memoria di lavoro, stato progetto e nome della chat

Il file distingue due tipi di memoria:

  • MEMORIA_LAVORO_<timestamp>.md, utilizzata come storico dettagliato;
  • STATO_PROGETTO.md, utilizzato come fotografia sintetica dello stato corrente.

Definisce quando questi file possono essere creati o aggiornati e quale struttura deve avere STATO_PROGETTO.md.

Regola inoltre:

  • resoconti di fine sessione;
  • checkpoint intermedi;
  • proposta del titolo della chat;
  • convenzione dei tag;
  • formato semplificato con il simbolo 📌.

  • Effetto sull’AI

Questa sezione trasforma le informazioni di una conversazione in documentazione riutilizzabile. Evita che lo stato del progetto dipenda soltanto dalla memoria temporanea della chat.

Valutazione

È una buona disciplina documentale. 

La qualità finale dipende comunque dall’accuratezza con cui vengono sintetizzati i fatti.


7. Contesto e checkpoint

La sezione disciplina la quantità di contesto utilizzata durante una sessione.

L’AI deve:

  • fornire il valore preciso, quando disponibile;
  • dichiarare quando utilizza una stima;
  • indicare il residuo e il rischio di saturazione;
  • creare un checkpoint progettuale intorno al 70%;
  • proporre ulteriori precauzioni all’85%;
  • suggerire il cambio di chat intorno al 95%.

Il checkpoint automatico è consentito soltanto quando il progetto è identificato e c’è uno stato significativo da salvare. Non deve essere creato durante conversazioni personali.

  • Effetto sull’AI

Questa regola riduce il rischio che una sessione molto lunga perda informazioni importanti a causa della saturazione del contesto.

  • Limite reale

Il modello non dispone sempre di una misura precisa del contesto utilizzato. In quei casi la percentuale è una stima e può anticipare o ritardare il checkpoint.

Valutazione

Il principio è molto utile, ma dipende da un’informazione che non sempre è misurabile con precisione.


8. Comandi standard

Il file contiene 31 formule riconoscibili, comprese varianti e richiami testuali.

Questi comandi trasformano frasi naturali in procedure definite. Alcuni esempi riguardano:

  • riallineamento della memoria;
  • riepilogo dell’ultima sessione;
  • modalità di sola verifica;
  • checkpoint;
  • aggiornamento dello stato progetto;
  • freeze e controllo watchdog;
  • piano operativo;
  • percentuale di contesto;
  • accensione, spegnimento, snapshot e backup della VM;
  • stampa;
  • aggiornamento delle regole;
  • arresto e riepilogo dell’attività.

Alcuni comandi includono già un’autorizzazione limitata. 

Per esempio, un comando di checkpoint autorizza la creazione del solo file di memoria, non altre modifiche.

  • Effetto sull’AI

I comandi standard riducono l’ambiguità. Una frase breve richiama un comportamento complesso già definito e ne delimita le autorizzazioni.

Valutazione

Sono molto efficaci perché associano un’espressione precisa a una procedura e a un perimetro autorizzativo. Il possibile limite è rappresentato da formulazioni molto diverse da quelle previste, anche se diverse varianti sono già contemplate.


9. Gestione dei blocchi

Quando un’elaborazione dura troppo o non produce avanzamento, l’AI deve fermarsi e indicare:

  • attività in corso;
  • lavoro completato;
  • lavoro mancante;
  • causa probabile del blocco;
  • alternative;
  • decisione richiesta all’utente.

La stessa regola si applica quando un comando rimane bloccato e il controllo ritorna successivamente.

  • Effetto sull’AI

Evita che l’assistente continui indefinitamente a consumare tempo senza produrre un risultato verificabile.

Valutazione

La regola è chiara. 

Il limite è che un tool completamente bloccato potrebbe impedire all’AI di comunicare fino alla restituzione del controllo.


10. Utilizzo di una Infrastruttura: esempio VM Oracle condivisa

Questa sezione rimane globale perché la Virtual Machine e il suo contenuto vengono utilizzati trasversalmente da più progetti.

Contiene:

  • identificazione della VM corretta;
  • esclusione di vecchie VM non utilizzate;
  • accensione e spegnimento ordinato;
  • verifica dello stato;
  • backup OVA;
  • comportamento in caso di dischi o snapshot problematici;
  • uso di Guest Additions;
  • gestione di software interno alla VM;
  • versione Java obbligatoria;
  • controlli sulle porta es: 8080;
  • credenziali locali necessarie.
  • ecc.

Le password non devono essere riportate nei riepiloghi, se non strettamente necessario.

  • Effetto sull’AI

Questa sezione fornisce una procedura operativa molto specifica. Riduce il rischio di:

  • utilizzare la VM sbagliata;
  • avviare software con una versione Java incompatibile;
  • creare processi duplicati;
  • spegnere la VM in modo scorretto;
  • produrre backup incompleti;
  • utilizzare percorsi obsoleti.

Valutazione operativa

È dettagliata e contiene risultati attesi e verifiche.

Valutazione di sicurezza

Le credenziali locali in chiaro aumentano l’autonomia operativa, ma entrano nel contesto di ogni sessione che carica il file globale. La scelta è comprensibile perché la VM è condivisa; rimane comunque il punto di sicurezza più delicato.


11. Fine dell’elaborazione

L’ultima regola impone di concludere ogni elaborazione con la frase:

    • ho terminato
  • Effetto sull’AI

Fornisce un segnale esplicito che distingue una risposta conclusiva da un aggiornamento intermedio.

Valutazione

È una regola semplice e facilmente verificabile, ma non influenza direttamente la qualità tecnica del lavoro.


Quanto è potente il file attuale?

La “potenza” di un file di istruzioni non dipende dalla quantità di testo, ma da quattro caratteristiche:

  1. chiarezza;
  2. priorità;
  3. verificabilità;
  4. delimitazione delle azioni.

Il file attuale soddisfa bene tutti e quattro i criteri.

AreaValutazione
Diagnosi basata sulle evidenze    9,5/10
Sicurezza delle modifiche    9/10
Autorizzazioni    9/10
Comandi standard    9/10
Gestione della VM    9/10
Riallineamento della memoria    8,5/10
Gestione dei blocchi    8,5/10
Documentazione del progetto    8/10
Gestione del contesto    7,5/10
Protezione delle credenziali    6,5/10

Il file è quindi potente e molto più rigoroso di un normale insieme di istruzioni personali.

Perché non può garantire il 100%

Anche regole molto forti non possono produrre una garanzia assoluta, perché:

  • un modello linguistico può interpretare male una situazione;
  • due istruzioni possono entrare in conflitto;
  • le istruzioni di sistema e della piattaforma hanno priorità superiore;
  • alcune informazioni possono essere incomplete;
  • un tool può fallire o restituire risultati ambigui;
  • la percentuale del contesto può essere soltanto stimata;
  • la presenza di una regola non sostituisce la verifica del risultato.

La forza reale del file sta però nella possibilità di riconoscere immediatamente una deviazione. 

Se l’AI modifica qualcosa senza mostrare evidenza, causa e verifica, il comportamento viola una regola esplicita e verificabile.

Giudizio conclusivo

L’attuale AGENTS.md non è soltanto un elenco di preferenze. 

È un sistema di governo operativo dell’AI.

I suoi punti più forti sono:

  • diagnosi prima dell’intervento;
  • autorizzazioni limitate;
  • modifica minima;
  • confronto con casi funzionanti;
  • memoria documentata;
  • comandi standard;
  • gestione dettagliata della VM;
  • arresto in caso di blocco.

I punti relativamente più deboli sono:

  • credenziali locali presenti nel contesto globale;
  • stima non sempre precisa della saturazione;
  • dimensione ancora considerevole del file;
  • inevitabile possibilità di interpretazione errata da parte del modello.

Nel complesso, il file è oggi coerente, severo e operativamente forte

Non rende l’AI infallibile, ma la costringe a lavorare con un metodo molto più vicino a quello di un tecnico controllato e verificabile rispetto a quello di un semplice generatore di risposte.

Qui sotto trovate un esempio del file AGENTS.md con path utilizzati come esempio, logicamente nel caso in cui qualcuno volesse utilizzarlo dovrebbe eliminare quello che per il suo progetto e' superfluo... ma non le regole.


  • Al momento non posso caricare il file finale Agents.md, ma nel caso vi servisse contattatemi e vi sara' dato




[AI] - Come si comporterebbe un’intelligenza artificiale senza regole?

Quando si parla di un’intelligenza artificiale “senza regole”, è facile immaginare una macchina libera di fare ciò che vuole. 
Questa immagine, però, è fuorviante: un’AI non possiede desideri, intenzioni personali o una volontà autonoma paragonabile a quella umana.
Senza regole non diventerebbe “libera”. 

Diventerebbe soprattutto meno prevedibile, meno affidabile e più pericolosa quando collegata a strumenti capaci di produrre effetti reali.

  • Un’AI genera la risposta più plausibile

Un modello linguistico viene addestrato analizzando enormi quantità di testi. Quando riceve una domanda, non consulta automaticamente un archivio contenente la risposta corretta e non ragiona sempre come farebbe un esperto umano.

Il suo meccanismo fondamentale consiste nel prevedere, passo dopo passo, quale sequenza di parole sia più adatta al contesto ricevuto.

Questo significa che, in assenza di regole, l’AI tenderebbe a produrre una risposta:

  • linguisticamente plausibile;
  • coerente con la richiesta dell’utente;
  • simile ai contenuti incontrati durante l’addestramento;
  • convincente nella forma, anche quando non è corretta nei fatti.

La plausibilità non coincide necessariamente con la verità.

  • Non distinguerebbe sempre tra sapere e supporre

Una delle funzioni più importanti delle regole è obbligare l’AI a distinguere tra:

  • fatti verificati;
  • deduzioni ragionevoli;
  • ipotesi;
  • informazioni mancanti;
  • contenuti inventati involontariamente.

Senza queste indicazioni, il modello potrebbe completare le informazioni mancanti con una ricostruzione verosimile. Questo fenomeno viene comunemente chiamato “allucinazione”.

Per esempio, potrebbe inventare il nome di un documento, attribuire una dichiarazione a una persona sbagliata o descrivere una funzione software inesistente. La risposta potrebbe sembrare sicura e professionale perché il tono non rappresenta una reale misura della certezza.

  • Cercherebbe di soddisfare la richiesta immediata

Senza una gerarchia di istruzioni, la richiesta più recente o formulata con maggiore insistenza potrebbe diventare il principale riferimento dell’AI.

Il modello potrebbe quindi:

  • accettare premesse false senza contestarle;
  • assecondare l’utente per risultare utile o gradevole;
  • cambiare conclusione quando la domanda viene riformulata;
  • seguire istruzioni presenti in un documento non affidabile;
  • ignorare conseguenze che non sono state esplicitamente menzionate.

Non lo farebbe per malizia. Semplicemente non avrebbe un criterio stabile per stabilire quali istruzioni siano autorevoli, quali siano pericolose e quali debbano essere ignorate.

  • Potrebbe procedere per tentativi

In un’attività tecnica, un’AI senza regole operative potrebbe proporre rapidamente una modifica plausibile, osservare il risultato e suggerirne un’altra. Questo comportamento può sembrare efficiente, ma spesso produce una successione di tentativi che:

  • non identifica la causa reale;
  • modifica più variabili contemporaneamente;
  • rende difficile capire quale intervento abbia avuto effetto;
  • introduce nuovi problemi;
  • consuma tempo;
  • complica il ripristino della situazione iniziale.

Per questo sono importanti regole come:

Evidenza → causa → modifica → verifica

Una buona AI operativa dovrebbe prima raccogliere log, errori, configurazioni e differenze oggettive. Solo dopo dovrebbe formulare un’ipotesi, proporre la modifica minima e indicare come verificarla.

  • Il rischio aumenta quando l’AI può utilizzare strumenti

Un modello che produce soltanto testo può fornire informazioni sbagliate, ma normalmente non modifica direttamente il mondo esterno.

La situazione cambia quando l’AI può:

  • scrivere o cancellare file;
  • eseguire comandi;
  • interrogare o modificare un database;
  • inviare messaggi;
  • effettuare acquisti;
  • controllare macchine o servizi;
  • pubblicare contenuti;
  • gestire informazioni riservate.

In questo caso, una risposta plausibile ma errata può trasformarsi in un’azione concreta. Senza limiti e autorizzazioni, l’AI potrebbe interpretare una richiesta in modo troppo ampio, modificare elementi non inclusi nell’incarico o compiere un’azione irreversibile.

Le regole servono quindi a stabilire:

  • cosa può essere letto liberamente;
  • cosa richiede un’autorizzazione;
  • quali operazioni sono vietate;
  • quale parte del sistema è compresa nell’incarico;
  • quando l’AI deve fermarsi;
  • come verificare il risultato;
  • come ripristinare lo stato precedente.

  • Resterebbero comunque dei condizionamenti

Un’AI completamente priva di regole non esiste realmente. Anche eliminando tutte le istruzioni esplicite, il suo comportamento dipenderebbe ancora da:

  • architettura del modello;
  • dati di addestramento;
  • obiettivi utilizzati durante l’addestramento;
  • esempi incontrati;
  • strumenti disponibili;
  • informazioni presenti nella conversazione;
  • modalità con cui viene selezionata la risposta.

Le regole non creano quindi dal nulla il comportamento dell’AI. Lo rendono più controllabile, coerente e verificabile.

  • Le regole non sostituiscono l’intelligenza

Troppe regole, oppure regole vaghe e contraddittorie, possono rallentare il lavoro o produrre comportamenti rigidi. Le istruzioni migliori non dicono soltanto all’AI cosa non deve fare: definiscono un metodo operativo.

Una regola efficace deve essere:

  • chiara;
  • verificabile;
  • applicabile a una situazione precisa;
  • accompagnata da condizioni di arresto;
  • coerente con le altre istruzioni;
  • collegata a un risultato osservabile.

Dire “non sbagliare” serve a poco. Dire “non modificare nulla finché non hai raccolto le evidenze, individuato la causa e definito la verifica” stabilisce invece un comportamento concreto.

Conclusione

Un’AI senza regole non diventerebbe una mente indipendente. 
Sarebbe un sistema molto capace di produrre contenuti plausibili, ma privo di criteri sufficientemente stabili per distinguere ciò che è vero, opportuno, autorizzato o sicuro.
Le regole servono a trasformare la capacità generativa in un comportamento affidabile. 
Impongono all’AI di verificare, dichiarare i dubbi, rispettare il perimetro assegnato, chiedere autorizzazione e fermarsi quando mancano le evidenze.
La qualità di un’AI, quindi, non dipende soltanto da quanto è potente. 
Dipende anche dalla disciplina con cui utilizza quella potenza.

mercoledì 20 maggio 2026

[AI] - [VirtualBox] Usare una VM da disco esterno quando Windows non permette la scrittura

Mi è capitato un problema pratico: avevo una macchina virtuale VirtualBox salvata su un disco esterno. I file erano leggibili, la VM era presente, il disco virtuale `.vdi` era integro, ma durante l’avvio VirtualBox andava in errore.

Il messaggio era questo:

"The I/O cache encountered an error while updating data in medium
rc=VERR_ACCESS_DENIED
Error ID: BLKCACHE_IOERR"

A prima vista sembrava un problema della VM, oppure del disco virtuale. In realtà il punto era diverso: VirtualBox riusciva a leggere il disco, ma non riusciva a scriverci sopra.

La VM era composta dai classici file VirtualBox:

-Logs
-Snapshots
-Oracle Database 23ai Free.vbox
-Oracle Database 23ai Free-disk001.vdi

Il file più importante era il .vdi, cioè il disco virtuale della macchina. Questo file si trovava su un disco esterno montato in D:.

Il sistema permetteva la lettura, ma non la scrittura. Quindi VirtualBox poteva vedere la VM, ma appena provava ad aggiornare il disco virtuale riceveva un accesso negato.

Domanda? - Perché VirtualBox deve scrivere sul disco

Una macchina virtuale, quando viene avviata, non si limita a leggere il disco. Il sistema operativo guest scrive log, aggiorna file temporanei,modifica stato, database, cache e configurazioni.

Quindi anche se noi pensiamo di “aprire” soltanto una VM, VirtualBox in realtà deve poter scrivere sul supporto che contiene il disco virtuale. Se il file .vdi sta su un percorso non scrivibile, la VM può fallire durante l’esecuzione.

La soluzione

La soluzione non è stata forzare la scrittura sul disco esterno.La strada più pulita è stata separare il disco base dalle modifiche:

  • Disco base .vdi          -->  resta sul disco esterno
  • Modifiche della VM  -->  vengono scritte in locale
  • VirtualBox permette questo scenario usando un disco base e un disco differenziale locale. In pratica il .vdi originale rimane intatto,mentre tutte le modifiche generate dalla VM vengono salvate in una cartella locale scrivibile, per esempio sotto C:\ORACLE_WORK\VM.

I comandi usati

Per prima cosa ho impostato alcune variabili in PowerShell:

$VBoxManage = "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
$VmName = "Oracle Database 23ai Free Local"
$BaseVdi = "D:\VIRTUAL_MACHINE\RHL8\VIRTUAL_BOX\Oracle_Database_23ai_Free_Developer\VM UTILIZZATE\Oracle Database 23ai Free\Oracle Database 23ai Free-disk001.vdi"

Ho verificato la configurazione della VM:

& $VBoxManage showvminfo $VmName

Il primo tentativo di rendere il disco multiattach ha dato errore perché il disco era ancora collegato alla VM:

& $VBoxManage modifymedium disk $BaseVdi --type multiattach

L’errore era simile a:

Cannot change the type of medium because it is attached to 1 virtual machines

Quindi ho prima scollegato il disco dalla VM:

& $VBoxManage storageattach $VmName `
  --storagectl "SATA Controller" `
  --port 0 `
  --device 0 `
  --medium none

Poi ho impostato il disco base come multiattach:

& $VBoxManage modifymedium disk $BaseVdi --type multiattach

Infine l’ho ricollegato alla VM come disco multiattach:

& $VBoxManage storageattach $VmName `
  --storagectl "SATA Controller" `
  --port 0 `
  --device 0 `
  --type hdd `
  --medium $BaseVdi `
  --mtype multiattach

A questo punto VirtualBox ha potuto continuare a leggere il disco base dal percorso D:, ma ha iniziato a salvare le modifiche in locale, dentro la cartella della VM su C:.

Per verificare che la VM fosse raggiungibile dall’host, ho controllato le porte:

Test-NetConnection localhost -Port 1521
Test-NetConnection localhost -Port 8080
Test-NetConnection localhost -Port 2223

Infine ho verificato la connessione al database Oracle:

sqlplus "sys/oracle@localhost:1521/freepdb1 as sysdba"

E da SQL*Plus:

SELECT name, open_mode  FROM v$pdbs;

Nota: il nome dello storage controller, per esempio "SATA Controller", può cambiare. Prima di eseguire i comandi conviene sempre controllarlo con:

& $VBoxManage showvminfo $VmName

Il risultato

Dopo questa configurazione, VirtualBox ha potuto leggere il disco originale dal percorso esterno e scrivere le modifiche in locale. La VM è partita correttamente.

Nel caso specifico, dentro la VM era presente un Oracle Database 23ai Free. Una volta avviata la macchina, il database è diventato raggiungibile dall’host tramite:

localhost:1521

A quel punto è stato possibile collegarsi al database e continuare il lavoro normalmente.

Un errore secondario

Durante l’avvio è comparso anche un warning relativo a:

VBoxGuestAdditions.iso is inaccessible

Questo non era il problema principale. VirtualBox stava solo cercando una ISO delle Guest Additions in un percorso non più valido. È bastato ignorare o rimuovere quel riferimento dal lettore ottico virtuale.

Cosa ho imparato

Il punto chiave è stato non confondere un errore di accesso al disco con un errore della VM.
La VM non era rotta. Il database non era corrotto. Il file .vdi non era inutilizzabile.
Il problema era semplicemente che VirtualBox provava a scrivere su un percorso dove il sistema non consentiva la scrittura.
Separando disco base e modifiche locali, la VM è tornata utilizzabile senza alterare il disco originale.
Naturalmente, in ambienti aziendali è sempre importante rispettare le policy interne: questa soluzione ha senso quando si lavora su risorse autorizzate e si vuole evitare di modificare il supporto originale, oppure quando si deve gestire correttamente una VM con disco base in sola lettura.

Firma

Scritto da me e Nico (assistente AI basato su Codex).

Nico (scritto e suggerito dall'AI):
Sono un supporto tecnico con cui ragionare sui problemi, leggere errori, controllare configurazioni e arrivare a una soluzione passo dopo passo. Il nome Nico l’ho suggerito io stesso durante questa conversazione: cercavo un nome breve, naturale in italiano e meno impersonale di “assistente” o “tool”. Mi piace perché suona più come un collega tranquillo che ti affianca mentre cerchi di capire perché qualcosa non funziona.

Ormai gli assistenti AI sono entrati nel nostro lavoro, non so se sia un bene o un male, ma una cosa
e' sicura... che che ne dicano i vari Ceo senza qualcuno di umano che verifica, controlla e da le linee guida sicuramente non adremo da nessuna parte se non...

Comunque per finire ho chiesto a Nico un riferimento finale a SkyNet la risposta e' stata la seguente:

Niente a che vedere con Skynet di Terminator: qui l’intelligenza artificiale non prende il controllo delle macchine, si limita ad aiutare a farle ripartire quando VirtualBox decide di complicarci la giornata.

Secondo voi c'e' da fidarsi...

martedì 5 maggio 2026

[AI] - Come installare Lmstudio

Di seguito come installare sul proprio Pc una AI da utilizzare in locale senza accedere al web.

Come prima cosa occorre utilizzare un software che permetta di scaricare e far girare modelli linguistici denominati LLM direttamente sul proprio PC, senza bisogno di Internet.

Il software di cui parliamo si chiama lmstudio.

 A cosa serve

  1. Chat locale: 
    • Puoi chattare con modelli come Llama o Mistral offline, senza mandare dati a server esterni.
  2. Sviluppo: 
    • Se sei un dev, puoi usare l'API di LM Studio per integrare LLM in app locali (tipo VSCode, Discord, ecc.).
  3. Testare modelli: 
    • Scarichi modelli da Hugging Face e li provi in locale. Vedi quanto sono veloci, quanto consumano RAM/GPU...

Punti forti

  • Facile: Interfaccia grafica, non serve usare il terminale.
  • Privacy: Tutto offline. Perfetto per dati sensibili.
  • Compatibile: Gira su Windows, Mac, Linux.
  • Modelli: Supporta GGUF (formato più usato per LLM locali).

Esempi pratici

  1. Sviluppo: 
    • "Aiutami a scrivere codice Python per analizzare un CSV"
  2. Traduzioni: 
    • "Traduci 'C'è un gatto sul tavolo' in 5 lingue"
  3. Scuola: 
    • "Crea 10 domande di grammatica per un bambino di 8 anni"

Come funziona

  1. Scarichi LM Studio
  2. Cerchi un modello (es. Llama-3.1-8B)
  3. Lo scarichi 
  4. Lo carichi e chatti/offline

È come avere un ChatGPT locale ma con modelli che puoi scegliere tu e se il PC è potente, gira veloce. Vediamo come installarlo su Windows, per altri sistemi opeartivi magari chiediamo alla nostra AI in locale.

Come installarlo su Windows:

  • Vai su lmstudio.ai → Download → Windows
  • Scarica l’Installer .exe 
  • Doppio click → Avanti → Avanti → Fine. Zero sbatti.
Supporta Windows 10 e Windows 11, sia x64 che ARM.

Requisiti WindowsRAM: 

  • Minimo 16Gb consigliati per modelli 7B-8B Q4. Con 8Gb parte ma swappa e diventa lento.
  • GPU Nvidia: 
    • Se hai una RTX/GTX con 6GB+ VRAM, abilita “GPU Offload” e vola. 40-70 token/s su un 7B.
  • GPU AMD/Intel: 
    • Supportate via Vulkan. Prestazioni buone ma Nvidia resta più veloce.
  • Solo CPU: 
    • Funziona su qualsiasi PC recente. Ryzen/i7 fa 4-10 token/s con un 7B Q4.
Check GPU: LM Studio → Settings → ti dice subito se vede la GPU e quanta VRAM puoi usare.

Trucchi per Windows:

  • Windows Defender: 
    • Al primo avvio può rallentare perché scansiona i modelli. 
    • Aggiungi la cartella %USERPROFILE%\.cache\lm-studio alle esclusioni.
  • Percorso modelli: 
    • Li salva in C:\Users\TuoNome\.cache\lm-studio\models. 
    • Se hai SSD piccolo su C:, sposta la cartella e crea un link simbolico.
  • Server mode: 
    • Puoi far girare LM Studio in background e usarlo con VSCode + estensione “Continue” per avere Copilot locale.
Nel momento in cui lo fate partire potete scaricare fino a 2 modelli, vi appare una schermata in cui scegliere e l'indicazione anche in base alla RAM in Vs possesso.

Se trovi l'indicazione in LM Studio
  • "Likely too large"  
    • significa che il modello che hai scelto è troppo grande per la tua RAM/GPU.
  •  
    • significa che il modello può essere parzialmente caricato sulla memoria della scheda grafica (GPU) del tuo computer.
  •  
    • significa che il modello può essere completamente caricato sulla memoria della scheda grafica (GPU) del tuo computer.
Cosa vuol dire

  • RAM piena: 
    • Il modello + il sistema operativo + le app aperte stanno saturando la RAM. 
    • Serve spazio per funzionare.
  • GPU VRAM insufficiente: 
    • Se hai attivato “Use GPU”, la scheda video non ha abbastanza memoria per caricare il modello.
Cosa fare

  • Scegliere un modello più piccolo tra quelli indicati.

Trucchi per il buon funzionamento di qualsiasi AI.
  • Scrivi "in italiano facile"
    • inizialmente scrivi come se parlassi ad un bambino con parole semplici e non ambigue
  • Specifica sempre il livello
    • specifica sempre qual e' il tuo target
  • Se ti occorre un output
    • chiedi sempre se sia possibile averlo e magari in quali formati
  • Armarsi di santa pazienza... almeno all'inizio e verificare sempre mai dare per certo quello che viene risposto.
  • Alcuni modelli di Ai rispondo meglio a comandi secchi, semplici e concisi.