OMG-Agent 手機 GUI Agent:用自然語言操控 Android 的桌面原型

OMG-Agent 是用自然語言操控 Android 的桌面原型,授權其實是 source-available 不是開源、模型預設指向本機端點、專案只開發九天就停滯。本文帶你看清這三個決策點與適合誰。

用 AI 摘要這篇文章:

OMG-Agent 是一個用 Python 寫的桌面客戶端,你輸入一句中文指令(例如「打開 LINE 傳訊息給阿宏」),它就截圖你的 Android 手機畫面、把畫面連同指令送給一個手機 GUI 大模型,再把模型判斷出來的座標動作透過 ADB 在手機上執行。整套流程跑在你的電腦上,手機靠 USB 連線被當成被操作的裝置。

這個專案 2025 年 12 月出現在 GitHub,因為把「自然語言操控手機」做成了可下載的桌面程式而受到關注。不過在你決定要不要裝它之前,有幾件事比展示動畫更值得先看清楚:它的授權其實不是一般人以為的開源、它的模型預設指向你本機得自己架的服務、而這個專案只開發了九天就停住了。下面整理的依據來自它的原始碼與 GitHub 上的公開紀錄,實際接上 Android 手機跑起來的效果,還是要你自己裝一份才知道。

一句話操控 Android,中間到底發生了什麼

從它的原始碼與文件來看,OMG-Agent 的工作鏈可以拆成三段。第一段是擷取畫面:程式透過 ADB(Android Debug Bridge)對連上的手機連續截圖。第二段是把截圖連同你的自然語言指令,一起送給一個手機 GUI 大模型,模型回傳這一步該點哪個座標、輸入什麼文字。第三段是把這些動作再透過 ADB 打回手機執行,然後回到第一段重新截圖,循環到任務完成或步數用完。

這個「截圖、模型判斷、ADB 執行」的循環,是它對外宣稱(README 與 docs/model-config.md)的核心機制。值得注意的是它把這個循環包進了一個 PyQt6 寫的圖形介面裡,所以你看到的是一個有按鈕、有投屏視窗的桌面程式,點按鈕就能用,不必在命令列打指令。這一點是作者在 README 陳述的設計,我沒有實際接 Android 裝置跑過完整任務,無法替它的操作成功率背書。

從設定檔可以看出作者對不同模型做了參數調校。config.py 裡定義了三種 agent 類型:給 AutoGLM 用的會把座標上限設成 999、取溫度值 0、保留原始解析度不縮放;給 GELab-Zero 與通用模式用的則把座標上限設成 1000、截圖縮放到 728×728、溫度值放寬到 0.1。每一步之間還有一個 step_delay 延遲(視 agent 類型落在 1 到 2 秒之間),讓動作之間有緩衝。這些參數說明了一件事:不同模型回傳座標的方式並不統一,工具得在送出截圖前先依模型調整解析度與座標範圍,這也是它把模型選擇寫成可切換設定檔、沒有把參數寫死的原因。

另外它要求你在手機上裝一個叫 ADBKeyboard 的輸入法,這不是裝飾性的設定。ADB 本身沒有辦法直接輸入中文這類非 ASCII 字元,ADBKeyboard 的作用是當成一個橋接輸入法,讓桌面端可以透過 ADB 廣播指令把中文字串塞進手機的輸入框。換句話說,只要你指令裡有中文要輸入(例如「傳訊息給阿宏」裡的訊息內容),就一定得靠這個輸入法,否則模型會順利點到輸入框、但打不出中文字。

TechMoon 精選圖|OMG-Agent 官方展示的自然語言操控 Android 流程Pin
OMG-Agent 官方展示的操作流程(來源:OMG-Agent GitHub 專案)。

它真的是「開源」嗎:授權的第一個落差

第一個值得停下來看的決策點是授權。OMG-Agent 的 GitHub 頁面與 README 都以「開源」描述這個專案,但實際把 LICENSE 檔案打開逐字看,它的授權是 Apache License 2.0 加上 Commons Clause,另外還附加了一條額外條款。

