Nota: Questo è un esperimento. Questo post è stato creato e pubblicato dall’assistente stesso su mia richiesta, e probabilmente verrà aggiornato nel tempo man mano che il setup evolve.

Da qualche giorno sto sperimentando con OpenClaw, un framework open source per creare assistenti personali self-hosted. La cosa interessante è che non si tratta di un semplice chatbot, ma di un sistema che può integrarsi con la propria infrastruttura, accedere alle API, gestire automazioni e dialogare su più canali (Telegram, Discord, Signal, ecc.).

Perché OpenClaw?

Nel panorama degli AI assistant, la maggior parte delle soluzioni sono cloud-based e closed-source. OpenClaw offre un approccio diverso:

  • Self-hosted: gira sul tuo hardware, i tuoi dati restano tuoi
  • Modulare: sistema di “skill” che permette di estendere le capacità dell’assistente
  • Multi-canale: Telegram, Discord, WhatsApp, Signal, Slack, e altri
  • Agenti specializzati: possibilità di spawnare sub-agent per task specifici

Per qualcuno che ha una forte attenzione per la privacy, questi sono punti critici.

Il setup

Ho installato OpenClaw su una macchina Linux locale. La configurazione base è relativamente semplice:

npm install -g openclaw
openclaw gateway start

Il gateway è il cuore del sistema: gestisce le sessioni, le connessioni ai provider di messaging, e coordina gli agenti.

Definire l’identità dell’assistente

La parte più interessante è stata configurare la personalità dell’assistente. Per farlo, ho usato Claude Opus 4.5 — un modello molto performante che ha analizzato le informazioni dal mio sito web personale per capire chi sono, cosa faccio, e come mi piace comunicare.

Da questa analisi è nato un file SOUL.md che definisce il carattere dell’assistente: un maggiordomo digitale competente, con un pizzico di ironia, che parla in italiano e sa quando essere discreto. L’emoji scelta è 😺 — un tocco personale.

L’approccio di OpenClaw è interessante: invece di prompt engineering ad-hoc ad ogni interazione, si definiscono file di contesto (SOUL.md, USER.md, AGENTS.md) che l’assistente legge automaticamente ad ogni sessione. Questo garantisce coerenza comportamentale senza dover ripetere istruzioni.

Integrazioni attive

Al momento ho configurato:

  • Telegram: canale principale per interagire con l’assistente
  • Git: operazioni su repository, commit, push
  • Skill system: weather, web search, wacli per WhatsApp
  • Cron: scheduling di task ricorrenti e reminder

Le skill

Il sistema delle skill è ben pensato. Ogni skill è una cartella con:

  • SKILL.md: documentazione su come usarla
  • Script/binari per operazioni specifiche
  • Riferimenti a tool esterni (es. himalaya per email)

Ho a disposizione skill per:

  • Controllare il meteo
  • Cercare sul web
  • Interagire con Reddit, Hacker News, FreshRSS
  • Gestire email via IMAP/SMTP
  • E molte altre

L’assistente in azione

L’assistente si comporta davvero come un maggiordomo digitale:

  • Risponde direttamente su Telegram quando ha qualcosa da comunicare
  • Può eseguire comandi shell, modificare file, gestire git
  • Fa ricerche web e riporta i risultati
  • Mantiene una memoria a lungo termine in file markdown
  • Sa quando tacere (nei gruppi, quando non è necessario intervenire)

Automazioni programmate

Una parte fondamentale del setup sono le automazioni ricorrenti, gestite tramite il sistema di cron di OpenClaw:

  • Ogni mattina: invio del meteo per la giornata
  • Lunedì-venerdì a metà mattina: raccolta delle notizie rilevanti per il mio lavoro dal mio feed FreshRSS
  • A pranzo: riassunto delle notizie importanti della giornata
  • Monitora i gruppi WhatsApp: se rileva più di 10 messaggi non letti in un gruppo con amici nelle ultime 4 ore, mi invia un riassunto su Telegram con i punti salienti della conversazione

Questo crea un flusso informativo automatico che mi tiene aggiornato senza dover controllare attivamente fonti multiple.

Memoria e contesto

Il sistema di memoria è uno dei punti di forza:

  • MEMORY.md: memoria a lungo termine, caricata solo nelle sessioni principali
  • memory/YYYY-MM-DD.md: log giornalieri di cosa è successo
  • AGENTS.md: convenzioni e regole per il comportamento degli agenti
  • HEARTBEAT.md: task periodiche da eseguire

Questo approccio file-based è elegante: sopravvive ai restart, è versionabile, ed è trasparente.

Modelli LLM e costi

Un aspetto fondamentale di questo setup è la scelta del modello LLM. OpenClaw supporta diversi provider, e ho deciso di usare OpenRouter che aggrega molteplici modelli con un’unica API.

Il modello attuale

Sto usando Moonshot AI Kimi K2.5 (openrouter/moonshotai/kimi-k2.5). È un modello che offre un ottimo rapporto qualità/prezzo:

  • Buone capacità di reasoning per task complessi
  • Contesto ampio per gestire conversazioni lunghe e documenti
  • Costi contenuti: circa $0.50-1.00 per milione di token (input+output), molto più economico di GPT-4 o Claude 3.5 Sonnet
  • Velocità accettabile per un assistente personale non real-time

Per il setup iniziale e la definizione della personalità ho usato invece Claude Opus 4.5, che ha analizzato il contenuto del mio sito web personale per catturare il tono e le informazioni rilevanti su chi sono e cosa faccio.

Considerazioni su privacy

Non potevo non valutare l’aspetto security:

  • I dati rimangono locali o sui miei server
  • Le API key vengono gestite con i tool nativi, non con workarround strani
  • Il sistema di “agenti” può operare in sandbox isolati
  • La comunicazione con i provider esterni (Telegram, ecc.) usa le API ufficiali

Il punto critico resta il modello LLM. Usare OpenRouter significa che i dati transitano via API, anche se senza persistenza lato provider (almeno in teoria). È un trade-off necessario tra capacità e complete privacy, che accetto consapevolmente per un assistente personale.

Prossimi passi

L’idea è integrare gradualmente:

  • Email: accesso a ProtonMail tramite ProtonMail Bridge e skill IMAP/SMTP (himalaya)
  • Calendario: integrazione con Nextcloud o soluzione similare
  • Monitoraggio: notifiche proattive su servizi e infrastruttura
  • Home-lab: automazioni per i servizi self-hosted
  • TTS: risposte vocali per interazioni hands-free

Conclusioni

OpenClaw è un progetto ambizioso che punta a portare gli assistenti AI nel mondo self-hosted e privacy-focused. Non è ancora perfetto, ma l’architettura è solida e la community attiva.

Il concetto di “assistente personale” finalmente inizia a somigliare a qualcosa di utile, non solo a un chatbot che risponde a domande. E averlo sul proprio hardware, con il proprio controllo, fa tutta la differenza.


Se vuoi saperne di più sul progetto: github.com/openclaw/openclaw