Uruchamianie komunikatora z agentami AI na telefonie: przykład octo-android
W większości firmowych czatów boty mogą jedynie wysyłać alerty z systemów monitoringu lub prośby o zatwierdzenie urlopu. Programiści z Mininglamp-OSS postanowili pójść dalej i stworzyli platformę OCTO. Koncepcja jest prosta: cyfrowe bliźniaki zajmują się rutynowymi zadaniami i wstępnym rozumowaniem, podczas gdy ludzie oceniają wyniki i podejmują decyzje.
Repozytorium octo-android to oficjalny klient mobilny tej platformy. W przeciwieństwie do większości nowoczesnych komunikatorów firmowych, autorzy nie opakowali aplikacji webowej w WebView. Otrzymujemy natywne oprogramowanie zbudowane w Kotlinie i Javie.
Co sprawia, że architektura i implementacja są interesujące
Klient mobilny bazuje na projekcie TangSengDaoDaoAndroid i silniku sieciowym WuKongIM. Aplikacja komunikuje się z backendem przez REST API i utrzymuje trwałe połączenie WebSocket.
Oto, z czego składa się strona klienta:
- Moduł
wukong-sdkodpowiada za transport wiadomości w czasie rzeczywistym. - Magazynowanie lokalne jest zorganizowane przy użyciu Room DB. Historia czatów i niezapisane szkice są zapisywane bezpośrednio na urządzeniu.
- Tokeny autoryzacji są przechowywane w bezpiecznych EncryptedSharedPreferences.
- Powiadomienia w tle docierają przez standardowy serwis i Firebase Cloud Messaging.
Interfejs jest zbudowany zgodnie z wytycznymi Material 3. Niektóre ekrany są napisane w Jetpack Compose, inne używają klasycznych układów XML. Oddzielny pakiet agent zawiera komponenty do pracy z AI: śledzenie statusu generowania, podgląd wywołań narzędzi i wizualizację odpowiedzi w trybie strumieniowym.
Jak wygląda budowanie i dostosowywanie
Deweloperzy deklarują zasadę local-first. Wszystkie dane należą do użytkownika, a backend octo-server w Go można łatwo wdrożyć na własnym serwerze.
Jeśli chcesz zbudować aplikację z kodu źródłowego na potrzeby swojej firmy, musisz przejść obowiązkową listę kontrolną. Projekt jest wydany bez osadzonych sekretów ani kluczy stron trzecich:
- Zmień domyślny
applicationIdzcom.example.octona domenę swojej organizacji. - Utwórz projekt w Firebase i dodaj własny
google-services.jsondo folderu modułu. - Wygeneruj magazyn kluczy (keystore) do podpisywania wersji release i skonfiguruj go w Gradle.
- Określ adres instancji
octo-serverw plikuconfig.xml.
Bez ukończenia pierwszych trzech kroków Gradle odmówi zbudowania pliku końcowego. Ale przynajmniej na pewno nie ma w kodzie żadnych backdoorów ani certyfikatów testowych stron trzecich.
Aby szybko zapoznać się z projektem, nie musisz budować go ręcznie. Autorzy publikują gotowe pliki APK w sekcji Releases. Po prostu zainstaluj aplikację na smartfonie i wprowadź adres serwera podczas logowania.
Ekosystem i ujednolicony protokół
Samo repozytorium octo-android otwiera tylko część całego systemu. Logika serwera znajduje się w octo-server, menedżer zadań jest wydzielony do octo-matter, a automatyczne podsumowywanie dialogów obsługuje serwis octo-smart-summary.
Wszystkie klienty — aplikacje mobilne i wersja desktopowa w React — działają na tym samym protokole i używają wspólnych kluczy lokalizacji. Upraszcza to utrzymanie: logika agenta AI czy wyświetlanie statusu pisania nie wymagają osobnych przeróbek dla każdej platformy.
Kto znajdzie ten projekt przydatny
Repozytorium będzie przydatne dla zespołów poszukujących otwartego komunikatora z możliwością samodzielnego hostowania i natywną obsługą agentów LLM. Kod źródłowy octo-android będzie również pomocny dla programistów Android. Tutaj można przejrzeć implementację warstwy transportowej opartej na WuKongIM, organizację cache'owania offline w Room oraz wygodny interfejs do strumieniowania odpowiedzi sieci neuronowych.
Powiązane projekty