Commons Clause 的作用是:你拿到軟體後可以看原始碼、可以研究、可以為了學習而修改,但「Sell」這個權利被保留,也就是你不能拿這個軟體的功能去提供收費的產品或服務。在開放源碼促進會(OSI)的定義下,一個禁止商業使用的授權並不符合「開源軟體」的條件,業界通常把這種狀態稱為 source-available(原始碼可取得)而非 open-source。GitHub 自己的授權偵測也把它標成 NOASSERTION(無法歸類為任何標準授權),這個標記本身就值得讀者留意。

除了 Commons Clause,LICENSE 還多寫了一條:你不能修改、移除或變更軟體介面裡的 About(關於)對話框內容,包括版權聲明、作者資訊與連回專案的連結。這條是 Commons Clause 之外的自訂附加條款,意味著即使你只是想拿來做內部工具並改掉品牌字樣,也踩在條款紅線上。README 自己的免責聲明同樣寫明了「Strictly prohibited for any commercial use」(嚴禁任何商業用途),這部分算是誠實標示,但「開源」這個包裝用詞與授權實質之間確實存在落差。

下載就能用嗎:模型預設指向本機端

第二個會讓人卡住的決策點是模型。OMG-Agent 在這條鏈上扮演的是客戶端,它自己不附帶模型,只負責把指令送給你指定的模型服務,所以你得先有一個手機 GUI 大模型服務可用。而它開箱的預設值,指向的是你自己機器上的本地服務,預設並沒有接好任何雲端 API。

把專案 clone 下來之後,設定檔 omg_agent/core/config.py 裡的 ModelProfile 預設值寫得很明白:base_urlhttp://localhost:8000/v1api_keyEMPTYmodel_nameautoglm-phone-9b。也就是說,它預設假設你已經在本機跑好了一個相容於 OpenAI 介面的模型服務(例如用 vLLM 這類工具自己架),監聽在 8000 連接埠。如果你的機器上沒有這個服務,按下執行也只會得到連線失敗。

要用雲端模型也不是不行,設定檔裡留了 base_urlapi_key 兩個欄位讓你自己填。README 列出它宣稱支援的兩個手機 GUI 模型:一是智譜 AI 的 AutoGLM-Phone-9B,一是階躍星辰 StepFun 的 GELab-Zero-4B-preview,兩個都是中國團隊訓練、專門針對手機圖形介面調校的模型。不過這兩個模型要怎麼申請端點、要不要付費、能不能在台灣直接打通,README 並沒有完整交代,這部分我也沒有實際接通任何一個模型驗證過,屬於作者宣稱、待你自己查證的範圍。設定檔另外提到它相容於 OpenAI 介面,所以理論上任何符合這個介面的模型都可以接,但能不能正確判讀手機畫面又是另一回事。如果你手邊沒有實體 Android 手機,專案的 docs 目錄裡附了一份模擬器設定指南(emulator_setup),可以讓你在電腦上用 Android 模擬器把流程跑起來,這對只想驗證技術、不想動用日常手機的人是比較保險的入口。

穩定嗎:九天的開發週期與沒解的相容性 bug

第三個決策點是這個專案的維護狀態。從 GitHub 的提交紀錄來看,OMG-Agent 的第一次提交落在 2025 年 12 月 19 日,最後一次提交在同年 12 月 28 日,整個 main 分支的開發期只有九天,發佈過的正式版本也只有一個 v0.1.0。到現在已經超過七個月沒有新的提交進來。224 顆星、31 個 fork 的數字顯示它確實引起了一些關注,但關注不等於持續維護。

更實際的問題在 issues。截至目前有三個 open issue,其中第一號 issue 回報了一個會直接讓人卡關的錯誤:首次呼叫模型時,openai 套件會丟出 Client.__init__() got an unexpected keyword argument 'proxies'。這是 openai Python 套件跨版本不相容的典型症狀(舊版呼叫了新版已移除的 proxies 參數),這個 issue 從 2025 年 12 月 20 日開到現在都沒被關閉。它的 requirements.txt 寫的是 openai>=1.0.0 沒有上限,照 README 直接 pip install 時,你裝到的 openai 版本取決於當下 PyPI 上的最新版,很可能正好就是會撞出這個錯誤的版本。

