Een messenger met AI-agents op je telefoon: octo-android voorbeeld
In de meeste zakelijke chats kunnen bots alleen waarschuwingen van monitorsystemen verzenden of goedkeuringen voor vakantieaanvragen aanvragen. Ontwikkelaars van Mininglamp-OSS besloten verder te gaan en creëerden het OCTO-platform. Het concept is eenvoudig: digitale twins handelen routinematige taken en initiële redeneringen af, terwijl mensen de resultaten evalueren en beslissingen nemen.
Repository octo-android is de officiële mobiele client voor dit platform. In tegenstelling tot de meeste moderne zakelijke messengers, hebben de auteurs geen web-app in WebView verpakt. We krijgen native software aangeboden die is gebouwd met Kotlin en Java.
Wat de architectuur en implementatie interessant maakt
De mobiele client is gebaseerd op het TangSengDaoDaoAndroid-project en de WuKongIM-netwerkmotor. De app communiceert met de backend via REST API en onderhoudt een persistente WebSocket-verbinding.
Hier is waar de client-side uit bestaat:
- Module
wukong-sdkverzorgt real-time berichtentransport. - Lokale opslag is georganiseerd met Room DB. Chatgeschiedenis en niet-gecachte concepten worden direct op het apparaat opgeslagen.
- Autorisatietokens worden opgeslagen in veilige EncryptedSharedPreferences.
- Achtergrondmeldingen arriveren via de standaard service en Firebase Cloud Messaging.
De interface is gebouwd volgens de Material 3-richtlijnen. Sommige schermen zijn geschreven in Jetpack Compose, terwijl andere klassieke XML-layouts gebruiken. Een apart pakket agent bevat componenten voor het werken met AI: tracking van generatiestatus, preview van tool-aanroepen en visualisatie van antwoorden in streaming-modus.
Hoe het is om te bouwen en aan te passen
Ontwikkelaars verklaren een local-first principe. Alle data behoort toe aan de gebruiker, en de backend octo-server in Go kan eenvoudig op je eigen server worden geïmplementeerd.
Als je de app vanuit broncode wilt bouwen voor de behoeften van je bedrijf, moet je een verplichte checklist doorlopen. Het project wordt uitgebracht zonder ingebedde geheimen of externe sleutels:
- Wijzig de standaard
applicationIdvancom.example.octonaar het domein van je organisatie. - Maak een project in Firebase en voeg je eigen
google-services.jsontoe aan de modulemap. - Genereer een keystore voor het ondertekenen van de release-build en configureer deze in Gradle.
- Geef het adres van je instantie
octo-serverop in hetconfig.xmlbestand.
Zonder de eerste drie stappen te voltooien, weigert Gradle het eindbestand te bouwen. Maar er zijn in ieder geval geen externe backdoors of testcertificaten in de code.
git clone https://github.com/Mininglamp-OSS/octo-android.git
cd octo-android
# Сборка отладочной версии через CLI
./gradlew :app:assembleDebug
# Установка на подключенное устройство
./gradlew :app:installDebug
Voor een snelle introductie hoef je het project niet handmatig te bouwen. De auteurs publiceren kant-en-klare APK's in het Releases-gedeelte. Installeer gewoon de app op je smartphone en voer het serveradres in tijdens het inloggen.
Ecosysteem en uniform protocol
De repository octo-android opent zelf maar een deel van het totale systeem. Serverlogica bevindt zich in octo-server, de taakmanager is gescheiden in octo-matter, en automatische dialoogsamenvatting wordt afgehandeld door service octo-smart-summary.
Alle clients — mobiele apps en de desktopversie in React — werken op hetzelfde protocol en gebruiken gemeenschappelijke localisatiesleutels. Dit vereenvoudigt onderhoud: AI-agentlogica of weergave van typestatus vereist geen afzonderlijke aanpassingen voor elk platform.
Voor wie is dit project nuttig
De repository is nuttig voor teams die op zoek zijn naar een open messenger met self-hosting-mogelijkheden en native LLM-agentondersteuning. De broncode octo-android is ook nuttig voor Android-ontwikkelaars. Hier kun je de implementatie bekijken van de transportlaag gebaseerd op WuKongIM, offline caching-organisatie in Room, en een handige interface voor het streamen van neurale netwerkantwoorden.
Gerelateerde projecten