メインコンテンツへ移動
AIチュートリアル

phongent チュートリアル:iPhoneまたはAndroidで複数のスマートフォンAgentを連携操作

本チュートリアルでは、phongentのインストールと設定、同一LAN内での複数Androidデバイスの接続、iOSまたはAndroidのホスト端末からデバイス単位・グループ単位でのタスク配布、リアルタイム画面の確認、通知メッセージの一元処理について説明します。

phongentチュートリアル:iPhone/Androidで複数スマホAgentを操作

phongentとは

phongentは、複数デバイスのAgentを連携操作するプロジェクトです。自然言語で全デバイス、特定のデバイスグループ、または指定したデバイスにタスクを割り当て、1つの画面で実行状況、結果、通知メッセージ、Androidデバイスのリアルタイム画面を確認できます。

phongent

iOSとAndroidのどちらもホスト端末として、Android実行端末への接続と管理を行えます。どちらもタスク配布、結果確認、メッセージ管理、リアルタイム小窓、操作の引き継ぎに対応していますが、Androidだけが本体のアプリ操作タスクを直接実行できます。

注意:iOSは現在、Android実行端末に接続するホスト端末としてのみ機能し、iPhone本体のアプリ操作タスクは実行できません。

主な機能

  • 複数デバイスへのタスク配布:デバイスを長押ししてタスクを説明できます。また、ホスト端末のタスクAgentにデバイスへの配布方法を自動判断させることもできます。
  • デバイスグループ連携:グループ全体を選択して一括実行したり、グループごと、またはグループ内の特定デバイスごとに異なるタスクを指定したりできます。
  • コンテンツの作成と配布:ホストモデルで複数の文章やテキスト画像カードを生成し、異なる内容を対応するデバイスに渡して処理できます。画像の添付にも対応しています。
  • Androidリアルタイム小窓:Androidの仮想画面を確認し、クリック、スワイプ、入力でデバイス操作を引き継げます。この機能はデフォルトで有効ですが、設定で無効にできます。
  • メッセージの一元処理:デバイス、アプリ、メッセージ送信元ごとに通知を整理し、対象AndroidデバイスのAgentに返信させることができます。
  • 一元設定:記憶、スキル、定期タスク、操作ルートを管理し、1台または複数のデバイスを選択して操作できます。
  • 接続管理:LAN内での検出、初回認証、ワンタップ接続、切断後の再接続、デバイス名の変更、デバイスグリッドに対応しています。

インストール前の準備

デバイスとシステム要件

  • 実行端末として、少なくとも1台のAndroidデバイスを用意します。
  • ホスト端末にはiPhoneまたはAndroidデバイスを使用できます。
  • ホスト端末と実行端末を同じLANに接続する必要があります。
  • Androidの最低対応バージョンはAndroid 11です。利用できる操作はシステムバージョンと権限設定にも左右されます。
  • iOSの最低デプロイ対象バージョンはiOS 17です。現在はXcodeでビルド、署名、インストールする必要があります。

正しいインストールパッケージを選ぶ

Androidユーザーはプロジェクトのリリースページからphongent.apkをダウンロードできます。phongentプロジェクトが提供するビルドを使用してください。上流プロジェクトのAPKで代用すると、複数デバイスの一括操作に必要なインターフェースが不足している場合があります。

クイック設定と接続

  1. アプリをインストールする。Androidデバイスにphongent APKをインストールします。iOSホスト端末では、macOS上のXcodeでビルドして署名し、インストールする必要があります。
  2. Android実行端末を設定する。アプリ内で必要なモデルとスマートフォン操作機能を設定し、実際の機能に応じてアクセシビリティや通知読み取りなどの権限を付与します。基盤となるスマートフォン操作の設定については、プロジェクトの設定ガイドを参照してください。
  3. 実行端末のサービスを起動したままにする。Android側のサービスが起動していることを確認し、ホスト端末とAndroid実行端末を同じLANに接続します。
  4. デバイスを接続する。ホスト端末の「デバイス」ページで検出されたAndroidデバイスを選択するか、「ワンタップ接続」を使用します。初回接続時はAndroid側で認証を承認する必要があります。
  5. ホストモデルを設定する。ホスト端末の設定を開き、タスクの理解と配布を担当するモデルを設定します。関連アプリのアカウントは各実行デバイスでログインしておく必要があります。
  6. 連携を開始する。「agent」ページを開き、全デバイス、1つのデバイスグループ、または1台のデバイスを選択して、自然言語でタスクを入力します。

