Perché ho creato AIdaemon: un agente AI self-hosted che controlli dal tuo telefono
Usavo agenti AI per la programmazione da un po' di tempo. Claude Code, Codex, Cursor, Windsurf, Open Code. Hanno cambiato il modo in cui scrivo software. Ma era tutto lì. L'AI rimaneva confinata all'interno dell'editor.
Poi è arrivato OpenClaw. Un agente AI open-source che poteva effettivamente controllare le tue applicazioni, inviare messaggi, gestire la tua casella di posta. Non solo programmazione, ma tutto ciò che si trova sul tuo computer. Questo mi ha fatto riflettere su cos'altro potessero fare gli agenti AI.
Ma io volevo qualcosa di diverso. Non avevo bisogno di un agente che controllasse Spotify o gestisse le mie luci intelligenti. Avevo bisogno di uno che vivesse sul mio server, eseguisse comandi da terminale, distribuisse codice e ricordasse su cosa stavo lavorando la settimana scorsa. Qualcosa a cui potessi inviare messaggi dal mio telefono mentre ero lontano dalla scrivania e che potesse svolgere vero lavoro di sviluppo sulla mia macchina.
Ecco perché ho costruito AIdaemon.
Cos'è AIdaemon?
AIdaemon è un agente AI self-hosted che viene eseguito come daemon in background sulla tua macchina. Puoi comunicare con esso tramite Telegram, Slack o Discord, ed esso può eseguire comandi da terminale, navigare sul web, gestire file, eseguire attività pianificate e ricordare le cose tra una sessione e l'altra. È un singolo binario Rust. Nessun Docker richiesto, nessuna dipendenza da Node.js. Basta copiarlo su qualsiasi macchina e funziona.
Pensalo come avere un assistente capace in esecuzione permanente sul tuo server o laptop a cui puoi inviare messaggi da qualsiasi luogo.
Perché non usare semplicemente OpenClaw?
In realtà ho iniziato con OpenClaw. L'idea era brillante, ma quando ho iniziato ad approfondire, continuavo a imbattermi in cose che non erano ancora presenti. Volevo approvare i comandi direttamente dal mio telefono prima che venissero eseguiti. Volevo vedere i passaggi che l'AI stava compiendo in tempo reale, non solo il risultato finale. Cose basilari per uno strumento che esegue comandi sulla tua macchina.
Poi ho riscontrato un bug per cui OpenClaw non funzionava con Gemini. L'ho corretto e ho aperto una pull request, ma la coda delle PR era enorme. Sapevo che ci sarebbero voluti giorni, forse di più, prima che la mia correzione arrivasse nel ramo principale. È stato allora che ho capito. Se devo continuare a correggere il progetto di qualcun altro per ottenere ciò di cui ho bisogno, forse dovrei semplicemente costruirne uno mio e usarlo come esperienza di apprendimento per capire come devono essere architettati gli agenti AI personali, i loro casi limite, i limiti e tutto il resto.
Inoltre, OpenClaw era notevolmente lento su uno dei miei Mac. Per qualcosa che dovrebbe essere eseguito come daemon in background, le prestazioni contano. Questo mi ha spinto a volere qualcosa di più leggero.
Ma la lacuna più grande era la memoria. OpenClaw non ce l'aveva ancora. Ogni conversazione ricominciava da zero. Nessun contesto dal giorno prima, nessun ricordo dei progetti su cui lavori, nessun apprendimento dagli errori passati. Non potevo accettarlo.
Quindi la domanda è passata da "come faccio a far funzionare OpenClaw per me" a "come sarebbe il mio daemon AI ideale?". Continuavo a frustrarmi. Ero lontano dal computer e avevo bisogno di controllare qualcosa, riavviare un servizio o eseguire un comando veloce. SSH dal telefono funziona all'occorrenza, ma è faticoso per qualsiasi cosa oltre a ls.
E se potessi semplicemente inviare un messaggio Telegram come "controlla se il servizio nginx è in esecuzione" e ricevere una risposta? O "distribuisci le ultime modifiche allo staging"? Questa era l'idea centrale ispirata da OpenClaw.
La memoria è stata la prima cosa che ho progettato
Fin dal primo giorno, sapevo che AIdaemon doveva ricordare le cose. Non solo la cronologia delle chat, ma la conoscenza effettiva. Quali progetti gestisco. Quali strumenti preferisco. Quali errori ho riscontrato in precedenza e come li ho risolti.
Ogni sei ore, un processo in background esamina le conversazioni recenti ed estrae fatti duraturi. Cose come "David usa Cloudflare per il deployment" o "il server di staging è in esecuzione sulla porta 3002". I fatti vecchi vengono sostituiti quando arrivano nuove informazioni, in modo che la conoscenza rimanga aggiornata.
Impara anche dagli errori. Quando AIdaemon riscontra un errore e poi lo risolve con successo, memorizza il modello e la soluzione. La prossima volta che si presenta un errore simile, sa già cosa fare.
Vengono appresi anche i flussi di lavoro. Se compilo, testo e distribuisco un'applicazione Rust nello stesso modo più volte, AIdaemon nota il modello. Dopo un numero sufficiente di esecuzioni riuscite, la procedura viene automaticamente promossa a competenza riutilizzabile. Nessuna configurazione manuale necessaria.
Tutto ciò è supportato da embedding vettoriali per il richiamo semantico, ponderati in base alla freschezza e all'utilità. I fatti che non sono stati richiamati negli ultimi 30 giorni decadono gradualmente. La memoria rimane pertinente senza pulizia manuale.
Anche la memoria è attenta alla privacy. I fatti sono contrassegnati con livelli di visibilità, quindi le informazioni condivise in un DM privato non trapelano mai in un canale di squadra.
Come funziona
L'architettura è semplice. AIdaemon si avvia come servizio di sistema (launchd su macOS, systemd su Linux) e si connette ai tuoi canali di messaggistica. Quando arriva un messaggio, passa attraverso un ciclo dell'agente.
- Classificazione dell'intento - Un modello veloce capisce cosa vuoi. Una risposta rapida, un'attività da eseguire, un'automazione da configurare.
- Selezione degli strumenti - L'agente sceglie tra oltre 40 strumenti integrati in base alla tua richiesta
- Esecuzione con sicurezza - I comandi passano attraverso flussi di valutazione del rischio e di approvazione prima di essere eseguiti
- Aggiornamento della memoria - Il contesto importante viene memorizzato per le conversazioni future
Gli strumenti
AIdaemon viene fornito con oltre 40 strumenti pronti all'uso.
- Terminale - Esegue comandi shell con sicurezza basata su allowlist e approvazione inline (Consenti una volta / Sempre / Nega)
- Operazioni sui file - Legge, scrive, modifica e cerca file
- Git - Esegue commit, crea branch, controlla lo stato
- Navigazione web - Chrome headless per pagine che richiedono il rendering JavaScript
- Richieste HTTP - Controllo completo delle intestazioni, profili di autenticazione, supporto OAuth
- Integrazione MCP - Connette server MCP esterni per estendere le capacità
- Agenti CLI - Delega il lavoro a Claude Code, Gemini CLI, Codex o Aider
- Pianificazione - Automazione delle attività in stile Cron con analisi del tempo in linguaggio naturale
- Gestione della memoria - Interroga, aggiorna e condivide la conoscenza tra i canali
Puoi anche aggiungere canali in fase di esecuzione. Devi connettere un bot Discord insieme al tuo bot Telegram esistente? Basta usare il comando /connect. Nessun riavvio necessario.
Instradamento intelligente dei modelli
Non ogni messaggio richiede il modello più costoso. AIdaemon classifica le richieste in tre livelli.
- Veloce - Domande semplici, ricerche rapide (modello più economico)
- Primario - Attività standard, la maggior parte delle interazioni (modello predefinito)
- Intelligente - Ragionamento complesso, attività multi-passo (modello più capace)
Supporta più provider di LLM out of the box. API compatibili con OpenAI (incluso OpenRouter), Google Gemini, Anthropic Claude, Ollama e qualsiasi modello locale tu voglia eseguire. Puoi cambiare i provider in fase di esecuzione senza ricompilare.
La sicurezza prima di tutto
Dare a un agente AI l'accesso al terminale è qualcosa che vuoi fare bene. AIdaemon adotta un approccio cauto.
- Esecuzione basata su allowlist - Solo i prefissi di comando pre-approvati vengono eseguiti senza chiedere
- Flusso di approvazione inline - Per tutto ciò che non è nell'allowlist, ricevi un prompt Consenti una volta / Consenti sempre / Nega direttamente nella tua chat
- Valutazione del rischio - I comandi vengono valutati in base al potenziale distruttivo, alla sensibilità del percorso e alla complessità
- Protezione SSRF - Gli strumenti HTTP bloccano le richieste a IP interni
- Stato crittografato - Crittografia del database con SQLCipher, segreti memorizzati nel keychain del tuo sistema operativo
- Rilevamento di stallo - L'agente si interrompe se ripete la stessa chiamata di strumento tre volte o rimane bloccato in schemi alternati
Per iniziare
Il modo più veloce per provarlo.
# Installa tramite Homebrew
brew tap davo20019/tap
brew install aidaemon
# Oppure installa da crates.io
cargo install aidaemon
# Oppure scarica il binario direttamente
curl -sSfL https://get.aidaemon.ai | bash
Quindi crea un file config.toml con il tuo provider LLM e il token del bot Telegram, e avvia il daemon.
# Installa come servizio di sistema
aidaemon install-service
# Oppure esegui in primo piano
aidaemon
Questo è tutto. Invia un messaggio al tuo bot Telegram e starai parlando con la tua macchina. Consulta la documentazione completa per le opzioni di configurazione e le funzionalità avanzate.
Perché Rust?
Non avevo mai scritto una riga di Rust prima di questo progetto. Dopo aver sperimentato la lentezza di OpenClaw sul mio Mac, volevo qualcosa di veloce. Volevo anche vedere se potevo costruire un sistema di livello produttivo in una lingua sconosciuta facendo affidamento sugli strumenti di codifica AI per il lavoro di routine. Claude Code, Codex e Antigravity si sono occupati del boilerplate e delle lotte con il borrow checker. Io mi sono concentrato sull'architettura e sulla progettazione.
Il risultato è un singolo binario che posso copiare su un Raspberry Pi o un VPS da $5/mese e farlo semplicemente funzionare. Niente Docker, niente Node.js, niente dipendenze di runtime. Per un daemon che deve essere eseguito 24 ore su 24, 7 giorni su 7, la sicurezza in fase di compilazione di Rust e il basso consumo di memoria si sono rivelati la scelta giusta.
Cosa succederà
AIdaemon è alla versione 0.9.2 e sto ancora aggiungendo funzionalità. Le aggiunte recenti includono un sistema di consulenza a due fasi per una classificazione degli intenti più intelligente, l'applicazione forzata dello schema JSON strutturato per gli output degli LLM e il monitoraggio degli obiettivi con budget di token.
Il progetto è open source su GitHub e pubblicato su crates.io. Se sei interessato ad avere un agente AI personale che controlli completamente, provalo e fammi sapere cosa ne pensi.