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.