Negli ultimi mesi mi sono trovato spesso a riflettere su un tema che sta diventando sempre più comune nel mondo digitale: come lavorare con l’intelligenza artificiale, senza disperdersi. L’IA oggi è ovunque. A meno che non viviamo su Marte o in una caverna, ogni settimana veniamo a conoscenza di un nuovo servizio, un nuovo abbonamento, un nuovo tool “rivoluzionario” che promette di cambiarci la vita. E per chi usa questi strumenti per lavoro, nasce quasi automaticamente la tentazione di fare una collezione: un servizio per scrivere, uno per le immagini, uno per il codice e così via.
Usare solo quello che serve
A mio modesto parere, stipulare abbonamenti a numerosi strumenti diversi, oltre a essere dispendioso, rischia di risultare dispersivo. Il punto non è inseguire “l’IA del momento”, ma fare una scelta intelligente: capire quali sono adatte allo scopo del progetto e al proprio modo di lavorare.
Nel mio caso, dopo aver valutato varie alternative, ho deciso di puntare su ChatGPT. Non perché sia l’unica soluzione esistente, ma perché riesce ad assistermi in più ambiti contemporaneamente. Attualmente sto realizzando alcuni giochi Android che richiedono grafica, animazioni e un motore di gioco in stile arcade 2D. Da ex AIR developer in ambiente Animate, sono abituato a coprire diversi aspetti del lavoro e, di conseguenza, ho scelto un assistente che mi supporta su più fronti. Nella fattispecie: nel ragionamento sul gameplay, nella scrittura del codice, nell’ideazione grafica e nell’organizzazione del progetto. In pratica non la sto usando solo come “una macchina che risponde”, ma come un supporto che mi aiuta a lavorare in modo più strutturato. E per chi, come me, si avventura nello sviluppo di progetti complessi, fa una bella differenza. Non entro nei dettagli del contenuto (l’app alla quale sto lavorando è ancora in fase di sviluppo e preferisco non spoilerare), ma posso dire che non si tratta del classico giochino con due schermate. È un mashup di moduli integrati e, dopo alcune false partenze, ho dovuto impostare un metodo basato sul controllo del contesto.
Il metodo Human-in-the-loop (HITL)
All’inizio non lo chiamavo in nessun modo. Stavo semplicemente facendo quello che mi sembrava più naturale: usare l’IA come una spalla, non come un pilota automatico. Mi facevo aiutare a ragionare, a capire dove stavo sbagliando, a mettere in ordine le idee, ma poi la scelta finale restava sempre mia: cosa tenere, cosa buttare, cosa cambiare e perché. Solo dopo ho scoperto che questo approccio “istintivo” aveva un nome preciso: Human-in-the-loop. Significa che l’essere umano resta dentro il processo, guida la direzione e si prende la responsabilità delle decisioni, mentre l’IA accelera il lavoro: propone, suggerisce, mette ordine, mi fa vedere alternative, mi aiuta a sbloccare nodi tecnici e creativi. È una differenza enorme rispetto all’uso passivo tipo “dimmi cosa fare e copio-incolla”. Con l’HITL l’intelligenza artificiale non sostituisce l’operatore umano ma ne amplifica le competenze. Quando ho iniziato a documentarmi sul tema, mi sono reso conto che non dovevo inventarmi nulla da zero, dovevo solo approfondire un processo esistente che, di fatto, avevo già iniziato ad applicare.
Superare i limiti della chat
Già nella precedente app realizzata con Phaser avevo usato ChatGPT nel modo più comune: una singola chat lunghissima, piena di codice, domande, correzioni, ragionamenti, esperimenti e aggiustamenti. Tutto andava bene finché non mi sono accorto di un problema pratico: quando la conversazione diventa molto densa, è facile che alcuni dettagli si perdano, che decisioni già prese si confondano o che certi concetti vengano reinterpretati. Non si tratta di un difetto legato alla mancata capacità di ragionamento del sistema, è semplicemente un limite tecnico. In altre parole, se il progetto è complesso, la chat (che non ha una memoria infinita) non può essere gestita come se fosse una lunghissima conversazione fatta con un collega umano. Questa difficoltà mi ha portato a un metodo più organizzato basato su tre tecniche: context anchoring, chat separate e aggiornamenti per obiettivi raggiunti.
Che cos’è il context anchoring
Il context anchoring è, in sostanza, una memoria esterna, un documento di testo sintetico che contiene le informazioni necessarie a ricordare all’IA cosa stiamo facendo, come lo stiamo facendo e a che punto siamo. Dentro ci metto la roadmap, le regole principali, i vincoli tecnici, le logiche già definite, una terminologia interna e lo stato di avanzamento. Ogni tanto, quando la chat diventa lunga o quando apro una nuova sessione di lavoro, ripropongo quel documento come contesto iniziale. Invece di sperare che tutto venga ricordato, io stesso fornisco una memoria stabile. È un concetto molto vicino a ciò che, nel lavoro tradizionale, viene chiamato Single Source of Truth (un’unica fonte ufficiale di verità) o Requirements Engineering (gestione dei requisiti). In parole semplici, ogni tot domande e risposte, sparo una “frittata di testo” in cui gli rinfresco la memoria. Per scrivere questo documento ottimizzato per il proprio progetto, non bisogna fare altro che chiedere proprio alla IA con un prompt apposito. Ad esempio: “ChatGPT mi serve assistenza per realizzare un progetto che serve a fare questa cosa, caratterizzato da questi aspetti. Scrivi per me un documento di context anchoring”.
Usare chat separate
Un altro trucco efficace è dividere teoria e produzione. È inutile intasare la chat di progetto con domande generiche, soprattutto se stai approfondendo strumenti e ambienti di cui non sei ancora esperto. Per questo ho iniziato a frammentare le conversazioni. Nella fattispecie, una chat dedicata al progetto reale (codice, implementazione, debugging), un’altra per le domande teoriche su un ambiente o un linguaggio, un’altra ancora per la progettazione e le scelte di gameplay e una per gli aspetti creativi (grafica, testi, narrazione). Questa separazione del contesto è molto simile alla vecchia regola che esiste nella programmazione, secondo la quale, è sconsigliabile mettere tutto il codice nelle stesso file per evitare di avere a che fare con un listato che prima o poi diventerà ingestibile.
Aggiornamenti a obiettivi raggiunti
Inizialmente ho commesso un errore da principiante: mi sono dimenticato di aggiornare il documento di context anchoring durante il lavoro. Di conseguenza l’IA si confondeva su cosa avevamo cambiato strada facendo. Successivamente ho commesso l’errore opposto, perdendo un sacco di tempo a scrivere ogni minuzia manco stessi scrivendo la Divina Commedia. Alla fine ho trovato il giusto compromesso, rendendomi conto che quel documento non va aggiornato ogni cinque minuti, ma solo quando si raggiunge un obiettivo o quando si prende una decisione che implica un cambiamento strutturale rispetto all’idea iniziale. Infine cerco di mantenere sempre al passo una sezione “DONE / TODO”. In questo modo il documento ricorda a ChatGPT dove siamo arrivati e cosa resta da fare. Per adesso funziona tutto egregiamente. Nel mio account OpenAi ci sono svariate chat chilometriche che svolgono il lavoro senza confondersi.
NOTA: Se avete Windows e usando ChatGPT tramite browser, la IA inizia a rispondere come una lumaca, non dimenticate che avete a disposizione l’app ufficiale sullo store Microsoft, le cui performance non calano quando la chat cresce a dismisura.
Per concludere, questo è il metodo che sto usando attualmente. Probabilmente cambierà e si affinerà strada facendo, sia perché ogni progetto può portarti a correggere la rotta, sia perché, per citare un vecchissimo spot televisivo, “la rivoluzione non dorme”. Le tecnologie alla base delle Intelligenze Artificiali sono in continua evoluzione e nel giro di pochi mesi potrebbero emergere nuove funzionalità capaci di cambiare radicalmente il modo in cui interagiamo con questi strumenti, rendendo necessario ripensare (o semplificare) anche approcci come l’HITL così come lo intendiamo oggi.





