dsh-windows-computer-use:在 DSH 里操作 Windows 桌面

前言

在 DSH 里做 Windows 自动化,常见做法是让模型调用外部脚本或零散工具:每点一次按钮、每填一个框都要单独往返,窗口焦点一变还容易误操作。若希望 Harness 能「先看桌面再动手」、并在用户按 Esc 时立刻停下,需要一套与 DSH Desktop 对齐的电脑控制插件。

下面介绍社区插件 dsh-windows-computer-use(维护者 shinji00222,GitHub 仓库 shinji00222/dsh-windows-computer-use)。当前版本为 0.1.0-preview.3 预览版,面向 Windows x64 与愿意在 DSH Desktop 上测试的用户;在 SkillHub 目录 中归类为「工作流」。插件以 C# 原生引擎 + TypeScript 接入层 实现,在 Yu-tao-Li/dsh-computer-use-win 基础上独立演进,侧重点包括目标窗口绑定、停止机制与结果验证(上游与许可说明见仓库内 NOTICE.md)。

这是什么

dsh-windows-computer-use 是 DeepSeek Harness(DSH)的 Windows 电脑控制插件:让模型通过 MCP 工具读取控件与截图、执行点击与输入,并区分「指令已发送」与「效果已确认」。源码仓库不包含预编译原生引擎,安装需使用 GitHub Releases 的 .tgz 包,或自行在 Windows 上构建;当前未发布到 npm,也不代表已被任意插件市场收录。

核心功能

以下能力均来自项目 README 与 package.json 描述,可按需组合使用。

桌面观测与识别

  • 读取 Windows 控件、查找窗口与按钮;UI Automation 不完整时,可借助 Windows OCR 或截图。
  • 操作前要求观察目标窗口;窗口移动、焦点变化、目标不明确或观察过期时,会拒绝盲目输入。
  • 引擎通过内存返回截图,DSH 会将获准的图片保存为会话附件。

输入与窗口操作

  • 点击、双击、拖动、滚动、输入中文、快捷键、控件赋值和窗口管理。
  • 激活窗口会等待目标处理消息;若出现 FOREGROUND_DENIED 或 FOCUS_CHANGED,应停止输入并重新观察目标窗口。

一张截图、多步动作(run_batch)

  • 在支持图片输入的模型下,可用一张截图规划最多 8 个动作,一次执行后返回最终截图与逐步结果,减少模型往返。
  • 批量动作使用截图中的像素坐标,并自动换算窗口位置与缩放;截图引用一分钟有效且只能用一次。
  • 跳转、提交、打开菜单等应设 checkpoint: true;滚动和 Enter 会自动结束当前组。窗口移动、焦点或可读控件变化、失败或 Esc 会停止剩余动作,结果包含已完成数量与最终截图,不能整组重放。
  • 纯文本模型会收到 VISION_MODEL_REQUIRED,需切换支持图片的模型。

急停与权限边界

  • 独立线程监听 Esc:停止后当前轮不能继续输入;新的用户请求可继续。
  • 插件以当前 DSH 进程权限运行,不控制 UAC 安全桌面、不自动提权;普通权限无法保证操作管理员应用。
  • 两个电脑控制插件同时操作会争抢桌面,使用时宜只保留一套;本项目的跨进程互斥仅约束本项目引擎。

工具名前缀为 mcp__shin_desktop__windows_computer_use_。插件配置提供操作提示与只读模式,客户端插件卡片会说明操作与停止规则。

安装与启用

获取安装包

从 GitHub Releases 下载对应版本的 .tgz。若从源码构建,需 Windows 10/11 x64、Node.js ≥22 和 .NET 10 SDK,在仓库根目录执行:

npm ci
npm run build
npm test
npm run package:local

构建生成自包含的 native/DesktopEngine.exe;打包结果在 artifacts/。可通过环境变量 DOTNET_EXE 指定 SDK 的 dotnet.exe。

接入 DSH Desktop

在 DSH Desktop 自带终端 中安装(将路径替换为实际绝对路径):

dsh plugin --profile desktop add "C:\path\to\dsh-windows-computer-use-0.1.0-preview.3.tgz"

完整退出并重开 DSH 后插件生效。安装前应阅读源码与 MIT 许可证,确认接受以当前进程权限控制桌面的风险。

典型用法

首次冒烟测试

可让 DSH 按 README 建议执行一轮最小验证:

列出窗口,确认测试用记事本的 HWND,观察后输入“你好”,再读取文本确认。只操作这个测试窗口。

表单类任务(需视觉模型)

在 DSH 中选择支持图片输入的模型后,例如:

看一下这个表单,把姓名和备注填好。能确定的步骤连续做,提交前停下来给我看。

流程上对应插件提供的 screenshot → run_batch → 最终截图;填入已知文本、Tab 切换等可放在同一组。不确定下一步时务必设检查点,勿用一张旧截图推断多页流程。

独立 MCP 客户端

非 DSH 场景可在 MCP 配置中启动 dist/server.js(路径按本机修改):

{
  "mcpServers": {
    "desktop-native": {
      "command": "node",
      "args": ["C:/path/to/dsh-windows-computer-use/dist/server.js"]
    }
  }
}

独立 MCP 没有 DSH 用户轮次信号,Esc 后需在明确收到新的用户请求时调用 windows_computer_use_resume;DSH 内禁止模型用该工具恢复当前轮。

适用场景与注意

适合谁:在 Windows 上用 DSH Desktop 做桌面自动化原型、表单填写、基于截图的批量点击与输入验证;愿意接受预览版边界并自行核对操作结果的用户。

已知边界(节选):

  • 本版无后台消息输入与 WGC 捕获;后台窗口用 PrintWindow,失败时屏幕裁剪可能标记为被遮挡。
  • UIA 控件调用可能阻塞;超时会停止并回收工作进程,不自动重放,已送达应用的动作无法撤回。
  • OCR 依赖已安装的 Windows OCR 语言包;坐标匹配是文字定位,不代表理解按钮语义。
  • 从上游迁移后元素 ID、返回结构、配置和包名均有变化,不能直接替换其内部调用。
  • 自动化测试覆盖专用 WinForms 窗口与 MCP 通信,不代表所有应用、游戏或复杂网页都能稳定操作。

维护与验证入口见仓库内 技能.md。

结尾

dsh-windows-computer-use 把 Windows 桌面的观察、输入与批量动作收口到 DSH 插件与 MCP 工具中,并强调观察过期拒绝输入、Esc 急停与检查点。社区目录页:SkillHub - dsh-windows-computer-use;源码与 Release:GitHub - shinji00222/dsh-windows-computer-use。

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

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

Xiaoye