SkillOpt: il framework open source di Microsoft per ottimizzare le skill degli AI agent senza toccare i pesi del modello
Le skill degli AI agent sono un elemento chiave nelle applicazioni reali: sono set di istruzioni salvati in file di testo (solitamente markdown .md) che permettono ai modelli di adattarsi a casi d’uso aziendali specifici e a flussi di lavoro complessi. Il problema è che ottimizzarle è lento e soggetto a errori, perché non possono essere addestrate come i parametri del modello AI sottostante. Di solito si aggiornano a mano, riscrivendo le istruzioni in ogni file, un vero e proprio gioco di tentativi.
SkillOpt, un nuovo framework open source con licenza MIT sviluppato da Microsoft, cambia le regole: introduce un ottimizzatore specifico per le skill degli agent, trasformando il file .md in un oggetto addestrabile che evolve in base al feedback sulle prestazioni. Usa tecniche di ottimizzazione simili a quelle del deep learning per permettere all’AI di esplorare sistematicamente le modifiche al documento e trovare la combinazione migliore di istruzioni. E tutto senza modificare i pesi del modello sottostante.
Nei benchmark di settore, SkillOpt supera le baseline esistenti, migliorando significativamente l’accuratezza per modelli come GPT-5.5 e Qwen. Il risultato sono skill compatte e trasferibili, che permettono agli agent AI di adattarsi a nuovi domini senza sforzo.
La sfida dell’ottimizzazione delle skill
Le skill degli agent racchiudono conoscenza procedurale in specifiche in linguaggio naturale: euristiche di dominio, politiche d’uso degli strumenti, vincoli di output e modalità di errore note. Sono file di testo inseriti nel contesto dell’agente prima dell’esecuzione. Il vantaggio è che personalizzano il comportamento del modello senza cambiarne i pesi. Ma il documento della skill va ottimizzato per ottenere le migliori prestazioni.
Mentre il deep learning si basa su controlli matematici rigorosi per la stabilità, l’ingegneria dei prompt umana procede per tentativi. Yifan Yang, Senior Research SDE a Microsoft Research Asia, ha spiegato a VentureBeat che il problema non è fare modifiche, ma garantirne la validità matematica. «Il punto critico non è se un team può cambiare una skill, è che non può garantire che il cambiamento sia un miglioramento», ha detto Yang. «Tre modalità di fallimento si ripetono: nessun controllo del passo, quindi le skill derivano; nessuna validazione, quindi una correzione che sembra ragionevole viene scritta e può degradare silenziosamente le prestazioni; e nessuna memoria negativa, quindi la stessa modifica fallita ritorna.»
Yang ha illustrato quanto facilmente le prestazioni possano calare: «una riscrittura non controllata ha portato GPT-5.5 su SpreadsheetBench da 41,8 a 41,1». «Questi fallimenti sono amplificati nei flussi di lavoro multi-step perché è lì che i modelli sono più deboli zero-shot. Non sul ragionamento, ma sulla disciplina procedurale: formato, auto-verifica, politica degli strumenti.»
Prima di SkillOpt, le skill venivano create a mano, generate in un colpo solo o evolute attraverso pipeline di auto-revisione poco controllate. Metodi come TextGrad e GEPA trattano gli artefatti linguistici come oggetti ottimizzabili ma si concentrano su configurazioni a singolo prompt. Metodi come EvoSkill e Trace2Skill convertono esperienze di esecuzione in lezioni per raffinare le skill. Nessuno applica controlli stile deep learning (learning rate, validation gate, momentum) necessari per addestrare continuamente un unico documento di skill.
Importare disciplina matematica nel testo
SkillOpt ottimizza un documento di testo attraverso un ciclo iterativo di proposta e test che separa il modello che esegue i compiti dal modello che ottimizza la skill. Il processo si svolge in più passaggi:
- Si parte da un documento di skill iniziale e un modello target congelato (o harness). Il modello target esegue un batch di compiti generando traiettorie di esecuzione che fungono da prova per il passo corrente.
- Un modello ottimizzatore offline analizza queste traiettorie, separando successi e fallimenti in minibatch. L’analisi di un minibatch aiuta il modello a identificare errori procedurali sistematici, non anomalie isolate.
- Sulla base di questi pattern, l’ottimizzatore propone modifiche strutturali (aggiunta, eliminazione o sostituzione) al documento di skill.
- Le modifiche proposte vengono filtrate per rimuovere duplicati o contraddizioni, e l’ottimizzatore le classifica in base all’utilità attesa.
- Invece di applicare tutte le modifiche, SkillOpt taglia la lista a un budget massimo di modifiche per quel passo, generando una skill candidata.
- La skill candidata viene valutata su un set di validazione trattenuto (hold-out) usando il modello target. Se migliora il punteggio di validazione, viene accettata e diventa la nuova skill corrente. Se fallisce, le modifiche vengono rifiutate e inviate a un buffer di modifiche rifiutate, fornendo feedback negativo all’ottimizzatore.
SkillOpt importa concetti matematici dal deep learning per trattare il testo come un oggetto addestrabile. I creatori notano che «l’analogia con il deep learning è operativa, non decorativa». Il budget di modifica agisce come un learning rate: limitando quante modifiche possono essere applicate in una volta, si impedisce alla versione della skill di allontanarsi troppo dal suo stato precedente, preservando la continuità. La validazione su esempi hold-out fa da validation loss. Alla fine di un’epoca, SkillOpt esegue un aggiornamento lento confrontando i compiti tra la skill precedente e quella corrente, agendo come un momentum che trasporta lezioni procedurali a lungo termine.
SkillOpt in azione
I ricercatori hanno testato SkillOpt su diversi modelli, dal grande modello frontiera GPT-5.5 a modelli più piccoli come GPT-5.4-mini e Qwen3.5-4B, e con diversi harness di esecuzione (chat semplice, harness di codifica complessi come Codex CLI e Claude Code). La valutazione ha coperto benchmark di settore: question-answering a singolo round, generazione di codice multi-round con uso di strumenti e ragionamento multimodale su documenti. SkillOpt è stato confrontato con baseline come l’assenza di skill, skill scritte da umani e skill generate in un colpo solo da LLM, e con metodi avanzati come Trace2Skill, TextGrad, GEPA e EvoSkill.
SkillOpt ha dominato in tutte le 52 combinazioni di modello, benchmark e harness valutate. Particolarmente efficace con i modelli frontiera, ha ottenuto un miglioramento assoluto medio di +23,5 punti rispetto alla baseline senza skill su GPT-5.5. Inoltre, SkillOpt ha superato una baseline oracolare ipotetica che sceglieva il miglior metodo concorrente per ogni problema.
