前言¶
在 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_observe和phone_act工具。 - 动作循环:每个模型回合执行一个有意义动作,随后取得新观察,并进行确定性验证。
- 稳定性保护:stale-element protection、adaptive screen stabilization、stuck detection、step and time limits、recoverable ADB errors。
- 审批:对可能发送、发布、删除、购买、支付、转账、拨号、安装、修改账户安全等语义控制,触发 Harness approval。
- Web 视图:提供 blank-session
mobile_gui_agentlauncher 和 conversation tab,支持设备选择、无线连接、截图刷新、任务控制、动作 overlays 和 verified steps。 - 测试能力:提供 fake device 和 scripted state transitions,用于 keyless Agent-loop tests。
环境要求¶
使用这个插件前,需要先确认环境满足以下条件。
- 需要 DeepSeek Harness Web profile。
mobile_gui_agententry 是 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 commit47f943859bef60e4160492346772ded9b24f765a验证,并在发布的0.1.0-rc.6Harness 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 会话消息和手机任务分开。
- 选择一个 workspace,并在普通 Harness conversation 中发送一个简短初始化消息,例如:
Prepare a mobile task
-
选择
mobile_gui_agentconversation tab。 -
选择已连接的设备,并把实际手机命令只填入
mobile_gui_agent里的 Task 字段。 -
选择 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_agententry。 - 发送、发布、删除、购买、支付、转账、拨号、安装、修改账户安全等动作需要 Harness approval。
- 控制真实设备时,应安装固定 tag 或 commit,而不是随意使用未审查版本。
结尾¶
dsh-mobile-gui-agent 的价值,是把 Android GUI 控制放进 DSH 插件体系:ADB 动作、屏幕观察、动作验证、审批和 Web 视图都在同一流程里。
项目地址:
https://github.com/kunjinkao-os/dsh-mobile-gui-agent