Un Agente AI Autonomo Direttamente sul Tuo Telefono — Analisi di OpenDroid
Gli assistenti mobili tradizionali come Google Assistant o Siri hanno raggiunto un limite da tempo. Sono decenti nell'impostare timer e aprire app, ma prova a chiedere al tuo telefono di eseguire una catena di azioni correlate: controllare le previsioni del tempo, inviare un messaggio a tua moglie su WhatsApp e impostare una sveglia. Di solito ottieni o un suggerimento per cercare sul web o un errore di riconoscimento.
Lo sviluppatore Yashab Alam ha deciso di affrontare il problema in modo diverso e ha rilasciato il progetto OpenDroid su GitHub. È un agente AI autonomo completamente open-source per Android che trasforma il tuo smartphone in un ambiente di esecuzione LLM.

Perché Serve Un Altro Assistente
L'idea principale dietro OpenDroid è dare alla rete neurale il controllo diretto del dispositivo attraverso i servizi Android standard. Invece di semplici template, il sistema utilizza un ciclo completo di pianificazione ed esecuzione.
Quando dai un comando complesso, l'agente lo scompone in sottotask, verifica i risultati di ogni passaggio e ricostruisce il piano se qualcosa va storto. Il codice sorgente del progetto è completamente aperto e puoi scegliere quale modello utilizzare — basato su cloud o completamente locale.
Il progetto ha già raccolto oltre 600 stelle su GitHub e sta attirando l'attenzione con la sua solida architettura basata su Kotlin.
Come Funziona l'Agente Sotto il Cofano
L'architettura di OpenDroid segue i principi della Clean Architecture con dependency injection attraverso Dagger-Hilt. Testo e logica sono separati in moduli chiari, e l'interfaccia è scritta in Jetpack Compose.
com.opendroid.ai
│
├── accessibility/ Автоматизация сторонних приложений
├── actions/ 60+ исполнителей действий в 10 модулях
├── core/
│ ├── agent/ AgentLoop, PlanManager, IntentClassifier
│ ├── llm/ Провайдеры LLM, цепочки фоллбеков, промпты
│ ├── memory/ 4-уровневая система памяти
│ └── voice/ Детекция активационного слова, STT, TTS
├── data/ База данных Room и хранилище DataStore
└── ui/ 16 экранов на Jetpack Compose
All'interno lavorano diversi motori specializzati, ciascuno responsabile della propria area di lavoro.
Pianificatore di Azioni e Gestione Errori
Il modulo PlanManager gestisce i comandi in entrata. Accetta testo o voce, lo invia all'AI e riceve come output un piano sequenziale.
Se il comando conteneva più intent, ad esempio "apri WhatsApp e scrivi un messaggio", il motore lo scompone correttamente in passaggi considerando le dipendenze. Se la connessione internet cade o un'app si blocca durante l'esecuzione, AgentLoop intercetta l'errore e tenta di eseguire un'azione alternativa.
Comprensione dello Schermo tramite Accessibility API
Uno dei componenti più interessanti è il Vision Engine. Per analizzare ciò che sta accadendo sullo schermo, OpenDroid acquisisce screenshot attraverso i servizi di accessibilità (Accessibility API) e li invia a una rete neurale multimodale.
Su dispositivi più datati o quando si lavora con modelli locali leggeri, l'assistente passa al parsing dell'albero Accessibility, estraendo la struttura testuale degli elementi UI senza elaborazione delle immagini.

Quattro Livelli di Memoria
Il contesto umano raramente si adatta a una singola conversazione. OpenDroid utilizza un sistema di archiviazione delle informazioni a quattro livelli:
- La working memory gestisce il contesto corrente del task in esecuzione.
- Episodic memorizza la cronologia delle esecuzioni passate e i loro risultati.
- Semantic ricorda fatti sull'utente e le sue preferenze.
- Procedural contiene le macro dell'utente e gli scenari pronti all'uso.
Tutte le informazioni locali vengono scritte in un database Room con sette tabelle e i segreti come le chiavi API sono archiviati in Android Keystore con crittografia AES-GCM.
Supporto per 12 Provider AI
OpenDroid non vincola gli sviluppatori a un servizio specifico. L'app supporta 12 provider di reti neurali con catene di fallback configurabili. Se il modello principale non risponde, la richiesta passa automaticamente al provider successivo.
L'elenco include Google Gemini, Anthropic Claude, OpenAI, Groq, DeepSeek, Mistral, OpenRouter, Cohere, Together AI e GitHub Copilot.
Per gli appassionati di privacy, ci sono due opzioni di funzionamento locale:
- Connessione a un server Ollama locale sulla tua rete domestica.
- Gestore LiteRT-LM integrato che può scaricare ed eseguire modelli direttamente sul tuo smartphone in modalità offline.
Cosa Sa Fare l'Assistene nella Pratica
Il repository include oltre 60 azioni pronte all'uso. Coprono quasi tutti gli scenari di utilizzo quotidiano dello smartphone:
- Impostazioni di sistema: attivazione/disattivazione di Wi-Fi, Bluetooth, torcia, modalità Non disturbare, regolazione della luminosità e del volume.
- Comunicazione: chiamate, invio di SMS, messaggi WhatsApp, creazione di bozze di email.
- Navigazione e trasporti: pianificazione di percorsi in Google Maps, chiamata di un taxi.
- Finanza: trasferimenti rapidi, divisione delle spese.
- Media: controllo della riproduzione musicale, ricerca su YouTube, scatto di foto con la fotocamera.
Come Compilare ed Eseguire il Progetto
Per compilare il progetto è necessario Android SDK 35 (Android 15) e JDK 21. La versione JDK è strettamente fissa nella configurazione Gradle.
La compilazione è standard:
git clone https://github.com/yashab-cyber/opendroid.git
cd opendroid
./gradlew assembleDebug
Il file APK pronto sarà nella directory app/build/outputs/apk/debug/app-debug.apk.
Al primo avvio, l'app ti chiederà di concedere diversi permessi di sistema. Questi includono il permesso per il servizio di Accessibility, l'accesso alle notifiche e la registrazione audio per tracciare la frase di attivazione.
Dopo di che, devi solo andare nelle impostazioni e inserire la chiave API per il provider scelto o specificare l'indirizzo del server Ollama.
Vale la Pena Studiare il Codice di OpenDroid
Il progetto sarà utile per gli sviluppatori Android che vogliono capire come creare agenti AI autonomi. Qui puoi vedere un'implementazione reale di cicli di pianificazione complessi e parsing dell'interfaccia direttamente su un dispositivo mobile.
Gli svantaggi includono l'elevato livello di permessi richiesti per il funzionamento, che è abbastanza naturale per questa classe di utility. Inoltre, le funzionalità complete di visione dello schermo richiedono modelli di punta o hardware smartphone potenti.
OpenDroid dimostra dove sta andando l'automazione mobile e fornisce una base architetturale pronta per i tuoi esperimenti.
Progetti correlati