在手机上运行带有AI Agent的即时通讯应用:octo-android 示例
在大多数企业聊天应用中,机器人只能发送来自监控系统的告警或请求休假审批。Mininglamp-OSS 的开发者决定更进一步,创建了 OCTO 平台。其理念很简单:数字孪生处理日常任务和初步推理,而人类负责评估结果和做决策。
仓库 octo-android 是该平台的官方移动客户端。与大多数现代企业通讯应用不同,作者没有用 WebView 包装网页应用,而是提供了使用 Kotlin 和 Java 构建的原生软件。
架构和实现的有趣之处
移动客户端基于 TangSengDaoDaoAndroid 项目和 WuKongIM 网络引擎构建。应用通过 REST API 与后端通信,并保持持久的 WebSocket 连接。
以下是客户端的构建组成:
- Module
wukong-sdk处理实时消息传输。 - 本地存储使用 Room DB 组织。聊天历史和未缓存的草稿直接保存在设备上。
- 授权令牌存储在安全的 EncryptedSharedPreferences 中。
- 后台通知通过标准服务和 Firebase Cloud Messaging 到达。
界面遵循 Material 3 指南构建。部分页面使用 Jetpack Compose 编写,其他则使用经典 XML 布局。单独的包 agent 包含用于 AI 工作的组件:生成状态跟踪、工具调用预览和流式模式下的响应可视化。
构建和定制体验
开发者声明了本地优先原则。所有数据属于用户,基于 Go 的后端 octo-server 可以轻松部署在自有服务器上。
如果想根据公司需求从源代码构建应用,需要完成强制清单。项目发布时不包含嵌入式密钥或第三方密钥:
- 将默认的
applicationId从com.example.octo更改为您组织的域名。 - 在 Firebase 中创建项目,并将您自己的
google-services.json添加到模块文件夹。 - 生成用于签名 release 版本的 keystore,并在 Gradle 中配置。
- 在
config.xml文件中指定您的实例octo-server地址。
未完成前三个步骤,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 中的桌面版本——都基于相同协议工作,并使用通用本地化键。这简化了维护:AI Agent 逻辑或打字状态显示不需要为每个平台单独修改。
谁会发现这个项目有用
该仓库对寻找具有自托管能力和原生 LLM Agent 支持的开源即时通讯工具的团队很有用。源代码 octo-android 对 Android 开发者也很有帮助。这里可以了解基于 WuKongIM 的传输层实现、Room 中的离线缓存组织,以及流式神经网络响应的便捷界面。
相关项目