Esperimenti
Esperimenti
Questa sezione documenta esperimenti in corso o completati di recente. Ogni voce descrive cosa stavo cercando di fare, cosa ho configurato e cosa ho osservato.
Gli esperimenti possono cambiare direzione, fermarsi o essere abbandonati. È normale. Il valore sta nel tentativo e in ciò che rivela, non nel raggiungere un risultato predefinito.
Runtime guidato dall’AI
Stato: attivo
Contesto: La maggior parte dello sviluppo assistito dall’AI genera codice che un umano poi integra. Volevo testare un modello diverso: un’AI che opera dentro un runtime predefinito con confini rigidi, invece di produrre codice da copiare altrove.
Cosa ho testato: Un ambiente di esecuzione vincolato dove gli agenti AI possono invocare operazioni pre-approvate (lettura, trasformazione, validazione) ma non possono modificare il runtime stesso. L’umano definisce il perimetro. L’AI lavora al suo interno.
Cosa ha funzionato: Vincolare lo spazio d’azione ha reso il comportamento dell’AI più prevedibile e più facile da verificare. I fallimenti sono diventati visibili invece che sottili.
Cosa non ha funzionato: Definire il giusto livello di astrazione per le operazioni consentite ha richiesto più tempo del previsto. Troppo granulare, e l’AI non riusciva a comporre azioni utili. Troppo ampio, e i vincoli perdevano il loro scopo.
Scaffolding di moduli componibili
Stato: in pausa
Contesto: Volevo testare se un insieme di moduli standardizzati (frontend, backend, infrastruttura) potesse essere generato e poi esteso da workflow assistiti dall’AI senza perdere coerenza strutturale nel tempo.
Cosa ho testato: Un generatore che produce un progetto base con confini di modulo chiari, convenzioni di naming e punti di integrazione. Dopo lo scaffolding, ho usato strumenti AI per estendere i moduli — aggiungendo endpoint, viste e configurazioni di deploy.
Cosa ha funzionato: Lo scaffolding iniziale ha retto bene. Le estensioni assistite dall’AI sono rimaste coerenti quando le convenzioni di naming erano esplicite e imposte.
Cosa non ha funzionato: Quando ho rilassato le convenzioni per permettere più flessibilità, il codice generato dall’AI ha iniziato a divergere dalla struttura originale in poche iterazioni. Le convenzioni devono essere vincoli, non suggerimenti.
Agente human-in-the-loop per decisioni tecniche
Stato: attivo
Contesto: Volevo esplorare agenti che assistono nelle decisioni tecniche (architettura, selezione di dipendenze, strategia di deploy) senza prendere quelle decisioni in autonomia.
Cosa ho testato: Un agente che riceve la descrizione di un problema, propone due o tre opzioni con i relativi trade-off e attende una decisione umana prima di procedere. L’agente non agisce da solo.
Cosa ha funzionato: La qualità delle proposte è migliorata significativamente quando l’agente aveva accesso al contesto specifico del progetto (dipendenze esistenti, decisioni passate, vincoli). Le proposte generiche erano raramente utili.
Cosa non ha funzionato: Il modello di interazione è più lento degli agenti completamente autonomi. Questo è accettabile per decisioni architetturali ma impraticabile per task ad alta frequenza. Il confine giusto tra autonomia e consultazione non è ancora chiaro.
Micro-app con notifiche
Stato: completato
Contesto: Un piccolo esperimento per testare se uno strumento personale utile potesse essere progettato, costruito e deployato in una singola sessione di lavoro usando assistenza AI.
Cosa ho testato: Un’app minimale con un sistema di notifiche giornaliere. L’obiettivo non era l’app in sé ma il workflow: dall’idea al software funzionante e deployato in una sera.
Cosa ha funzionato: Il ciclo base (descrivi, genera, testa, deploya) è stato fluido. L’AI ha gestito bene il boilerplate e la configurazione. Il vincolo della singola sessione ha forzato una chiara definizione delle priorità.
Cosa non ha funzionato: I casi limite relativi ai tempi delle notifiche e alla compatibilità dei dispositivi hanno richiesto debug manuale che l’AI non poteva risolvere solo dal contesto. L’ultimo 10% di rifinitura ha richiesto uno sforzo sproporzionato.