Dalla reazione community alla piattaforma
Nel marzo 2024 la startup Cognition Labs presenta Devin, un agent autonomo per ingegneria del software, in un demo ad alto impatto mediatico. A poche settimane di distanza nasce, come risposta della community open source, il progetto OpenDevin, coordinato tra gli altri da Robert Brennan, Xingyao Wang e Graham Neubig (CMU). Il 3 settembre 2024 il progetto viene ribattezzato OpenHands e viene costituita All Hands AI come organizzazione di riferimento. La licenza è MIT.
Il cambio di nome accompagna la trasformazione del progetto da iniziativa ad-hoc a piattaforma strutturata per lo sviluppo di agent software.
Architettura dell’agent
OpenHands è costruito attorno a un agent autonomo che interagisce con un ambiente di sviluppo isolato. L’agent opera tramite tre categorie di tool: browser (navigazione web tramite Playwright o Chrome DevTools Protocol), editor (lettura, scrittura, patch di file del progetto) e shell (esecuzione di comandi in un ambiente Linux).
L’esecuzione avviene in un sandbox Docker, isolando filesystem, rete e processi dall’host. Questa scelta è coerente con il profilo di rischio di un agent che può eseguire codice arbitrario: qualsiasi effetto collaterale resta confinato nel container e può essere revertito al termine della sessione.
CodeAct e il ciclo di esecuzione
L’agent di default implementa il pattern CodeAct: a ogni iterazione il modello emette un blocco di codice (bash o Python) che viene eseguito nel sandbox; l’output dell’esecuzione viene restituito come nuovo contesto per il passo successivo. Questo ciclo continua fino a quando l’agent segnala il completamento del task o viene raggiunto un limite di iterazioni.
La scelta di esprimere azioni come codice — invece che come JSON function call strutturati — segue la linea del paper “Executable Code Actions Elicit Better LLM Agents” e si allinea con altre implementazioni simili come SmolAgents.
SWE-bench Verified come benchmark
OpenHands è valutato sistematicamente sul benchmark SWE-bench Verified, un subset curato di SWE-bench composto da issue reali di progetti Python open source (Django, Flask, scikit-learn e altri) con test di verifica associati. I risultati sono pubblicati su una leaderboard pubblica che confronta le varie configurazioni di agent e modelli sottostanti.
Le posizioni di vertice della leaderboard sono frequentemente occupate da configurazioni basate su OpenHands con modelli commerciali (Claude, GPT-4 class), confermando la piattaforma come uno dei riferimenti per SWE-agent open source.
Link: all-hands.dev