デバイスは初回認証後、切断されても再接続できます。デバイスが検出されない場合は、すぐにアプリを再インストールするのではなく、LAN接続とAndroid側サービスの状態を確認してください。

4つの主な入口

  • デバイス:Androidデバイスの検出、接続、名前変更、グループ分けを行います。
  • agent:タスクを配布し、実行状況、結果、リアルタイム小窓を確認します。
  • メッセージ:デバイス、アプリ、送信元ごとに通知を確認し、返信タスクを開始します。
  • 設定:ホストモデル、実行端末の機能、関連する同期オプションを設定します。

基本操作:デバイスにタスクを配布する

異なるデバイスに異なるタスクを割り当てる

デバイス名がAとBだとすると、各デバイスのタスクを直接記述できます。

Aは小紅書のホームページを開いてスクリーンショットを撮り、Bはブラウザを開いて今日の天気を確認する。

送信後は、デバイスごとに実行状況と結果を確認できます。Android側の操作を確認または修正する場合は、対象デバイスのリアルタイム小窓を開き、クリック、スワイプ、入力で操作を引き継げます。

デバイスグループで一括連携する

コンテンツ制作、確認、運用などの繰り返し作業では、先にデバイスグループを作成し、グループ名でタスクを割り当てます。

コンテンツグループの各デバイスで商品紹介の草稿を1件ずつ作成し、確認グループで各デバイスのタスク状態を確認する。
コンテンツグループのAは既存素材の整理に変更し、ほかのデバイスでは草稿の作成を続ける。

このような指示では、グループ全体に共通の目標を指定できるほか、グループ内の特定デバイスのタスクだけを上書きすることもできます。

異なるコンテンツを生成して配布する

各デバイスで異なる素材を処理する場合は、ホストモデルにコンテンツを個別生成させ、デバイスごとに配布できます。

コンテンツグループの各デバイス向けに異なるタイトル、本文、テキスト画像カードを生成し、
対応するデバイスにそれぞれ配布して草稿として保存する。まだ公開はしない。

「草稿として保存し、まだ公開しない」などの制限をタスクに明記すると、期待する操作範囲を伝えやすくなります。実際の実行結果は、モデル設定、対象アプリの状態、アカウントのログイン状況、付与済みのシステム権限に左右されます。

デバイスグループの作成と管理

  1. 「デバイス」ページを開きます。下部のグリッドに、現在接続されているデバイスと各デバイスの名前、所属グループが表示されます。
  2. 「グループ」をクリックし、管理するデバイスにチェックを入れます。
  3. 既存のグループを選択するか、新しいグループを作成します。
  4. 「N台を移動」をクリックして一括移動します。

各デバイスが所属できるグループは1つだけで、移動すると元のグループから外れます。手動でグループ分けしていないデバイスは「デフォルトグループ」に入ります。

デバイスのアバターまたはカードを長押しすると、デバイス名の変更やグループの移動ができます。デバイス名の変更は対応するAndroidアプリとの同期を試みますが、実行端末が該当インターフェースに対応している必要があります。

グループ情報は現在のホスト端末に保存され、別のホスト端末には自動同期されません。複数のホスト端末を使用する場合は、各ホスト端末でグループを個別に管理する必要があります。

通知を一元確認して返信する

