龙爪控制:DSH Desktop 的浏览器与桌面自动化工具

前言

在 DSH Desktop 中,要让智能体完成网页操作或桌面任务,通常需要依赖浏览器自动化或 UI Automation 工具。但现有方案往往存在依赖复杂、截图开销大、权限模型不清晰等问题。龙爪控制(dsh-dragon-control)为 DSH 普通会话提供两套工具:dragon_browser 专注网页 DOM/CDP 操作,dragon_desktop 专注 Windows UI Automation 控件操作。两者共享一个原生常驻进程,在保持校验与急停机制的前提下,减少单步耗时。

插件定位

这是一个独立社区项目,由 wangtheme-coder 维护,仅适配 Windows x64 环境。它为 DSH Desktop 提供浏览器与桌面自动化能力,不隶属于 DeepSeek 或 OpenAI。插件本身包含浏览器启动层与 CDP 客户端,不依赖其他插件;安装后即可单独运行。

核心功能

网页操作

  • 打开、读取、多标签、DOM 点击与填表
  • 条件等待、截图及 URL 下载
  • 支持按需截图:大部分操作只返回新的窗口信息和观察号,不抓图;需要画面时再用 observe(始终截图)

桌面操作

  • 列出和选择窗口
  • 按 UIA 控件句柄执行 Invoke、SetValue、Select、Toggle、Expand/Collapse
  • 等待控件出现或消失
  • 不依赖视觉模型,使用语义路线

性能与日志

  • 原生层常驻:DragonNative.exe 与 A11yProbe.exe 同进程复用
  • 插件层单步(key,含守卫)从 1.89 秒降到 0.30 秒,真实会话单步 key 从约 2.94 秒降到约 0.68 秒(同机 5 次,648–720 ms)
  • 日志仅保留动作、耗时、结果和错误码,保留 14 天,总量约 10 MiB;不记录参数值、完整 URL、脚本或截图

批量与权限

  • batch 一次提交最多 50 步,先校验所有步骤,依次执行、遇错即停,并逐步记录脱敏日志;已执行的步骤不会回滚
  • 精确应用路径、网站顶层来源的 read/control 授权
  • 默认 owner 模式(手动确认);auto 模式跳过插件自身范围询问和敏感动作确认,也适用于 DSH 的 never 策略

安装与启用

环境要求:Windows x64、Node.js >=24、DSH Desktop >=0.2.0-rc2 <0.2.2-0、本机已安装 Microsoft Edge 或 Google Chrome。

使用默认 desktop profile 时,可在兼容的 DSH CLI 中执行:

dsh plugin --profile desktop add dsh-dragon-control

也可按版本标签安装:

dsh plugin --profile desktop add github:wangtheme-coder/dsh-dragon-control#v0.5.4

从 GitHub Releases 下载 tgz 后,可指定本地文件:

dsh plugin --profile desktop add C:/path/to/dsh-dragon-control-0.5.4.tgz

首次执行网页动作时,插件会查找 DRAGON_BROWSER_PATH,否则依次尝试系统 Edge、Chrome;使用独立配置目录启动,不读取日常浏览器的登录态。

非默认 profile 需要在插件行配置 profileDir,指向实际 profile 绝对路径。插件数据默认放在 <DSH_HOME>/dragon-control,也可由用户配置 dataDir。

更新后,先结束当前任务,再从系统托盘完整退出 DSH、重新打开并新建会话。action=status 应显示 version: 0.5.4、backends.browser: dragon-cdp 和 supportedPlatform: Windows x64 only。

典型用法

获取帮助

{"action":"help","args":{"action":"click"}}

桌面流程

  1. 使用 windows 找到窗口
  2. 使用 a11y 读取控件,获取 a11y_id、element_id
  3. 使用返回的句柄执行 set_element_value 等动作
  4. 读取新状态

按需截图

默认情况下,click/type/key/scroll/drag/hold/open_* 动作后只返回新的窗口信息和观察号,不抓图;observe(即 wait)、apps、wait 和窗口切换始终截图。想恢复旧行为(每步都截图),在 ~/.dsh/dragon-control/config.json 写:

{ "desktopShots": "full" }

或在启动 DSH 前设置环境变量 DRAGON_DESKTOP_SHOTS=full。

批量浏览器示例

{"action":"batch","args":{"steps":[
  {"action":"content","args":{"format":"txt"}},
  {"action":"wait","args":{"selector":"#done","timeoutMs":1000}}
]}}

连接已有浏览器

需由用户开启调试端口,仅连接指定端口的 127.0.0.1,拒绝远程端点和重定向。示例:

{"action":"attach","args":{"port":9222}}
{"action":"chrome","args":{"op":"tabs"}}
{"action":"chrome","args":{"op":"fill","selector":"#name","value":"示例"}}
{"action":"chrome","args":{"op":"click","selector":"#go"}}
{"action":"detach"}

适用场景与注意

  • 适合需要在 DSH Desktop 中完成网页自动化与桌面 UI 自动化的场景
  • 当前为预览版,部分功能(文件上传、截图裁剪/标注、自动更新)尚未实现
  • 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证
  • 文件上传、CDP 文件传输、点击触发下载或通用另存为对话框封装尚未实现

总结

龙爪控制通过原生常驻进程与按需截图,在保持校验与急停机制的前提下降低了单步耗时,并为 DSH 提供了统一的浏览器与桌面自动化工具。如需了解详情,可访问目录页与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

小夜