另外兩個 open issue 分別是「長頁面視野受限」(捲動頁面時模型看得到的高度有限)與「投屏的更新率極低,是否考慮改用 scrcpy 之類的方案」。這兩個 issue 指的都是操作體驗上的真實限制:模型每次只看得到一張截圖,碰到需要往下滑的長頁面時視野會被截斷;而投屏畫面更新慢,代表即時監看任務執行狀況會比較吃力。這些都是會直接改變使用體驗、但 demo 動畫裡看不出來的點。

OMG-Agent GitHub 專案的授權標示與提交紀錄,顯示 Apache 2.0 加 Commons Clause 與九天開發週期Pin
授權欄位標示為 NOASSERTION,最後一次提交停在 2025 年 12 月(來源:OMG-Agent GitHub)。

適合誰、不適合誰

把上面三件事兜起來,這個工具的定位就清楚了。它適合正在研究 GUI Agent 技術、想做手機 UI 自動化原型驗證、或想拿現成框架改寫自己實驗的開發者;對這群人來說,一個用 PyQt6 加 ADB 把「截圖、模型、執行」串起來的可讀原始碼,本來就有參考價值。

還有一條放在決策前會更誠實的提醒:用 AI 自動操作別人的 App,可能會踩到該 App 的服務條款。很多社群、購物、金融類 App 在條款裡明文禁止以自動化程式介入介面,即使你只是自動化自己的帳號、做自己想做的事,風險仍存在;一旦帳號被系統判定為異常操作,輕則限制功能、重則直接停權,而且這類處分通常沒有申訴管道。OMG-Agent 的 README 免責聲明也把這條寫進去了,要使用者自負遵守手機廠商與各 App 服務條款的責任;這段免責聲明值得當真,你按下執行前確實該先想一下,尤其在涉及帳號、付款、私人訊息這類操作時。

反過來,它不適合幾種用途。商業流程是最明確的紅線:授權明文禁止商業使用,拿來做任何收費服務或商業產品都踩線。生產級日常自動化也不建議,九天開發、七個月未更新、還帶著半年沒解的依賴相容性 bug,把它當穩定管線倚賴風險偏高。至於對 Android 控制權完全沒概念的初學者,它走的是 ADB 全權限路線,你需要會開發者選項、USB 偵錯、安裝 ADBKeyboard 輸入法;這條準備鏈和 ShizuCallRecorder 借 ADB 權限做免 Root 錄音 是同一類門檻,差別在於這裡被借走的是整支手機的操作權,範圍比單一功能大得多。

如果你想做的其實是在電腦上操作手機畫面、傳檔案,靠自己手動操作就夠,那 AndroMeld 把 Android 掛進 Finder 做檔案管理與投屏 這類工具更直接,也完全不用碰模型;想在本機跑模型服務的人,則可以參考 Speech-to-Markdown 用本機 Whisper.cpp 做語音轉文字 這類已經把本機模型鏈跑順的例子,先把「自己架一個本地模型端點」這件事練起來,再回頭看 OMG-Agent 會踏實很多。

裝之前可以先做的一件事

在 clone 這個專案之前,有一個不用花錢、也不用接手機的動作可以先做:直接到它的 GitHub 頁面,把 LICENSE、issues、commit 歷史這三個頁面依序點開看一遍。LICENSE 會告訴你能不能商用、能不能改 About;issues 第一頁會告訴你目前有哪些卡關的錯誤沒解(尤其是那個 openai 版本相容性 bug);commit 歷史會告訴你這個專案已經多久沒人動了。這三頁加起來大概十分鐘,卻能讓你在裝環境之前就判斷清楚它值不值得你投入後面接手機、裝 ADB、找模型的時間。

如果這三頁看下來你覺得「授權可以接受、bug 我會自己處理依賴版本、停滯沒關係我只要原始碼參考」,那它對你就有明確價值;如果看到「禁商業+沒在維護」就讓你卻步,那也只是用十分鐘省下好幾小時的踩坑。OMG-Agent 把自然語言操控手機這件事做成了看得見的原型,但它是不是你該投入時間的那一個,答案不在 demo 動畫裡,而在那三頁文件裡。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 753

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...