Creare un assistente personale con OpenClaw
OpenClaw è un Gateway self-hosted che collega Discord, Google Chat, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo e altri ad agenti AI. Questa guida copre la configurazione “assistente personale”: un numero WhatsApp dedicato che si comporta come il tuo assistente AI sempre attivo.⚠️ La sicurezza prima di tutto
Stai mettendo un agente nella posizione di poter:- eseguire comandi sulla tua macchina (a seconda della tua policy degli strumenti)
- leggere/scrivere file nel tuo workspace
- inviare messaggi all’esterno tramite WhatsApp/Telegram/Discord/Mattermost e altri canali inclusi
- Imposta sempre
channels.whatsapp.allowFrom(non eseguire mai una configurazione aperta a tutto il mondo sul tuo Mac personale). - Usa un numero WhatsApp dedicato per l’assistente.
- Gli heartbeat ora sono impostati per default ogni 30 minuti. Disattivali finché non ti fidi della configurazione impostando
agents.defaults.heartbeat.every: "0m".
Prerequisiti
- OpenClaw installato e onboarding completato — vedi Per iniziare se non l’hai ancora fatto
- Un secondo numero di telefono (SIM/eSIM/prepagato) per l’assistente
La configurazione con due telefoni (consigliata)
Ti serve questo: Se colleghi il tuo WhatsApp personale a OpenClaw, ogni messaggio che ricevi diventa “input dell’agente”. Raramente è ciò che vuoi.Avvio rapido in 5 minuti
- Abbina WhatsApp Web (mostra un QR; scansionalo con il telefono dell’assistente):
- Avvia il Gateway (lascialo in esecuzione):
- Inserisci una configurazione minima in
~/.openclaw/openclaw.json:
gateway.auth.token), ma anche l’autenticazione tramite password funziona se hai cambiato gateway.auth.mode in password. Per riaprirla in seguito: openclaw dashboard.
Assegna un workspace all’agente (AGENTS)
OpenClaw legge istruzioni operative e “memoria” dalla directory del suo workspace. Per default, OpenClaw usa~/.openclaw/workspace come workspace dell’agente e lo creerà automaticamente (insieme ai file iniziali AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md) durante la configurazione o la prima esecuzione dell’agente. BOOTSTRAP.md viene creato solo quando il workspace è completamente nuovo (non dovrebbe ricomparire dopo che lo elimini). MEMORY.md è facoltativo (non viene creato automaticamente); quando è presente, viene caricato per le sessioni normali. Le sessioni dei sottoagenti iniettano solo AGENTS.md e TOOLS.md.
Suggerimento: tratta questa cartella come la “memoria” di OpenClaw e rendila un repository git (idealmente privato) in modo che AGENTS.md e i file di memoria siano sottoposti a backup. Se git è installato, i workspace completamente nuovi vengono inizializzati automaticamente.
agents.defaults.workspace (supporta ~).
La configurazione che lo trasforma in “un assistente”
OpenClaw usa per default una buona configurazione da assistente, ma in genere vorrai regolare:- persona/istruzioni in
SOUL.md - impostazioni predefinite del ragionamento (se desiderato)
- heartbeat (una volta che ti fidi)
Sessioni e memoria
- File di sessione:
~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl - Metadati della sessione (uso dei token, ultima route, ecc.):
~/.openclaw/agents/<agentId>/sessions/sessions.json(legacy:~/.openclaw/sessions/sessions.json) /newo/resetavvia una nuova sessione per quella chat (configurabile tramiteresetTriggers). Se inviato da solo, l’agente risponde con un breve saluto per confermare il reset./compact [instructions]compatta il contesto della sessione e riporta il budget di contesto rimanente.
Heartbeat (modalità proattiva)
Per default, OpenClaw esegue un heartbeat ogni 30 minuti con il prompt:Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.
Imposta agents.defaults.heartbeat.every: "0m" per disattivarlo.
- Se
HEARTBEAT.mdesiste ma è di fatto vuoto (solo righe vuote e intestazioni markdown come# Heading), OpenClaw salta l’esecuzione dell’heartbeat per risparmiare chiamate API. - Se il file manca, l’heartbeat viene comunque eseguito e il modello decide cosa fare.
- Se l’agente risponde con
HEARTBEAT_OK(facoltativamente con un breve padding; vediagents.defaults.heartbeat.ackMaxChars), OpenClaw sopprime la consegna in uscita per quell’heartbeat. - Per default, è consentita la consegna degli heartbeat ai target in stile DM
user:<id>. Impostaagents.defaults.heartbeat.directPolicy: "block"per sopprimere la consegna verso target diretti mantenendo attive le esecuzioni degli heartbeat. - Gli heartbeat eseguono turni completi dell’agente — intervalli più brevi consumano più token.
Media in ingresso e in uscita
Gli allegati in ingresso (immagini/audio/documenti) possono essere esposti al tuo comando tramite template:{{MediaPath}}(percorso locale del file temporaneo){{MediaUrl}}(pseudo-URL){{Transcript}}(se la trascrizione audio è abilitata)
MEDIA:<path-or-url> su una riga separata (senza spazi). Esempio:
- Se
tools.fs.workspaceOnlyètrue, i percorsi localiMEDIA:in uscita rimangono limitati alla root temporanea di OpenClaw, alla cache dei media, ai percorsi del workspace dell’agente e ai file generati dalla sandbox. - Se
tools.fs.workspaceOnlyèfalse,MEDIA:in uscita può usare file locali dell’host che l’agente è già autorizzato a leggere. - Gli invii da percorsi locali dell’host consentono comunque solo media e tipi di documento sicuri (immagini, audio, video, PDF e documenti Office). I file di testo semplice e quelli che sembrano segreti non vengono trattati come media inviabili.
Checklist operativa
/tmp/openclaw/ (predefinito: openclaw-YYYY-MM-DD.log).
Passaggi successivi
- WebChat: WebChat
- Operazioni del Gateway: Runbook del Gateway
- Cron + wakeup: Cron jobs
- Companion della barra dei menu macOS: App macOS OpenClaw
- App nodo iOS: App iOS
- App nodo Android: App Android
- Stato di Windows: Windows (WSL2)
- Stato di Linux: App Linux
- Sicurezza: Sicurezza