Avanzato 11 minAgenti

OpenHands: un agente sviluppatore basato su un modello locale

Risposta diretta

Sì, OpenHands (ex-OpenDevin) funziona con un modello locale tramite qualsiasi endpoint compatibile con OpenAI, ma è il carico di lavoro agentico più impegnativo in assoluto: al di sotto della fascia di 27–32 miliardi di parametri con un contesto lungo (almeno 22.000 token, 32.768 consigliati), l'agente continua a ripetere gli stessi passaggi, interpreta male l'output dei comandi e modifica il file sbagliato.

OpenHands fornisce a un agente un terminale, un browser e il tuo repository, poi lo lascia lavorare: pianifica, modifica file, esegue comandi in un ambiente sandbox, legge l'output e ricomincia finché non porta a termine il compito o rinuncia. È possibile eseguirlo su un modello locale, ma richiede un modello molto più grande di quelli che la maggior parte delle persone possiede. Ecco dove si trova davvero il limite, con le impostazioni raccomandate dal progetto stesso.

Di Mohamed Meguedmi·Agg. 2026-09-28·Testato su Windows, macOS e Linux

#Cosa fa, concretamente

Descrivi un'attività in francese. L'agente esamina il repository, prepara un piano, poi agisce in un ciclo: eseguire un comando, leggere il risultato, modificare un file, rieseguire i test, leggere l'esito negativo, correggere. Questo ciclo è il prodotto. È più simile a uno stagista con un terminale che a un completamento automatico.

Ne derivano queste conseguenze. Ogni iterazione è una generazione completa su un contesto che cresce: un'attività in dieci passaggi costa dieci prompt lunghi. E poiché l'agente agisce invece di suggerire, il suo raggio d'azione comprende tutto ciò che può raggiungere — ecco perché la sandbox fa parte della progettazione e non delle impostazioni.

#Il progetto nel 2026: Agent Canvas

Il kit Copilota Locale

Questa guida ti porta al modello. Il kit ti porta al copilota che scrive codice nel tuo editor.

  • Spazio online a vita
  • PDF + file
  • Aggiornamenti a vita

OpenHands si chiamava OpenDevin al suo lancio, prima di assumere il nome attuale. Il repository, mantenuto da All Hands AI, è pubblicato sotto licenza MIT e supera le 89.000 stelle su GitHub nell'estate 2026. Il progetto si è anche ampliato: non si presenta più solo come un agente autonomo isolato, ma come «il centro di controllo ospitato in proprio per gli agenti di programmazione e le automazioni», in grado di gestire OpenHands, Claude Code, Codex o Gemini da una sola interfaccia.

In concreto, l'offerta si è articolata in diversi componenti: Agent Canvas (l'interfaccia di controllo), un Software Agent SDK per creare i propri agenti, un Agent Server e un server di automazione per le attività pianificate. La precedente interfaccia locale autonoma è stata deprecata a favore di questa architettura modulare; il principio rimane lo stesso per l'uso locale descritto qui — un agente che opera in una sandbox containerizzata — ma i nomi dei componenti e il comando di avvio possono variare da una vecchia documentazione all'altra, compresa quella che troverai ancora talvolta indicizzata con il nome OpenDevin.

#I requisiti del modello, senza giri di parole

Cosa si ottiene davvero in un'attività di sviluppo con un agente
Classe di modelloRisultato realistico
7–8 miliardiFallisce. Comandi malformati, output interpretato male, loop sullo stesso file.
14 miliardiA volte riesce a svolgere compiti banali su un solo file. Poco affidabile.
Da 27 a 32 miliardiIl livello minimo praticabile. I compiti circoscritti e ben definiti vengono portati a termine abbastanza spesso da risultare utili.
70 miliardi e oltreGiudizio nettamente migliore, ma abbastanza lento da avviare il compito e andare a fare altro.

Due capacità contano più dei punteggi dei benchmark: la chiamata di strumenti nel formato esatto previsto e la stabilità con un contesto lungo, poiché l'agente rilegge una cronologia sempre più lunga a ogni passaggio. Un modello eccellente nello scrivere una funzione a partire da un prompt può essere inutilizzabile in un ciclo. In questo esercizio, i modelli orientati al codice superano generalmente i modelli conversazionali della stessa dimensione.

La documentazione ufficiale del progetto ha cambiato raccomandazione nel corso del 2026: ora consiglia Qwen3.6-35B-A3B come primo modello locale da provare, un modello MoE (miscela di esperti) progettato per la programmazione agentica, con un contesto ampio e disponibile tramite LM Studio, Ollama, vLLM e SGLang. Il vantaggio di un MoE in questo caso è immediato: vengono attivati soltanto 3 miliardi di parametri per token, nonostante i 35 miliardi di pesi totali, il che rende la generazione nettamente più veloce rispetto a un modello denso di dimensioni comparabili, con un fabbisogno di VRAM più vicino a quello di un modello 14B che a quello di un 35B denso.