phongentは、権限を付与したAndroid通知を読み取り、デバイス、アプリ、メッセージ送信元ごとに整理できます。「メッセージ」ページを開くと通知の詳細を確認でき、対応するAndroidデバイスのAgentに返信タスクを任せられます。

  1. 対象Androidデバイスに通知読み取り権限が付与されていることを確認します。
  2. ホスト端末で「メッセージ」を開きます。
  3. デバイス、アプリ、送信元から対象通知を探します。
  4. 通知の詳細を開き、返信タスクを開始します。
  5. 対象Androidデバイス上のAgentが実際の返信操作を行います。

ホスト端末に通知が表示されない場合は、対象Androidデバイスの通知読み取り権限、実行端末のサービス、接続状態を優先的に確認してください。

高度な使用方法

実行しやすいタスク記述にする

  • デバイス名またはグループ名を明記する:「コンテンツグループ」「確認グループ」「Aデバイス」など。
  • 目標を分ける:各デバイスの操作を明確に記述し、複数デバイスへの要求を曖昧な文に混在させないでください。
  • 最終状態を指定する:「スクリーンショット後に結果を返す」「草稿として保存」「まだ公開しない」など。
  • グループ内のタスクを上書きする:まずグループ全体に目標を割り当て、その後、特定デバイスで何を変更するかを個別に指定します。
  • アカウントを先に確認する:サードパーティ製アプリを使う場合は、事前に対応するAndroidデバイスでアカウントにログインします。

リアルタイム小窓を適切に使う

リアルタイム小窓は、Agentの操作過程を確認したり、自動操作中に画面が変化した際に手動で操作を引き継いだりするのに適しています。デフォルトでは有効ですが、リアルタイム画面が不要な場合は設定で無効にできます。

実行端末を一括管理する

記憶、スキル、定期タスク、操作ルートなどの設定を一元管理し、機能ごとに1台または複数台を選択して操作できます。一括変更の前に選択したデバイス範囲を確認し、1台だけに適用する設定をグループ全体へ適用しないようにしてください。

接続問題に対処する

  • ホスト端末と実行端末が同じLANに接続されていることを確認します。
  • Android実行端末のサービスが動作していることを確認します。
  • 初回接続時は、Androidデバイスで認証を完了します。
  • 認証済みデバイスが切断された場合は、再接続または「ワンタップ接続」を試します。
  • デバイスグリッドには接続済みデバイスだけが表示されます。表示されないデバイスは、接続に成功したことを意味しません。

ソースコードからAndroid版をビルドする

プロジェクトのAndroidアプリ、ホスト画面、実行端末サービスはapp/にあり、Agentの中核機能はcore/にあります。ビルドにはJDK 17とAndroid SDKが必要で、現在はcompileSdk 36を使用しています。

./gradlew :app:assembleDebug

デバッグAPKはapp/build/outputs/apk/debug/に生成されます。インストール前に、ビルド成果物が自身の開発用署名で署名されていることを確認してください。

ソースコードからiOSホスト版をビルドする

iOSのビルドにはmacOSと、プロジェクトで使用するSDKに対応したXcodeが必要です。最低デプロイ対象バージョンはiOS 17です。

  1. Xcodeでios/MikaRemote.xcodeprojを開きます。
  2. MikaRemoteスキームを選択します。
  3. 署名設定で自分の開発チームを選択します。
  4. 対象のiPhoneを接続し、ビルドしてインストールします。

リポジトリのios/ディレクトリにはiOSホスト、コンポーネント、ライブアクティビティが含まれています。tools/android-emulators/にはAndroidエミュレーター連携ツールがあり、設定ガイド、プロトコル、検証記録はdocs/にあります。

セキュリティに関する注意:モデルキー、アカウント認証情報、本体の署名素材をソースコードに記述したり、リポジトリにコミットしたりしないでください。

まとめ

phongentは複数のAndroidデバイスを一元管理できるAgent実行環境としてまとめ、iPhoneまたはAndroidデバイスをホスト端末として使用できるようにします。実行端末の権限、LAN接続、ホストモデルの設定が完了すれば、1台、デバイスグループ、または全デバイス単位でタスクを配布し、結果、リアルタイム画面、通知メッセージを確認できます。本プロジェクトはMikaを基盤に開発され、Apache License 2.0を継承しています。