AgentBlue - 自然言語コマンドでAndroidを自動操作するオープンソースAIエージェント
(github.com/RGLie)こんにちは、AgentBlueというモバイルエージェントシステムを作りました。
AgentBlueは、ターミナルで自然言語コマンドを入力すると、Androidデバイスが自動でアプリを探索し、タップし、入力するオープンソースのAI自動化システムです。
動作方式
AndroidのAccessibility Serviceで現在の画面のUIツリーを読み取り、これをLLMに渡して次のアクションを決定します。このReAct(Reasoning + Acting)ループを、完了条件が満たされるまで繰り返します。
"YouTubeでローファイ音楽を検索して"
→ UI解析 → LLM判断 → CLICK "YouTube" → TYPE "ローファイ" → CLICK 検索 → DONE
CLIとAndroidアプリはFirebase Firestoreをリレーサーバーとして使い、リアルタイムで通信します。別途サーバーなしで8桁のセッションコードでペアリングします。
主な特徴
- マルチLLM対応 — OpenAI、Google Gemini、Anthropic Claude、DeepSeekから選択
- ターミナルREPL —
agentblue startでセッション開始、自然言語でコマンド送信 - リモート設定 — CLIから
/setting、/modelでAndroidアプリの設定を変更 - リアルタイム状態確認 — 各ステップの進行状況をターミナルでリアルタイムに確認
- セーフティガード — 支払い確認、アカウント削除など取り消せないアクションの前で自動停止
- Stuck検知と復旧 — 同じ画面で失敗を繰り返した場合、ヒント注入またはBACKを強制実行
- デバイス単独利用 — CLIなしでもフローティングボタンからデバイス上で直接コマンド入力可能
クイックスタート
使い方
npm install -g @agentblue/cli
agentblue init # Firebase設定 + 言語選択(共有サーバーを標準提供)
agentblue start # セッションコード発行 → Androidアプリに入力 → 接続完了
AndroidアプリはAccessibility Serviceとオーバーレイ権限だけ許可すればすぐに使えます。
なぜ作ったのか
RPAツールの多くは画面座標ベースなので、アプリが一度アップデートされるだけでスクリプトが壊れてしまいます。AgentBlueはUIの意味(テキスト、contentDescription、resource ID)を基にターゲットを見つけるため、レイアウト変更にずっと強いです。LLMが「次に何をすべきか」を各ステップごとに新しく判断するので、あらかじめシナリオを組んでおく必要がありません。
フィードバックと貢献を歓迎します。特に、より良いUI解析戦略やStuck検知改善のアイデアがあれば、IssueやPR、コメントでぜひお知らせください!
ありがとうございます
まだコメントはありません。