!
Il contesto è il costo nascosto
I prompt degli agenti includono il compito, il piano, il contenuto dei file e la cronologia dei comandi. La documentazione di OpenHands richiede un contesto di almeno 22.000 token con Ollama (il valore predefinito di 4.096 non basta nemmeno per il prompt di sistema) e ne consiglia 32.768. Un contesto lungo costa memoria prima ancora di costare tempo: un modello da 32 miliardi di parametri con un contesto davvero lungo richiede 24 GB o più.

#Eseguirlo in locale

  1. 01
    Esporre un modello come servizio
    Su un endpoint compatibile con OpenAI, con la variabile OLLAMA_CONTEXT_LENGTH aumentata ad almeno 22.000 (32.768 consigliato) se usi Ollama. È il passaggio che si salta, e saltarlo produce agenti che dimenticano il proprio piano.
  2. 02
    Avviare l'applicazione nella sua configurazione containerizzata
    Ha bisogno di un motore per container (Docker Desktop o Docker Engine): la shell dell'agente viene eseguita lì, non sul tuo host.
  3. 03
    Configuralo per usare il tuo endpoint locale
    Con una chiave API fittizia (ad esempio local-llm) e un URL di base raggiungibile dal container — con Docker Desktop, http://host.docker.internal:PORT/v1 anziché localhost, che indicherebbe il container stesso. Dichiara il supporto per le chiamate agli strumenti solo se il modello ne è realmente capace.
  4. 04
    Montare un singolo repository
    Idealmente un clone temporaneo, su un branch che puoi eliminare senza remore.
  5. 05
    Iniziare con un'attività piccola e verificabile
    Correggi questo test che fallisce, aggiungi questo parametro, aggiorna questa configurazione. Poi leggi di nuovo il diff.

#Il costo reale di un'attività

Un'attività svolta da un agente non richiede una sola chiamata al modello, ma una serie di chiamate, ciascuna su un contesto più lungo del precedente perché la cronologia si accumula. Per un'attività che richiede dieci iterazioni, se ogni passaggio aggiunge in media 800 token alla cronologia, la decima chiamata rilegge già diverse migliaia di token di contesto prima ancora di produrre la risposta. Nel calcolo locale, il tempo di lettura del prompt (il « prefill ») si aggiunge al tempo di generazione a ogni turno: questo spiega perché, con un agente locale basato su un modello da 32 miliardi di parametri, il tempo per attività si misura in minuti, e non in secondi come per un normale completamento.

È il prezzo da pagare per non avere una fattura API: il costo non scompare, si sposta sulla tua scheda grafica e sul tempo di attesa. Quando un compito definito male genera venti iterazioni perché l'agente continua a girare a vuoto, questo costo trasferito diventa rapidamente superiore, in termini di elettricità e tempo, a quello di una chiamata API equivalente.

#Un esempio concreto, per chiarire le idee

Prendiamo un compito realistico: « il test test_export_csv fallisce dall’ultimo commit, correggilo ». Con un modello della classe da 32 miliardi, la sequenza tipica richiede da cinque a otto iterazioni: lettura del test e del messaggio di errore, apertura del file sorgente interessato, ipotesi sulla causa, modifica, nuova esecuzione del test, lettura del nuovo risultato, eventuale aggiustamento. Ogni iterazione rilegge l’intera cronologia delle precedenti, il che rende la finestra di contesto decisiva: con soli 8.000 token, l’agente perde il filo dopo tre o quattro passaggi e ricomincia a formulare ipotesi già scartate.

Con un modello da 7 a 8 miliardi di parametri, la stessa attività fallisce più spesso in modo diverso: il test viene identificato correttamente, ma il comando per rieseguirlo è formulato male, oppure il modello modifica un file vicino con un nome simile. Non si tratta di errori di configurazione: è il limite delle capacità del modello nel rispettare il formato rigoroso richiesto dal ciclo strumento-risultato-decisione, indipendentemente dalla qualità del prompt di sistema. È anche per questo che i punteggi pubblicati nei benchmark di completamento del codice hanno scarso valore predittivo in questo caso: un modello che ottiene un punteggio elevato nella generazione di una funzione isolata può comunque essere incapace di eseguire in sequenza dieci chiamate coerenti agli strumenti senza perdere il filo, perché queste due competenze non sono correlate allo stesso modo a seconda di come è stato addestrato il modello.

