L'addestramento degli agenti basati su modelli linguistici (LLM) tramite apprendimento per rinforzo (RL) sta raggiungendo livelli di complessità senza precedenti, richiedendo la gestione di strumenti multi-turno, contesti a lungo termine e orchestrazioni multi-agente. La principale sfida ingegneristica risiede nel collegare i software degli agenti esistenti alle pipeline di addestramento senza compromettere il funzionamento degli strumenti stessi. Per rispondere a questa esigenza, il team di ricerca di NVIDIA ha presentato Polar, un framework di rollout che consente di eseguire l'apprendimento per rinforzo su qualsiasi "agent harness" senza la necessità di modificarlo.

5.39x
Velocità incrementata
Miglioramento del wall-clock time con la strategia prefix_merging
87.7%
Utilizzo GPU
Picco di efficienza raggiunto durante le fasi di rollout
+22.6
Punti guadagnati
Incremento delle prestazioni su Codex in SWE-Bench Verified

Il problema fondamentale: l'integrazione degli Harness

Un "agent harness" è uno strumento come Codex CLI, Claude Code, Qwen Code o Pi, che gestisce prompt di sistema, formattazione dei tool, ingegneria del contesto e modalità di invio delle patch. Questi dettagli influenzano direttamente il comportamento dell'agente durante la fase di valutazione.

Le infrastrutture di RL tradizionali richiedono che la logica dell'harness venga riscritta per adattarsi a un'API di ambiente proprietaria del framework (solitamente nel formato env.init(), env.step(), env.reset() stile OpenAI Gym). Ogni nuovo harness richiede quindi nuovo codice di integrazione, con il rischio di perdere dettagli esecutivi specifici del percorso nativo dell'harness stesso.

Come funziona il Gateway Proxy

Per ogni richiesta in entrata, il gateway proxy esegue quattro passaggi critici:

  1. Rilevamento dell'API del provider: identifica se si tratta di chiamate Anthropic Messages, OpenAI Chat Completions o Google generateContent tramite l'analisi dei path e degli header.
  2. Normalizzazione della richiesta: converte ruoli, parti di contenuto, definizioni di strumenti e parametri di generazione nel formato OpenAI Chat Completions utilizzato dal server di inferenza locale.
  3. Cattura dei dati a livello di token: memorizza messaggi di richiesta/risposta, ID dei token del prompt, ID dei token campionati, motivo della fine (finish reason) e log-probabilities.
  4. Restituzione del formato originale: trasforma la risposta nel formato che l'harness si aspetta di ricevere.

Per le richieste in streaming, Polar ottiene una risposta non-streaming dall'upstream ed emette uno stream sintetico, preservando la compatibilità con gli harness che si aspettano eventi server-sent e garantendo al contempo la cattura completa dei token.

Architettura del framework NVIDIA Polar per il training di agenti LLM
Schema dell'architettura di Polar: integrazione tramite proxy API senza modifiche al codice dell'agente.

Architettura: Rollout Server e Nodi Gateway

Polar è composto da due componenti principali:

  • Rollout Server: accetta una TaskRequest e la espande in sessioni indipendenti. Ogni sessione include ID, timeout, specifiche di runtime e dell'agente, e un valutatore. Il server smista le sessioni ai nodi gateway e gestisce i callback al completamento.
  • Gateway Nodes: gestiscono il ciclo di vita di ogni sessione (avvio runtime, esecuzione harness, costruzione traiettorie e valutazione). Ospitano l'endpoint proxy per le chiamate al modello, legando la cattura dei dati al registro della sessione.

All'interno di ogni gateway, pool di worker isolati gestiscono le fasi di INIT, RUNNING e POSTRUN. Una memoria buffer (READY buffer) mantiene i runtime inizializzati finché non è disponibile uno slot di esecuzione, evitando che la preparazione pesante della CPU blocchi l'esecuzione dell'agente legata alla GPU.

Ricostruzione della Traiettoria: per_request vs. prefix_merging

Dopo il completamento di una sessione, Polar ricostruisce le traiettorie addestrabili. Sono disponibili due strategie:

La strategia per_request considera ogni chiamata al modello come una traccia indipendente. Sebbene sia accurata per le singole chiamate, frammenta le sessioni multi-turno, producendo centinaia di tracce per un singolo problema e appesantendo i trainer a valle.

La strategia prefix_merging ricostruisce tracce più lunghe dove l'harness mantiene cronologie di conversazione incrementali. Partiziona i completamenti in catene ordinate verificando una stretta relazione di prefisso tra i token. Solo i token campionati dall'assistente sono contrassegnati come addestrabili, mentre ai token interstiziali viene applicata una maschera di perdita pari a zero.

Confronto Efficienza: Strategie di Ricostruzione
Mostra dati
Confronto Efficienza: Strategie di Ricostruzione
VoceValore
Per Request (min)189,5
Prefix Merging (min)35,2

Risultati SWE-Bench Verified

L'addestramento ha utilizzato l'algoritmo GRPO sul modello base Qwen3.5-4B. I risultati mostrano guadagni significativi, specialmente dove l'agente deve interfacciarsi con protocolli di azione non familiari.

Pro
  • Nessuna modifica richiesta al codice dell harness esistente
  • Supporto nativo per API Anthropic, OpenAI e Google
  • Riduzione drastica dei tempi di addestramento (5.39x)
  • Recupero di tracce parziali in caso di timeout
Contro
  • Il design delle reward rimane a carico del ricercatore
  • Richiede che l harness supporti la configurazione del base URL del modello
  • Dipendenza dalla qualità dei dati forniti dallo stack di serving

Il guadagno più eclatante è stato registrato con Codex: un incremento di 22.6 punti. Poiché Codex presenta uno stile di invio patch insolito per un modello Qwen, Polar ha permesso a GRPO di ottimizzare il comportamento esatto che il modello utilizza durante l'esecuzione reale, collegando il segnale di ricompensa ai token campionati lungo il percorso esecutivo di Codex.

Generazione dati SFT offline

Polar funge anche da servizio di generazione dati offline distribuito. Testato con Qwen3.5-122B su un server con 8 GPU H100, il sistema ha elaborato 1.638 istanze da repository SWE-Gym. Una traiettoria viene accettata nel corpus SFT solo se l'agente risolve tutti i test FAIL_TO_PASS senza compromettere i test PASS_TO_PASS. Il tasso di accettazione totale è stato del 30,8% (504 traiettorie accettate) con un costo di circa 64 ore-GPU.

Il nostro verdetto
4.8/ 5

L’anello mancante nell’addestramento degli agenti

Polar di NVIDIA rappresenta una svolta infrastrutturale fondamentale. Rimuovendo la frizione tra lo sviluppo degli agenti e il loro addestramento tramite reinforcement learning, permette una ricerca più rapida e scalabile su agenti capaci di risolvere compiti di ingegneria del software complessi.

Polar richiede modifiche al codice del mio agente?
No, è sufficiente puntare l URL del modello dell harness verso l endpoint gateway di Polar.
Quali API sono supportate?
Attualmente supporta Anthropic Messages, OpenAI Chat Completions, OpenAI Responses e Google generateContent.
Cosa succede se un harness va in timeout?
Polar entra comunque in fase di POSTRUN, consentendo il recupero delle tracce parziali catturate fino al momento del blocco.
Qual è il vantaggio principale di prefix_merging?
Riduce significativamente il numero di aggiornamenti del trainer e il tempo totale di addestramento, migliorando l utilizzo della GPU.

Fonti e riferimenti

  1. ArXiv: Polar - A Token-Faithful Rollout Framework
  2. GitHub: ProRL-Agent-Server