Eseguire un messenger con agenti AI sul telefono: esempio octo-android
Nella maggior parte delle chat aziendali, i bot possono solo inviare avvisi dai sistemi di monitoraggio o richiedere approvazioni per le richieste di ferie. Gli sviluppatori di Mininglamp-OSS hanno deciso di andare oltre e hanno creato la piattaforma OCTO. Il concetto è semplice: i gemelli digitali gestiscono le attività di routine e il ragionamento iniziale, mentre gli esseri umani valutano i risultati e prendono le decisioni.
Il repository octo-android è il client mobile ufficiale per questa piattaforma. A differenza della maggior parte dei messenger aziendali moderni, gli autori non hanno avvolto un'app web in WebView. Ci viene offerto un software nativo costruito con Kotlin e Java.
Cosa rende l'architettura e l'implementazione interessanti
Il client mobile è basato sul progetto TangSengDaoDaoAndroid e sul motore di rete WuKongIM. L'app comunica con il backend tramite REST API e mantiene una connessione WebSocket persistente.
Ecco di cosa è composto il lato client:
- Il modulo
wukong-sdkgestisce il trasporto dei messaggi in tempo reale. - Lo storage locale è organizzato utilizzando Room DB. La cronologia delle chat e le bozze non memorizzate nella cache vengono salvate direttamente sul dispositivo.
- I token di autorizzazione sono archiviati in sicuri EncryptedSharedPreferences.
- Le notifiche in background arrivano attraverso il servizio standard e Firebase Cloud Messaging.
L'interfaccia è costruita seguendo le linee guida di Material 3. Alcune schermate sono scritte in Jetpack Compose, mentre altre utilizzano layout XML classici. Un pacchetto separato agent contiene componenti per lavorare con l'AI: tracciamento dello stato di generazione, anteprima delle chiamate di strumenti e visualizzazione delle risposte in modalità streaming.
Come è costruire e personalizzare
Gli sviluppatori dichiarano un principio local-first. Tutti i dati appartengono all'utente e il backend octo-server in Go può essere facilmente distribuito sul proprio server.
Se vuoi compilare l'app dal codice sorgente per le esigenze della tua azienda, dovrai completare una checklist obbligatoria. Il progetto è rilasciato senza segreti incorporati o chiavi di terze parti:
- Cambia il
applicationIdpredefinito dacom.example.octoal dominio della tua organizzazione. - Crea un progetto in Firebase e aggiungi il tuo
google-services.jsonalla cartella del modulo. - Genera un keystore per firmare la build di release e configuralo in Gradle.
- Specifica l'indirizzo
octo-serverdella tua istanza nel fileconfig.xml.
Senza completare i primi tre passaggi, Gradle rifiuterà di compilare il file finale. Ma almeno non ci sono sicuramente backdoor di terze parti o certificati di test nel codice.
git clone https://github.com/Mininglamp-OSS/octo-android.git
cd octo-android
# Сборка отладочной версии через CLI
./gradlew :app:assembleDebug
# Установка на подключенное устройство
./gradlew :app:installDebug
Per una rapida introduzione, non devi compilare il progetto manualmente. Gli autori pubblicano APK pronti nella sezione Releases. Basta installare l'app sul tuo smartphone e inserire l'indirizzo del server durante il login.
Ecosistema e protocollo unificato
Il repository octo-android stesso apre solo una parte dell'intero sistema. La logica del server è contenuta in octo-server, il gestore dei task è separato in octo-matter e il riepilogo automatico delle finestre di dialogo è gestito dal servizio octo-smart-summary.
Tutti i client — app mobile e la versione desktop in React — funzionano sullo stesso protocollo e utilizzano chiavi di localizzazione comuni. Questo semplifica la manutenzione: la logica degli agenti AI o la visualizzazione dello stato di digitazione non richiedono un lavoro separato per ogni piattaforma.
A chi sarà utile questo progetto
Il repository sarà utile per i team che cercano un messenger aperto con capacità di self-hosting e supporto nativo per agenti LLM. Il codice sorgente octo-android sarà utile anche per gli sviluppatori Android. Qui puoi esaminare l'implementazione del layer di trasporto basato su WuKongIM, l'organizzazione della cache offline in Room e un'interfaccia comoda per le risposte in streaming delle reti neurali.
Progetti correlati