前言¶
在 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"}}
桌面流程¶
- 使用
windows找到窗口 - 使用
a11y读取控件,获取a11y_id、element_id - 使用返回的句柄执行
set_element_value等动作 - 读取新状态
按需截图¶
默认情况下,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 仓库。