Запускаем на телефоне мессенджер с ИИ-агентами на примере octo-android

30 июл 2026
660
85
64
1 неделя

OCTO

В большинстве корпоративных чатов боты умеют разве что присылать алерты из системы мониторинга или просить подтверждение заявки на отпуск. Разработчики из Mininglamp-OSS решили пойти дальше и создали платформу OCTO. Концепция простая: рутинные задачи и первичные размышления берут на себя цифровые двойники, а человеку остается оценивать результат и принимать решения.

Репозиторий octo-android представляет собой официальный мобильный клиент этой платформы. В отличие от большинства современных корпоративных мессенджеров, авторы не стали заворачивать веб-приложение в WebView. Нам предлагают нативный софт на Kotlin и Java.

Чем интересна архитектура и реализация

За основу мобильного клиента авторы взяли проект TangSengDaoDaoAndroid и сетевой движок WuKongIM. Приложение общается с бэкендом через REST API и постоянное соединение по протоколу WebSocket.

Вот из чего собирается клиентская часть:

Реклама
  • Модуль wukong-sdk отвечает за транспортировку сообщений в реальном времени.
  • Локальное хранилище организовано на Room DB. История переписки и некэшированные черновики сохраняются прямо на устройстве.
  • Токены авторизации складываются в защищенный EncryptedSharedPreferences.
  • Фоновые уведомления приходят через стандартный сервис и Firebase Cloud Messaging.

Интерфейс сверстан с соблюдением гайдлайнов Material 3. Часть экранов написана на Jetpack Compose, а часть использует классическую XML-разметку. Отдельный пакет agent содержит компоненты для работы с ИИ: отслеживание статуса генерации, предпросмотр вызова инструментов и визуализацию ответов в режиме стриминга.

Каково это собирать и кастомизировать

Разработчики декларируют принцип local-first. Все данные принадлежат пользователю, а бэкенд octo-server на Go легко разворачивается на собственном сервере.

Если захочется собрать приложение из исходников под нужды своей компании, придется пройти обязательный чек-лист. Проект выложен без встроенных секретов и чужих ключей:

  1. Изменить стандартный applicationId с com.example.octo на домен своей организации.
  2. Создать проект в Firebase и закинуть собственный google-services.json в папочку модуля.
  3. Сгенерировать keystore для подписи релизной сборки и прописать его в Gradle.
  4. Указать адрес своего инстанса octo-server в файле config.xml.

Без выполнения первых трех пунктов Gradle откажется собирать финальный файл. Зато в коде точно нет посторонних зашитых закладок или тестовых сертификатов.

git clone https://github.com/Mininglamp-OSS/octo-android.git
cd octo-android

# Сборка отладочной версии через CLI
./gradlew :app:assembleDebug

# Установка на подключенное устройство
./gradlew :app:installDebug

Для быстрого знакомства можно не собирать проект вручную. В разделе Releases авторы выкладывают готовые APK. Достаточно установить приложение на смартфон и ввести адрес сервера при входе.

Экосистема и единый протокол

Сам репозиторий octo-android открывает лишь часть общей системы. Серверную логику держит octo-server, менеджер задач вынесен в octo-matter, а за автоматический саммари диалогов отвечает сервис octo-smart-summary.

Все клиенты — мобильные приложения и десктопная версия на React — работают по одному протоколу и используют общие ключи локализации. Это упрощает поддержку: логика работы ИИ-агентов или отображение статусов печати не требуют отдельных переработок под каждую платформу.

Кому пригодится проект

Репозиторий пригодится командам, которые ищут открытый мессенджер с возможностью селф-хостинга и нативной поддержкой LLM-агентов. Также исходники octo-android будут полезны Android-разработчикам. Здесь можно подсмотреть реализацию транспортного слоя на базе WuKongIM, организацию оффлайн-кэширования в Room и удобный интерфейс для стриминга ответов нейросети.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.