DeepSeek Harness: cos’è, come funziona e a chi serve

DeepSeek ha aperto Harness con licenza MIT: l'infrastruttura per costruire agenti AI che lavorano da soli. Cosa fa davvero, quali modelli supporta e cosa non funziona ancora.

109.000 stelle su GitHub in due giorni. Una crescita così si era vista solo con OpenClaw.

Il 13 agosto 2026 DeepSeek ha aperto il codice di DeepSeek Harness, licenza MIT, lo stesso giorno in cui ha dichiarato V4-Pro generalmente disponibile. Su LinkedIn e X è partito il solito giro di post che contano le stelle.

La notizia non è il numero. È cosa hanno deciso di regalare: non un modello, ma l’impalcatura che gli sta attorno. Quella che finora era il vantaggio competitivo di Claude Code e Codex.

Ho letto tutta la documentazione ufficiale per capire cosa c’è davvero sotto, se ci si può costruire un ufficio agentico sopra, e dove sta la fregatura. Ecco cosa ho trovato.

Cos’è DeepSeek Harness

DeepSeek Harness (comando dsh) è un agent harness open source con licenza MIT: il livello software che trasforma un modello linguistico in un agente capace di leggere file, eseguire comandi, usare strumenti esterni e portare avanti un compito in più passaggi senza supervisione continua.

La formula che DeepSeek mette in cima al sito è Agent = Model + Harness. Il modello è il cervello. L’harness è tutto il resto: definizione dei tool, accesso a filesystem e shell, gestione della memoria e del contesto, orchestrazione dei sotto-agenti, permessi, e soprattutto la regola su quando fermarsi.

Non è un assistente per programmare pronto all’uso. È il pezzo sotto: quello con cui te lo costruisci.

Come funziona: ogni componente è un plugin

L’architettura poggia su Cordis, un kernel a plugin il cui design è descritto nel paper A Programming Paradigm for Spatiotemporal Composability.

Il principio è che non esiste un nucleo intoccabile. Sono plugin:

  • il modello
  • i tool
  • le skill
  • le sessioni
  • la sandbox
  • lo storage
  • il ciclo dell’agente
  • lo scheduling
  • l’interfaccia utente

In pratica: cambi un pezzo da configurazione, senza forkare il progetto. Se il loop predefinito non ti piace, ne monti un altro. Se vuoi salvare le sessioni su un database tuo, sostituisci il plugin dello storage.

C’è un secondo principio, meno appariscente ma più utile nel lavoro quotidiano: ogni esecuzione è tracciabile. Tutto ciò che il modello vede finisce in un log append-only, inclusi i prompt di sistema, il ragionamento, le chiamate ai tool con i relativi risultati, lo scheduling dei sotto-agenti e ogni iniezione di contesto. Da quel singolo flusso di eventi puoi riprendere una sessione, forkarla, cercarci dentro o rigiocarla.

Chi ha passato ore a capire perché un agente si è impuntato al quinto passaggio sa quanto vale.

Ti sta piacendo?

Ricevi una guida pratica ogni settimana. AI, tool e automazioni.

Le quattro modalità di lavoro

DSH non ha una configurazione unica: parte in quattro modalità diverse.

ModalitàCosa faQuando usarla
StandardToolset completo: editing file, shell, ricerca file e web, skill, planning, sotto-agenti, workflowUso normale, agente di coding completo
CodeTutti i tool di Standard esposti via Code Mode SDK: il modello scrive un programma TypeScript che li orchestraOperazioni multi-step complesse, meno round-trip
MinimalSolo due strumenti: bash persistente e str_replace_editorBenchmark dei modelli in ambiente pulito
CreatorStandard più ispezione del runtime ed esperimenti sui pluginCreare preset e configurazioni personalizzate

La modalità Minimal merita una nota: è di fatto l’harness da benchmark, quello che isola le capacità del modello dal contorno. È anche la composizione usata nell’esempio del SDK Python.

Quali modelli puoi usare (anche in locale)

Qui sta il punto che interessa di più a chi è attento al lock-in: il modello lo scegli tu.

Le opzioni sono tre:

  • Catalogo integrato: DeepSeek, Anthropic, OpenAI e altri, con endpoint e lista modelli già pronti
  • Provider con autenticazione nativa: Bedrock con credenziali AWS, Vertex con progetto ADC, Azure con api-version, Codex con OAuth
  • Provider personalizzato: qualsiasi endpoint compatibile con l’API OpenAI