#La sicurezza non è opzionale

Nessun segreto nell'ambiente
L'agente legge il proprio ambiente e può mostrarlo.
Un branch usa e getta e un clone di lavoro
Mai una tua copia di lavoro con modifiche non validate.
Accesso alla rete limitato
Un agente che può contattare qualsiasi destinazione può esfiltrare tutto ciò che ha letto.
Ogni contenuto recuperato è ostile per impostazione predefinita
La descrizione di un ticket o un file README possono contenere istruzioni rivolte all'agente: il meccanismo è illustrato nella nostra guida sull'iniezione di prompt.
Rileggere ogni diff
« I test passano » significa che i test passano, non che la modifica sia corretta.

#Quando un assistente è meglio di un agente

Lo strumento in base al compito
CompitoMiglior strumento
Completamento durante la digitazioneUn'estensione per l'editor
Una modifica che possiamo descrivere file per fileUn assistente conversazionale con il file aperto
Un compito in più fasi con un test di riuscita chiaroOpenHands, se il modello è abbastanza grande
Del codice che non riesci a rileggereNessuno dei due: non riuscirai a verificare il risultato

In sintesi, OpenHands in locale non è un gadget né un sostituto universale: è uno strumento da riservare alle macchine che possono realmente ospitare un modello da almeno 27 miliardi di parametri con un contesto di 32.000 token, e a compiti abbastanza circoscritti da poter valutare il risultato con un test automatizzato o una rapida revisione. Al di sotto di questa soglia hardware, un assistente conversazionale classico con il file aperto rimane più veloce e più affidabile di un agente che continua a ripetere il ciclo senza mai convergere.

#FAQ

OpenHands può funzionare con un modello locale?+
Sì, tramite qualsiasi punto di accesso compatibile con OpenAI: Ollama, LM Studio, vLLM o SGLang. Il limite non è la connessione, ma la capacità del modello. È il carico di lavoro locale più impegnativo nell'uso comune e i modelli piccoli falliscono qualunque sia la configurazione o la qualità del prompt di sistema utilizzato.
Qual è il modello minimo?+
Realisticamente, un modello orientato al codice da 27 a 32 miliardi di parametri, con un contesto lungo e chiamate agli strumenti affidabili. La documentazione ufficiale consiglia ora Qwen3.6-35B-A3B, un MoE agentico, come primo tentativo. Con 14 miliardi di parametri, solo i compiti banali vengono talvolta portati a termine; sotto gli 8 miliardi, il sistema non funziona in modo utilizzabile.
Quale lunghezza del contesto configurare in Ollama?+
Almeno 22.000 token: la documentazione di OpenHands specifica chiaramente che il valore predefinito di 4.096 token non basta nemmeno a contenere il solo prompt di sistema dell'agente. Consiglia 32.768 token tramite la variabile OLLAMA_CONTEXT_LENGTH per lavorare comodamente su compiti a più fasi senza troncamenti silenziosi della cronologia.
È prudente lanciarlo sulla mia macchina?+
Solo con la sua sandbox containerizzata, un clone usa e getta del repository, nessun segreto nell'ambiente e un accesso alla rete limitato a ciò di cui il compito ha realmente bisogno. L'agente esegue comandi che ha scritto lui stesso, sulla base di contenuti — ticket, README, dipendenze — che vanno considerati potenzialmente ostili per impostazione predefinita.
Quanta VRAM serve?+
Serve memoria sufficiente per ospitare un modello della classe dei 32 miliardi più un contesto lungo, cioè almeno 24 GB in pratica per un modello denso classico. Ne basta un po' meno per un MoE come Qwen3.6-35B-A3B, in cui solo una frazione dei pesi viene attivata per ogni token generato. In entrambi i casi, è il contesto, non soltanto i pesi, a sorprendere più spesso i principianti.
Perché l'agente ripete la stessa fase?+
In genere, un modello incapace di produrre il formato esatto della chiamata allo strumento previsto dal framework, oppure un contesto saturo che ha troncato silenziosamente l'inizio del piano e la cronologia dei comandi già eseguiti. La correzione, nell'ordine: aumentare prima il contesto allocato e solo successivamente passare a un modello più grande se il problema persiste.
OpenHands è ancora lo stesso progetto di OpenDevin?+
Sì, è lo stesso progetto, semplicemente rinominato agli inizi. Nel 2026 si è esteso ben oltre il singolo agente autonomo: ora si presenta come un centro di controllo ospitato su infrastruttura propria, in grado di gestire anche Claude Code, Codex o Gemini attraverso un'architettura modulare chiamata Agent Canvas, con il proprio SDK per agenti.
Questa guida ti è stata utile?

Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.