L’attenzione nell’ecosistema degli agenti di intelligenza artificiale si sta spostando con una rapidità quasi scomoda dal modello alla sua periferia operativa, cioè quell’insieme di istruzioni testuali che definiscono come un agente si comporta nel mondo reale. La retorica dominante ha a lungo celebrato i progressi dei modelli linguistici come se fossero il vero motore del cambiamento, ma nella pratica industriale emerge una verità meno elegante e più interessante: la differenza tra un agente mediocre e uno affidabile non è più il modello, bensì la qualità delle sue competenze codificate in file testuali strutturati. Questo spostamento di attenzione ha una conseguenza diretta, quasi imbarazzante nella sua semplicità, perché trasforma il prompt engineering in un problema di ingegneria dei sistemi, dove il testo diventa una forma primitiva di codice evolutivo.

La natura di questi file di competenze, spesso implementati come documenti .md autonomi, introduce una fragilità strutturale che il settore ha sottovalutato per anni. Ogni modifica, anche minima, produce effetti non lineari sul comportamento dell’agente, con regressioni che emergono in contesti diversi da quelli osservati durante il test. Il problema non è teorico, ma operativo: una correzione locale può degradare performance globali, e l’assenza di gradienti differenziabili rende impossibile applicare tecniche di ottimizzazione tradizionali. In questo spazio grigio tra ingegneria del software e apprendimento automatico, la comunità sta sperimentando forme ibride di ottimizzazione che trattano il testo come uno stato dinamico, non come una configurazione statica.

SkillOpt, sviluppato da Microsoft Research, rappresenta una delle interpretazioni più strutturate di questo paradigma emergente. Il sistema introduce una pipeline che osserva il comportamento dell’agente su una distribuzione di task, valuta le traiettorie di esecuzione e utilizza un modello linguistico separato come strumento di riflessione diagnostica. L’elemento interessante non è la singola fase del processo, ma la loro concatenazione: esecuzione, valutazione, riflessione, modifica vincolata e validazione separata. Il risultato è un ciclo che simula una forma di discesa del gradiente nello spazio testuale, pur senza gradienti in senso matematico. Il vincolo sul “learning rate testuale” diventa una metafora operativa per evitare che l’ottimizzazione degeneri in riscritture aggressive e instabili. I risultati riportati indicano miglioramenti consistenti su benchmark complessi, con guadagni che, su modelli avanzati come GPT-5.5, superano venti punti percentuali in scenari di chat e coding, suggerendo che la struttura del testo operativo ha un impatto comparabile, in certi contesti, alla scelta del modello stesso.

La logica sottostante a SkillOpt si scontra però con un limite concettuale evidente: la scalabilità cognitiva della diagnosi. Ogni iterazione richiede l’analisi di tracce estese di esecuzione, e il costo computazionale cresce non tanto con il numero di parametri del modello, quanto con la complessità delle storie operative degli agenti. Questo spinge la ricerca verso approcci più esplorativi e meno deterministici, dove la mutazione delle istruzioni diventa un processo stocastico guidato da selezione multi-obiettivo. In questo contesto si inserisce GEPA, che introduce una dinamica evolutiva basata su principi di Pareto, dove più varianti di competenze competono simultaneamente su criteri diversi. L’idea è meno elegante ma più robusta: non esiste una singola versione ottimale del prompt o della skill, ma una popolazione di soluzioni che sopravvivono in equilibrio dinamico.

GEPA trasforma quindi l’ottimizzazione in un problema evolutivo, dove la riflessione del modello sugli errori diventa materiale genetico per nuove mutazioni testuali. La selezione non privilegia una singola traiettoria, ma mantiene un fronte di soluzioni non dominate, consentendo una diversificazione strategica delle competenze. Questo approccio, integrato con framework come DSPy, evidenzia una direzione chiara: la programmazione degli agenti si sta avvicinando più alla biologia computazionale che alla software engineering tradizionale.

EvoSkill estende ulteriormente questa logica introducendo una struttura multi-agente e multi-ramo, dove le competenze evolvono su rami paralleli simili a repository Git divergenti. La valutazione avviene su dataset separati, e le varianti vengono promosse o eliminate in base alla loro posizione su una frontiera di Pareto dinamica. In scenari pratici, come la gestione di API complesse o parsing di strutture annidate, questo approccio consente di isolare miglioramenti specifici senza compromettere il comportamento globale dell’agente. La metafora del codice che si evolve autonomamente diventa meno retorica e più ingegneristica, perché la selezione è guidata da metriche verificabili e non da intuizioni qualitative.

Il punto di attrito, tuttavia, rimane la natura dei dati di feedback. Senza un segnale verificabile e una suite di test rappresentativa, questi sistemi collassano in ottimizzazioni locali prive di generalizzazione. Inoltre, il costo computazionale della fase di ottimizzazione rimane elevato, poiché ogni iterazione richiede la rilettura di storie operative lunghe e rumorose. Il compromesso è chiaro: si paga molto nella fase di training delle competenze per ottenere un’inferenza più leggera e standardizzata, senza modifiche allo stack sottostante. È un modello economico che ricorda più la produzione industriale che la ricerca accademica, con investimenti iniziali elevati e marginalità operative successive quasi nulle.

La direzione complessiva suggerisce un cambiamento strutturale nell’ingegneria degli agenti, dove il ruolo dello sviluppatore si sposta dalla scrittura di istruzioni alla progettazione di loop di ottimizzazione chiusi. In questo paradigma, gli agenti non vengono più “programmati” nel senso tradizionale, ma vengono inseriti in sistemi che osservano, valutano e riscrivono continuamente le proprie regole operative. Il confine tra esecuzione e sviluppo si dissolve progressivamente, sostituito da cicli continui di auto-ottimizzazione controllata.

Paper: Microsoft Research, SkillOpt: Structured Optimization of Textual Skill Spaces; GEPA: Genetic-Pareto Optimization for LLM-based Instruction Evolution; EvoSkill: Multi-Agent Skill Synthesis via Pareto Front Evolution in Code Workflows; DSPy: Compiling Declarative Language Model Programs into Self-Improving Pipelines.