Orchard, lo strato sottile sotto gli agenti: l’ambiente open source di Microsoft che fa viaggiare dati e ricette

Microsoft Research presenta Orchard, un servizio su Kubernetes che fa una cosa sola, gestire migliaia di sandbox, e sopra ci costruisce tre ricette di addestramento per agenti di programmazione, di navigazione web e di assistenza personale. I numeri su SWE-bench e sul browser, la scoperta più utile (quanto un agente resta legato all'harness con cui è stato addestrato) e che cosa il paper non dice.

Chi viaggia con un phon sa che il problema non è il phon, e nemmeno la corrente dell’albergo: è la presa. Se ogni elettrodomestico dovesse nascere con la spina del paese in cui verrà usato, se ne dovrebbe comprare uno per ogni viaggio. La soluzione è banale e poco appariscente: uno strato sottile, standard, in mezzo, che non sa niente di che cosa ci si attacca sopra.

Su questa idea, applicata agli agenti, si regge Orchard: An Open-Source Agentic Modeling Framework, uscito su arXiv il 14 maggio 2026 (2605.15040, oggi alla terza versione, del 30 luglio). Lo firmano quattordici autori di Microsoft Research, Columbia University e UIUC, con Baolin Peng, Wenlin Yao, Qianhui Wu e Hao Cheng come primi autori e Jianfeng Gao, con Peng, come autore di riferimento. Il gruppo dichiara di rilasciare tutto: il servizio di ambienti, le ricette di addestramento e i dataset di traiettorie.

Il collo di bottiglia che non si vede

Addestrare un agente vuol dire fargli fare migliaia di tentativi, ognuno fatto di decine di passi dentro un ambiente isolato. Per un compito di ingegneria del software, una sola traiettoria può chiedere di clonare un repository, installare le dipendenze, modificare il codice e lanciare i test, il tutto dentro un container da creare, sorvegliare e distruggere. Moltiplicato per migliaia di tentativi in parallelo, ognuno con la sua immagine Docker.

Oggi, sostengono gli autori, le strade sono due e nessuna è comoda. Le piattaforme gestite (E2B, Daytona, Modal) funzionano, ma lasciano poco controllo su configurazione, costi e riproducibilità. I sistemi integrati come ProRL Agent e MegaFlow gestiscono gli ambienti dentro un apparato più grande, legati allo scheduling dell’inferenza, al calcolo delle ricompense e al ciclo di addestramento. Il risultato è che traiettorie, ricette e valutazioni restano incollate a un’infrastruttura o a un harness particolare, e altrove non si possono riusare.

Che cos’è l’harness di un agente, il programma che gli passa gli strumenti, esegue le sue azioni e gli restituisce le osservazioni: il ciclo dell’agente è spiegato nel libro.

Leggi «Il ciclo dell’agente» nel libro →

Orchard Env: un servizio stretto di proposito

La proposta è Orchard Env, un servizio che espone poche primitive (creare e distruggere sandbox, eseguire comandi, leggere e scrivere file, regole di rete) attraverso un’API REST, senza sapere niente dell’harness, del trainer, del motore di inferenza o del dominio. Ha tre livelli: un SDK Python, sincrono e asincrono; un orchestratore FastAPI su Kubernetes che gestisce il ciclo di vita delle sandbox; e un piccolo server che vive dentro ogni sandbox ed esegue i comandi.

Due scelte tecniche fanno la differenza. La prima è l’iniezione: quel server non va inserito nelle immagini al momento della build, perché all’avvio del pod ce lo copia un init container di Kubernetes. Qualsiasi immagine Docker funziona così com’è, cosa non da poco quando SWE-bench ne richiede centinaia, tutte diverse. La seconda riguarda la strada dei comandi: creazione e cancellazione passano dall’API server di Kubernetes, ma ogni esecuzione va dritta all’indirizzo IP del pod, senza il costo di kubectl exec e delle sue WebSocket.

Latenza media per comando: 0,28 secondi, contro 0,284 di SkyPilot Code Sandbox, 0,747 di E2B e 2,046 di Modal. Mille sandbox in parallelo, create, usate per quattro comandi e distrutte in 26 secondi, senza un fallimento. Su Terminal-Bench 2.0 gli stessi modelli ottengono con Orchard Env punteggi in linea con Docker diretto, anzi di uno o due punti sopra, dentro la variabilità tra un giro e l’altro. E il costo stimato per 128 sandbox tenute accese 240 ore scende da 7.078 dollari con Daytona o E2B a 3.362 dollari su macchine on-demand e a 673 dollari su istanze spot.

Orchard: tre ricette su uno strato sottile Orchard-SWE agenti di programmazione 73,0% SWE-bench Verified Orchard-GUI navigazione nel browser, 4B 68,4% media su tre benchmark Orchard-Claw assistente personale 59,6% pass@3 Claw-Eval nessun legame fisso: si appoggiano, non si incastrano Orchard Env · servizio su Kubernetes sandbox · comandi · file · rete · API REST · 0,28 s a comando repository browser desktop e mobile posta e calendario qualsiasi immagine Docker, senza ricostruirla: il server di esecuzione viene iniettato all’avvio

La ricetta per il codice

Sopra lo strato, il gruppo costruisce tre ricette. La più ricca è Orchard-SWE. Il punto di partenza sono 107.000 traiettorie distillate da due modelli insegnanti, MiniMax-M2.5 e Qwen3.5-397B, raccolte con due harness diversi (OpenHands e mini-swe-agent): 74.600 risolvono il compito, 32.500 no. Di solito le seconde si buttano. Qui no: l’insegnante rilegge ogni tentativo fallito sapendo com’è finito, e stima su alcuni passi chiave, interpolando gli altri, la probabilità $V(s_t)$ che l’agente stesse andando verso la soluzione. Il credito di un passo è la variazione

$$c_t = V(s_{t+1}) – V(s_t),$$

e dei tentativi falliti il fine-tuning tiene solo i tratti in cui $c_t$ resta sopra una piccola soglia: orientarsi nel repository, localizzare il file giusto, capire in parte la causa. A parità di quantità di dati il guadagno è modesto ma misurato, da 59,3 a 61,2 per cento su SWE-bench Verified.

Poi il rinforzo, in tre varianti: un campionamento più efficiente con la sola ricompensa finale, e due segnali più densi. Balanced Adaptive Rollout genera tentativi a blocchi finché non riesce a comporre un gruppo con una quota di successi tra il 37,5 e il 62,5 per cento: un gruppo tutto giusto o tutto sbagliato non insegna niente e costa come gli altri. La distillazione on-policy aggiunge un segnale token per token da un modello più grande, Qwen3.5-397B. La ricompensa di processo, infine, è un giudice LLM che valuta l’intera traiettoria su sette voci, sei delle quali riguardano l’autoverifica (ha scritto un test che riproduce il bug? ha rispettato un fallimento o ha consegnato lo stesso?), con l’85 per cento del peso.

Da dove vengono GRPO, i gruppi di tentativi e i vantaggi relativi su cui Orchard costruisce le sue varianti: il post-addestramento con rinforzo è spiegato nel libro.

Leggi «Dopo il pre-addestramento» nel libro →

L’ultima idea è la più economica. Le traiettorie di venti esperimenti di rinforzo precedenti, che normalmente finirebbero nel cestino, addestrano offline un piccolo modello di valore, un Qwen3-4B con una testa scalare. Al momento dell’uso l’agente produce sei candidati e si tiene quello che il modello di valore preferisce:

$$\tau^{*} = \arg\max_{\tau_i} V_{\phi}(\tau_i).$$

I risultati su SWE-bench Verified crescono a ogni tappa della ricetta, e la scelta tra sei candidati porta Qwen3.5-35B-A3B al 73,0 per cento. È il miglior risultato open source della tabella, con circa 3 miliardi di parametri attivi. I modelli di frontiera restano sopra, misurati però con un altro harness (SWE-Agent).

SWE-bench Verified, tappa per tappa problemi risolti, in percentuale · più alto è meglio
Modello e fase Risolti
Qwen3-30B-A3B-Thinking
Di partenza 22,0
Dopo il fine-tuning 64,3
Dopo il rinforzo 67,5
Qwen3.5-35B-A3B
Di partenza 61,4
Rinforzo con BAR 69,1
Rinforzo con la distillazione 69,3
Rinforzo con la ricompensa di processo 69,7
Scelta tra sei candidati 73,0
Modelli di frontiera, con SWE-Agent
GLM-5.1 75,0
Seed-2.1 pro 76,0
Claude Opus 4.8 88,6

La scoperta più utile: gli agenti si affezionano all’harness

La parte del paper che vale per tutti riguarda un effetto che le classifiche nascondono. In un esperimento controllato, 12.000 traiettorie risolte dallo stesso insegnante per ciascun harness e stessa ricetta, ogni modello rende molto di più a casa propria, con l’harness con cui è stato addestrato, che fuori.

A casa e fuori casa problemi risolti, in percentuale · righe: harness di addestramento · colonne: harness di valutazione
Addestrato con mini-swe-agent OpenHands
mini-swe-agent 57,9 19,0
OpenHands 28,0 53,5

Il modello non ha imparato a sistemare il codice in astratto: ha imparato anche il formato delle chiamate, la forma delle osservazioni, le abitudini di quel particolare harness.

Lo stesso accade a sistemi pubblicati da altri. Scale-SWE, 64,0 per cento dichiarato, produce chiamate malformate appena lo si sposta dal suo harness. OpenSWE-32B scende dal 62,4 al 54,9 con mini-swe-agent e al 3,6 con Kimi-CLI, un harness che nessuno dei tre sistemi ha visto in addestramento. Orchard-SWE, addestrato su due harness, resta tra il 45,0 e il 64,3, e su Terminal-Bench 2.0, fuori dominio e con Kimi-CLI, tiene un 20,1 per cento contro lo 0,0 di OpenSWE-32B. Un punteggio su un solo harness, concludono gli autori, dice meno di quanto sembri.

Browser e assistenti personali

Orchard-GUI addestra un modello visivo da 4 miliardi di parametri, Qwen3-VL-4B-Thinking, a navigare il web con tredici azioni elementari (cliccare, scrivere, scorrere, aprire schede) dentro un harness generico. Dai 292.092 compiti della raccolta WebGym ne restano 15.601 dopo i filtri, ma all’addestramento ne bastano pochi: 412 traiettorie per il fine-tuning e 2.198 compiti per il rinforzo. L’insegnante è Qwen3-VL-235B; nel rinforzo la ricompensa la decide GPT-4.1 guardando la risposta finale e gli screenshot. I risultati: 74,1 per cento su WebVoyager, 67,0 su Online-Mind2Web, 64,0 su DeepShop, media 68,4. Su WebVoyager resta sotto MolmoWeb-4B (75,2) e MolmoWeb-8B (78,2), addestrati su circa cento volte più compiti; sugli altri due supera l’8B di 31,7 e 21,7 punti, e supera anche il proprio insegnante da 235 miliardi.

Orchard-Claw è il pezzo più piccolo e più esplorativo: un assistente per posta, calendario e piccoli flussi di lavoro. I 192 compiti di addestramento li ha sintetizzati Claude Opus 4.6, a una media di 4,9 dollari l’uno; dopo fine-tuning e rinforzo, Qwen3-30B-A3B-Thinking arriva su Claw-Eval al 31,7 per cento pass$^3$ (tre tentativi su tre riusciti) e al 59,6 pass@3 (almeno uno su tre). Con l’harness ZeroClaw, su cui è stato anche addestrato, sale a 41,0 e 73,9: il salto più grande tra i modelli confrontati.

Che cosa il paper non dice

Non c’è una sezione sui limiti, e alcuni vanno ricostruiti. I costi sono stime dai listini di aprile 2026, non fatture; le misure di sistema, compresi i 26 secondi per mille sandbox, sono fatte con le immagini già scaricate su ogni nodo, cioè nel caso favorevole.

Il 73,0 costa sei volte l’inferenza. È un best-of-6 riordinato dal modello di valore, e va confrontato con il 69,7 del singolo modello. Un oracolo che scegliesse sempre il candidato giusto, quando c’è, arriverebbe all’82,4: il margine lasciato sul tavolo è grande.

I giudici sono modelli. La ricompensa di Orchard-GUI viene da GPT-4.1, la ricompensa di processo da un giudice LLM, i compiti di Orchard-Claw da un modello chiuso, in parte a partire da esempi dello stesso Claw-Eval su cui poi si misura. Il 13 per cento dei compiti web, inoltre, si è bloccato su un captcha in tutti e quattro i tentativi dell’insegnante.

La generalizzazione resta parziale. Partendo dal modello più addestrato, il rinforzo migliora SWE-bench Verified ma peggiora leggermente la versione multilingue; e con l’harness mai visto il modello perde fino a 19,3 punti. Gli autori lo scrivono: la generalizzazione migliora, non è risolta.

Perché conta adesso

Una parte crescente del lavoro sugli agenti non si decide nei pesi ma nell’impianto che li circonda: dove girano i tentativi, quanto costano, quale harness li media. Orchard sposta l’attenzione su quel piano poco fotografato, e lo fa con un argomento misurabile: se l’ambiente è una presa standard, lo stesso servizio regge harness diversi, raccolta dei dati, rinforzo e valutazione, le ricette si scambiano e perfino gli scarti dei vecchi esperimenti diventano un modello utile. Per un gruppo universitario che non ha un cluster di Microsoft, la cifra da guardare non è il 73,0: sono i 673 dollari per tenere accese 128 sandbox dieci giorni, se verranno confermati da chi prova il codice.

I commenti sono riservati agli iscritti.

Accedi per commentare