電話でAIエージェントを使ったMessengerを実行する:octo-androidの例
大半の企業向けチャットでは、ボットは監視システムからのアラート送信や休暇申請の承認リクエスト程度しかできません。Mininglamp-OSSの開発者たちはさらに踏み込み、OCTOプラットフォームを構築しました。コンセプトは明確です:デジタルクローンが定型タスクと初期推論を処理し、人間が結果を評価して意思決定を行います。
リポジトリ octo-android は、このプラットフォームの公式モバイルクライアントです。現代の企業向けMessengerの多くはWebViewでWebアプリをラップしていますが、作者たちはそうしませんでした。KotlinとJavaで構築されたネイティブソフトウェアが提供されます。
アーキテクチャと実装の魅力
モバイルクライアントはTangSengDaoDaoAndroidプロジェクトとWuKongIMネットワーキングエンジンを基盤としています。アプリとはREST APIで通信し、永続的なWebSocket接続を維持します。
クライアントサイドの構成は以下の通りです:
- モジュール
wukong-sdkはリアルタイムメッセージ транспортを処理します。 - ローカルストレージはRoom DBで構築されています。チャット履歴とキャッシュされていない下書きはデバイスに直接保存されます。
- 認証トークンは暗号化されたEncryptedSharedPreferencesに保存されます。
- バックグラウンド通知は標準サービスとFirebase Cloud Messaging経由で届きます。
インターフェースはMaterial 3ガイドラインに従って構築されています。一部の画面はJetpack Composeで記述され、他の画面はクラシックなXMLレイアウトを使用しています。 отдельныйパッケージ agent にはAI操作用のコンポーネントが含まれています:生成ステータス追跡、ツール呼び出しプレビュー、ストリーミングモードでのレスポンス可視化です。
ビルドとカスタマイズの実際
開発者はlocal-first原則を宣言しています。すべてのデータはユーザーに帰属し、Goで書かれたバックエンド octo-server は自有サーバーに簡単にデプロイできます。
企業のニーズに合わせてソースコードからアプリをビルドしたい場合は、必須のチェックリストを完了する必要があります。プロジェクトには組み込みのシークレットやサードパーティのキーが含まれていません:
- デフォルトの
applicationIdをcom.example.octoから組織のドメインに変更します。 - Firebaseでプロジェクトを作成し、モジュールフォルダに独自の
google-services.jsonを追加します。 - リリースビルド署名用のキーストアを生成し、Gradleで構成します。
- ファイルでインスタンス
octo-serverアドレスを指定しますconfig.xml。
最初の3ステップを完了しないと、Gradleは最終ファイルのビルドを拒否します。しかし、コードにサードパーティのバックドアやテスト証明書が絶対に含まれていないという点は少なくとも安心です。
クイックスタートとして、手動でプロジェクトをビルドする必要はありません。著者はReleasesセクション готовые APKsを公開しています。スマートフォンにアプリをインストールし、ログイン時にサーバーアドレスを入力するだけです。
エコシステムと統一プロトコル
リポジトリ octo-android 自体はシステム全体の一部のみを開いています。サーバーサイドのロジックは octo-server にあり、タスクマネージャーは octo-matter に分離されており、自動的なダイアログ要約はサービス octo-smart-summary で処理されています。
すべてのクライアント—モバイルアプリとReactでのデスクトップ版—は同じプロトコルで動作し、共通の国別化キーを使用しています。これによりメンテナンスが簡素化されます:AIエージェントのロジックや入力ステータス表示は、各プラットフォームごとに個別に修正する必要がありません。
このプロジェクトが役立つ人
このリポジトリは、自己ホスティング機能とネイティブLLMエージェントサポートを備えたオープンソースMessengerを探しているチームに役立ちます。ソースコード octo-android はAndroid開発者にも役立ちます。WuKongIMベースのトランスポート層の実装、Roomでのオフラインキャッシュ構成、ストリーミングニューラルネットワークレスポンス用の便利なインターフェースなどを確認できます。
関連プロジェクト