Vai al contenuto
Nicola Sabaini

Articoli

OpenClaw non è un agente di coding

L'ho installato aspettandomi un concorrente di Claude Code. È un'altra cosa, e capito cos'è diventa utile: il modello locale raggiungibile da Telegram.

4 min di lettura

Avevo un server llama.cpp già tarato in casa, con dentro un MoE da 35 miliardi che gira a trenta token al secondo su otto giga di VRAM. Volevo vedere cosa ci si può appoggiare sopra, e ho installato OpenClaw aspettandomi un secondo agente di coding da mettere in gara con Claude Code.

Sbagliato inquadramento. OpenClaw non è un agente di coding: è un gateway multicanale. La differenza non è terminologia, cambia cosa te ne fai.

Claude Code OpenClaw
dove lavora nella cartella da cui lo lanci nel proprio workspace dichiarato
a cosa serve modificare codice e file raggiungere il modello da altri canali
secondi per turno ~77 ~148
dal telefono no sì, Telegram, WhatsApp, Signal, Discord, Matrix, SMS

Messo così non è un concorrente. È il modo di parlare al modello di casa mentre sei fuori casa, con sessione e memoria che restano.

Puntarlo sul server che hai già

La tentazione è lasciargli gestire un suo motore. Non ha senso: il server è già lì, già misurato, già col numero di thread giusto per l’architettura. Si configura come endpoint esterno, in ~/.openclaw/openclaw.json:

{
  "models": { "providers": { "llama-cpp": {
    "baseUrl": "http://127.0.0.1:8080/v1",
    "api": "openai-completions",
    "request": { "allowPrivateNetwork": true },
    "models": [ { "id": "qwen-local", "name": "Qwen3.6 35B-A3B locale",
                  "contextWindow": 65536 } ]
  } } }
}

allowPrivateNetwork non è opzionale: senza, la richiesta verso 127.0.0.1 non parte proprio.

openclaw models list
openclaw infer model run --model llama-cpp/qwen-local --prompt "..."

Inferenza secca: 23 secondi. Turno di agente: 148. La differenza non è il modello, è OpenClaw che carica i plugin e risolve il modello a ogni turno.

La trappola del workspace

Questa mi ha fatto perdere il tempo peggiore, quello speso a cercare un guasto che non c’era.

Lanci l’agente dalla tua cartella, gli chiedi dei tuoi file, e risponde che non ci sono. Sembra rotto. Non lo è: l’agente di OpenClaw non lavora nella directory corrente, lavora nel workspace dichiarato nella sua configurazione, che di default è ~/.openclaw/workspace. Stava guardando davvero, solo altrove.

Si dichiara alla creazione:

openclaw agents add codice --workspace D:\prove --model llama-cpp/qwen-local --non-interactive

oppure si assegna a quello predefinito, che poi è quello che usa l’interfaccia a terminale:

openclaw config patch --stdin
{ agents: { list: [ { id: "main", workspace: "D:\prove",
                      model: "llama-cpp/qwen-local" } ] } }

Con un avvertimento che conta: OpenClaw semina i propri file nel workspace. AGENTS.md, SOUL.md, IDENTITY.md, USER.md, TOOLS.md, HEARTBEAT.md, BOOTSTRAP.md, openclaw-workspace-state.json, e ci inizializza pure un repository git. In una cartella di prova è tutto lecito. Puntarlo su un progetto vero è un’altra faccenda, e lì la risposta è una cartella dedicata.

Il pannello web, e due errori che sembrano guasti

C’è una Control UI servita da un Gateway, che va acceso a parte. Serve solo al pannello: la chat da terminale e gli agenti vanno anche senza.

Il Gateway non parte senza gateway.mode. Il messaggio è esplicito — “Gateway start blocked: existing config is missing gateway.mode” — ma è facile leggerlo come un errore di installazione invece che come un campo mancante. Impostato su local, parte.

Il token sta nel frammento dopo #. Se apri il pannello e poi correggi l’indirizzo a mano, magari solo per cambiare porta, il frammento sparisce e la pagina ti chiede di autenticarti. Sembra che il token sia scaduto. Non è scaduto: l’hai buttato via tu, tagliando l’URL. Va aperto sempre intero.

Perché resta a una versione vecchia

La 2026.7.1-2 vuole Node >=22.22.3 <23, >=24.15.0 <25, oppure >=25.9.0. Qui c’è la 24.14.1 — fuori di un patch level dalla seconda finestra. E winget non offre niente che vada bene: un 22 sarebbe un downgrade, il 26 è due major avanti.

Quindi resta alla 2026.6.34. Provato ad aggiornare, diventa inavviabile, tornato indietro con un npm install -g openclaw@2026.6.34 che ha rimesso tutto a posto senza perdere la configurazione.

Non è una critica a OpenClaw: un range di versioni stretto è una scelta legittima. È un promemoria che un agente installato globalmente eredita i vincoli del runtime su cui sta, e che quei vincoli decidono quando puoi aggiornare — non tu.

Cosa ci faccio

Claude Code resta lo strumento per lavorare sui file, perché lavora dove sono i file e ci mette la metà del tempo.

OpenClaw fa una cosa che Claude Code non fa: mette lo stesso modello locale in fondo a una chat Telegram. Il computer di casa risponde, la GPU è quella, e il modello non è mai uscito dalla stanza.

Tutti gli articoli