Quest’ultima è la strada per i modelli locali. Ollama, LM Studio o vLLM entrano come provider custom: gli dai un Provider ID minuscolo, la base URL (http://localhost:11434/v1 nel caso di Ollama), il protocollo API e almeno un modello. Lo stesso meccanismo che uso per collegare Claude Code a Ollama, qui è nativo.

Le chiavi sono write-only: vengono salvate in $DSH_HOME/.credentials.yaml e l’interfaccia riceve solo un descrittore oscurato, mai il segreto in chiaro.

Un dettaglio che fa perdere tempo se non lo sai: un modello inserito a mano viene trattato come solo testo finché non dichiari esplicitamente il contrario. Se usi un modello di visione su un provider custom, devi aggiungere una riga nel settings.yaml:

llm-pi-ai:
  providers:
    my-gateway:
      apiKeyEnv: GATEWAY_API_KEY
      api: openai-completions
      baseURL: https://gateway.example/v1
      models:
        - id: vision-preview
          input: [text, image]

Senza quella riga, l’immagine viene rifiutata prima ancora di partire.

Come provarlo in 30 secondi

Serve solo Node.js:

npx @deepseek-ai/dsh web

Il comando avvia la Web UI su http://127.0.0.1:3080. Da lì apri Settings → Models, inserisci la chiave del provider e salvi: la modifica vale dalla richiesta successiva, senza riavviare il server.

Poi clicca Choose workspace e seleziona la cartella del progetto. Finché non lo fai, il campo per scrivere resta bloccato.

Chi preferisce partire dal sorgente:

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

C’è anche un SDK Python (pip install deepseek-harness-sdk, Python 3.10 o superiore) che porta con sé un runtime già compilato: non serve Node.js di sistema. Funziona su Linux x64, Linux arm64 e macOS 14 o superiore su arm64. Su Windows no, almeno per la composizione che usa il PTY persistente.

Prima di costruirci sopra qualcosa, lancia questo:

dsh --profile web --dump-config

Ti stampa l’albero dei plugin realmente montati all’avvio. È più affidabile che dare per scontato che ogni pacchetto presente nel repository sia attivo nel profilo distribuito.

DeepSeek Harness vs Claude Code, Codex e OpenCode

Il confronto più citato è con Claude Code, ma non sono la stessa categoria di prodotto.

DeepSeek HarnessClaude Code / CodexOpenCodeLangGraph
Cos’èFramework per comporre l’harnessAgente pronto all’usoAgente pronto, model-agnosticLibreria di orchestrazione
LicenzaMITProprietariaMITMIT
ModelliQualsiasi, anche localiLegati al proprio providerOltre 75 providerQualsiasi
InterfacciaWeb UI + SDK PythonCLI e IDETUI da terminaleNessuna
Chi decide il percorsoIl modelloIl modelloIl modelloLo scrivi tu, nodo per nodo
MaturitàDeveloper previewProduzioneProduzioneProduzione

La differenza con LangGraph è quella che conta di più se hai già automazioni in piedi: con LangGraph disegni tu il grafo passo per passo e il flusso è deterministico. Con DSH dai un obiettivo e i passaggi li decide il modello. Non è un sostituto: sono due strumenti per problemi diversi. I flussi dove serve determinismo, come compliance o output strutturato, restano meglio su LangGraph.

Con OpenCode la sovrapposizione è molto più alta: stessa filosofia model-agnostic, stessa licenza. La differenza sta nella profondità del sistema a plugin. In OpenCode i plugin sono agganci prima e dopo le chiamate ai tool, attorno a un nucleo fisso. In DSH il nucleo stesso è fatto di plugin. In compenso OpenCode è molto più maturo e già usato in produzione.

Un aspetto che rende DSH più interessante del previsto: legge AGENTS.md e CLAUDE.md, fa da client MCP, monta i bridge per gli hook di Claude Code e Codex eseguendo il tuo hooks.json esistente, e può delegare il lavoro ai binari di Claude Code o Codex già installati sulla macchina, funzione disattivata di default.

Quello che hai già configurato non lo butti.

Cosa non funziona ancora

Attenzione però, e qui il condizionale è d’obbligo su tutto.

È una developer preview dichiarata. Il README avvisa in maiuscolo che ci saranno modifiche che rompono la compatibilità. Il pacchetto pubblicato è ancora una release candidate. Quello che costruisci oggi potrebbe non funzionare tra un mese.

Zero benchmark pubblicati. Nel repository c’è un file BENCHMARK.md, ma dentro ci sono tre righe che rimandano alla guida del SDK Python. Nessun numero, nessun confronto, nonostante la modalità Minimal sia progettata esattamente per quello.

La configurazione MCP è ancora da sviluppatori. Le capacità di client MCP ci sono nel sorgente, ma non è la casella da spuntare che trovi in Claude Code. Vanno trattate come lavoro su plugin versionati.

L’esempio del SDK Python gira in danger-full-access. Bash ed editor possono modificare qualsiasi percorso visibile al processo. Va eseguito solo dentro un container o un checkout usa e getta, mai sulla macchina di lavoro.

E poi c’è la domanda che nessuno sta facendo ad alta voce. 109.000 stelle in 48 ore, su un progetto in preview, senza benchmark e senza release taggata: quanto è organico quel numero?

Conclusione: a chi serve e a chi no

Torniamo alla domanda dell’inizio. Ci si può costruire sopra un ufficio agentico?

I pezzi ci sono tutti: sotto-agenti, skill, scheduling, sandbox, sessioni persistenti, client MCP, login OAuth per Codex, e la libertà di far girare i modelli dove vuoi, server tuo compreso. Sulla carta è più completo di quanto ci si aspetti da una v0.1.

Ti serve se: vuoi capire come è fatto dentro un agent harness, hai bisogno di sostituire il ciclo dell’agente o l’interfaccia, o stai valutando quanto costa davvero uscire dal recinto di un singolo fornitore.

Non ti serve se: devi consegnare qualcosa la settimana prossima. Per quello ci sono OpenCode e Claude Code, che funzionano oggi.

Il mio piano è provarlo al rientro dalle vacanze su un flusso reale del mio ufficio agentico, che oggi gira su LangGraph. Sceglierò un processo dove il grafo è diventato rigido e pieno di rami: è lì che un agente autonomo può fare la differenza. Quando avrò i numeri li scrivo.

Non è il rivale di Claude Code. È il pannello di controllo che ci sta sopra, e adesso è gratis.

Un dettaglio finale che dice più di mille analisi: nella radice del repository ci sono un file CLAUDE.md e una cartella .claude/. L’hanno costruito usando Claude Code.

Cos’è esattamente un agent harness?

È il livello software attorno al modello: definizione dei tool, accesso a shell e filesystem, gestione del contesto, orchestrazione dei sotto-agenti e regole su quando fermarsi. Il modello genera testo, l’harness lo trasforma in un agente che agisce sull’ambiente reale.

DeepSeek Harness è gratis?

Sì, il software è open source con licenza MIT e si scarica liberamente. Quello che paghi sono i modelli: se usi le API di DeepSeek, Anthropic o OpenAI paghi a consumo. Se colleghi un modello locale via Ollama o vLLM, il costo dei token è zero.

Posso usarlo con modelli locali?

Sì. Basta aggiungerlo come provider personalizzato indicando la base URL dell’endpoint compatibile con l’API OpenAI. Per Ollama è http://localhost:11434/v1. Puoi anche mischiare: modello locale per il lavoro ripetitivo e provider a pagamento solo per i compiti difficili.

Funziona con l’abbonamento di Codex o Claude?

Per Codex è previsto il login OAuth, quindi entri con l’account. Anthropic nel catalogo ufficiale richiede una chiave API. In alternativa DSH può delegare i compiti al binario di Claude Code già installato sulla tua macchina, che usa la tua autenticazione ufficiale.

Si può usare in produzione?

No, non ancora. È una developer preview dichiarata e il README avvisa esplicitamente che ci saranno modifiche che rompono la compatibilità. Va bene per test ed esperimenti, non per costruirci sopra qualcosa che deve reggere nel tempo.

Che differenza c’è con OpenCode?

Stessa filosofia model-agnostic e stessa licenza MIT, ma OpenCode è un agente pronto all’uso e molto più maturo, con interfaccia da terminale. In DSH il nucleo stesso è composto da plugin, quindi puoi sostituire anche il ciclo dell’agente. Oggi OpenCode è la scelta pratica, DSH la scommessa architetturale.

Funziona su Windows?

La Web UI parte ovunque ci sia Node.js. La composizione del SDK Python con PTY persistente no: richiede un terminale POSIX, quindi Linux x64, Linux arm64 o macOS 14 e superiori su arm64. Su Windows serve WSL o un container.

Per la stesura dell’articolo sono state consultate la documentazione ufficiale, il repository e la pagina prodotto di DeepSeek Harness.

Se vuoi i risultati del test appena lo provo sul serio, iscriviti alla newsletter settimanale su francescogruner.it. Se invece lo installi prima di me e qualcosa non parte, scrivimi nella community Facebook: lo guardiamo insieme.

Nuovo su Google

Aggiungi francescogruner.it come fonte preferita

Se leggi spesso i miei articoli su AI, automazione e tecnologia, ora puoi dire a Google che vuoi vedere più spesso i contenuti di francescogruner.it tra le notizie.

Francesco Gruner
Francesco Gruner

Sono un consulente IT, divulgatore e imprenditore tech. Mi occupo di automazione, AI e gestione di sistemi e infrastrutture IT, cercando soluzioni semplici a problemi complessi. Qui condivido strumenti, esperimenti e idee utili.