dsh-mobile-gui-agent:給 DeepSeek Harness 增加 Android GUI 操作能力

前言

在 DSH 中做智能體任務時,控制 Android 設備往往會遇到幾類具體問題:設備是否已完成調試授權、當前屏幕上有哪些可操作元素、模型發出的動作是否真的生效、哪些動作必須經過人工批准。

dsh-mobile-gui-agent 是一個 DeepSeek Harness 插件。它通過 ADB 控制 Android 設備,把截圖、UIAutomator 層級、動作驗證、審批和 Web 移動端視圖放進同一個插件裏,讓 DSH 可以按“觀察—決策—動作—驗證”的循環處理手機任務。

這是什麼

kunjinkao-os/dsh-mobile-gui-agent 是一個用於 DeepSeek Harness 的 Android Mobile GUI Agent 插件。它提供 ADB 控制、驗證過的迭代動作、審批和 Web 移動端視圖。

項目由 kunjinkao-os 維護,採用 MIT 許可證。當前可安裝版本爲 v0.2.1

核心能力

下面介紹插件已覈實的幾類能力。

  • ADB 控制:設備發現、無線連接、截圖、UIAutomator 層級抓取、點擊、長按、滑動、文本輸入/替換、按鍵、返回、Home、啓動包。
  • 觀察輸入:截圖,以及經過剪枝的語義 UI 觀察;元素 ID 是當前 observation 內局部有效的。
  • Harness 工具:提供嚴格的 phone_observephone_act 工具。
  • 動作循環:每個模型回合執行一個有意義動作,隨後取得新觀察,並進行確定性驗證。
  • 穩定性保護:stale-element protection、adaptive screen stabilization、stuck detection、step and time limits、recoverable ADB errors。
  • 審批:對可能發送、發佈、刪除、購買、支付、轉賬、撥號、安裝、修改賬戶安全等語義控制,觸發 Harness approval。
  • Web 視圖:提供 blank-session mobile_gui_agent launcher 和 conversation tab,支持設備選擇、無線連接、截圖刷新、任務控制、動作 overlays 和 verified steps。
  • 測試能力:提供 fake device 和 scripted state transitions,用於 keyless Agent-loop tests。

環境要求

使用這個插件前,需要先確認環境滿足以下條件。

  • 需要 DeepSeek Harness Web profile。mobile_gui_agent entry 是 browser client contribution,因此 headless-only profile 不會顯示它。
  • 需要一個 Android 物理設備或 emulator,並且能被 adb devices 看到。
  • Android 設備需要開啓 Developer options 和 USB debugging,並完成 RSA debugging authorization。
  • Node.js 要求爲 ^22.19.0 || >=24.0.0
  • DeepSeek Harness 兼容性爲 ^0.1.0-rc.5;已對照 upstream commit 47f943859bef60e4160492346772ded9b24f765a 驗證,並在發佈的 0.1.0-rc.6 Harness packages 上構建和測試過。

安裝與啓用

先確認 Android 設備可用。下面命令用於查看設備列表:

adb devices -l

設備需要已經完成授權,後續插件才能通過 ADB 正常工作。

接着,把固定版本安裝到 Harness Web profile:

dsh plugin --profile web add github:kunjinkao-os/dsh-mobile-gui-agent#v0.2.1

這個插件可以控制真實設備,因此安裝時建議固定已審查的 tag 或 commit。

安裝後,檢查配置並啓動 Web profile:

dsh --profile web --dump-config
dsh --profile web

經過上面的步驟,就可以在 Web 端使用 mobile_gui_agent 入口。

典型用法

推薦使用下面的流程,把普通 Harness 會話消息和手機任務分開。

  1. 選擇一個 workspace,並在普通 Harness conversation 中發送一個簡短初始化消息,例如:
   Prepare a mobile task
  1. 選擇 mobile_gui_agent conversation tab。

  2. 選擇已連接的設備,並把實際手機命令只填入 mobile_gui_agent 裏的 Task 字段。

  3. 選擇 Start,然後跟隨 verified steps 查看執行結果。

也可以使用 blank-session mobile_gui_agent launcher 打開任務面板。上面的流程更適合在普通 Harness 會話和手機任務之間保持明確邊界。

輸入與權限邊界

Unicode 輸入會使用外部 ADB Keyboard helper:

com.android.adbkeyboard/.AdbIME

如果該 helper 不存在,可以通過 adb.unicodeImeApkPath 配置一個指向已審查 APK 的 absolute host path。插件本身不會下載 APK;如果涉及 APK 安裝,仍然需要 explicit Harness approval。

這個插件不會安裝 Android accessibility service。

對於 Custom Canvas、WebView、game 和 image-only 控件,它們可能出現在截圖中,但不會出現在 UIAutomator hierarchy 裏。對這類屏幕,可以使用 vision-capable model input 或 optional PhoneVisionProvider

適用場景與注意

這個插件適合想給 DSH 增加 Android 設備控制能力的開發者或使用者,尤其是在 Web 裏查看設備狀態、執行手機任務,並對敏感操作做審批的場景。

使用前需要注意:

  • 它會通過當前 Harness / dsh 進程調用 ADB 等本地能力,並對 Android 設備執行操作。
  • 安裝前應檢查源碼、許可證和版本固定情況。
  • 需要 DeepSeek Harness Web profile;headless-only profile 不會顯示 mobile_gui_agent entry。
  • 發送、發佈、刪除、購買、支付、轉賬、撥號、安裝、修改賬戶安全等動作需要 Harness approval。
  • 控制真實設備時,應安裝固定 tag 或 commit,而不是隨意使用未審查版本。

結尾

dsh-mobile-gui-agent 的價值,是把 Android GUI 控制放進 DSH 插件體系:ADB 動作、屏幕觀察、動作驗證、審批和 Web 視圖都在同一流程裏。

項目地址:

https://github.com/kunjinkao-os/dsh-mobile-gui-agent
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