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
羽毛球分组比赛记分
小程序二维码

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

小夜