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

前言

在 DeepSeek Harness(DSH)里做自动化时,很多任务卡在「没有 API、只能点图形界面」:填表、点按钮、读窗口状态。官方文档里已有实验性的 Computer Use 方案(例如 Cua Driver MCP 与原生提供方),Windows 也可走上游 Cua Driver。若你希望在本机 Windows 上走一套独立的社区实现——UI Automation、窗口截图、鼠标键盘、会话授权与审批审计——可以看一下维护者 STARDUSTLC666 发布的 deepseek-computer-use。本文按仓库 README 与 package 信息整理安装、能力与注意点;该插件归类为 DSH 社区目录中的「客户端」插件,非 DeepSeek 官方出品(官方包在 @deepseek-ai/* scope 下)。

这是什么

deepseek-computer-use 通过 DSH 的 apply(ctx) / inject / bundle patch 接入宿主,向模型注册 16 个 Computer Use 工具:发现窗口、截图观测、鼠标键盘、控件操作,以及可选的系统音频录制。底层使用 UI Automation + SendInput + Windows.Graphics.Capture;工具语义参考 Codex window2,并针对 DSH 的会话、审批和截图附件机制做了适配。

典型流程是:先 list_windows / get_window_state 观测(无障碍树 + 可选截图),再 click、type_text、set_value 等操作;失败或界面变化后需重新观测,避免用过期元素编号误点。

核心功能

工具一览

README 中列出的工具及作用如下(节选说明用法方向):

工具 作用
list_apps 列出当前有可操作窗口的应用及其窗口
list_windows 列出可见窗口:id、标题、应用、z 序、边框
get_window 按 id 重新读取窗口
launch_app 启动应用(可带参数),默认需要审批
get_window_state 观测:带编号的无障碍树 +(可选)窗口截图
click 按元素编号或窗口相对坐标点击
press_key 单键或组合键(X keysym 风格)
type_text 注入 Unicode 文本
scroll / drag 滚动与拖拽
set_value 用 Value 模式直接改控件值
perform_secondary_action Invoke、Expand、Toggle 等辅助动作
activate_window 将窗口提到前台
start_audio_recording / stop_audio_recording 系统音频环回录制(需配置开启)
computer_use_health 自检 helper、编译器、策略、窗口数

截图通过 DSH attachments 保存并输出模型可见的 image block;敏感操作走 approval.request 并写入会话审计。同一桌面上的工具调用串行执行;每个会话独立保存授权、helper、截图与元素快照。

运行时与原生组件

  • 平台:Windows 10/11(package.json 中 os: ["win32"])
  • Node:≥ 18.17
  • 零 npm 原生依赖、零 .NET 运行时依赖:helper 与覆盖层用系统自带的 csc.exe 现编;抓屏(WGC)和录音(WASAPI)为 net48 程序,依赖系统自带的 .NET Framework 4.8。
  • 首次调用任意 Computer Use 工具时会自动编译 helper 与覆盖层(约 1 秒)。需要抓屏/录音等可选能力时,可在包目录执行 npm run build;无 .NET SDK 时抓屏可退回 PrintWindow,录音会报 audio_missing。

使用中指示与安全

操作时会有与 Codex 类似的两层覆盖层:屏幕边缘呼吸提示与虚拟光标;用户可按 Esc 取消当前回合内的操作。安全模型包括应用白名单/黑名单(allowApps / denyApps)、审批三档(never / sensitive / always)、前台窗口校验、元素快照 TTL(默认 120 秒)及 dryRun 演练模式。没有 DSH 审批服务时,需要审批的请求会被直接拒绝,不会静默降级。

插件以当前 dsh 进程权限运行,能访问本机用户可见的桌面与文件能力边界内的资源;安装前建议阅读源码与 MIT 许可证,并按团队规范配置 allowApps、denyApps 与 approval。

安装与启用

环境要求:Windows 10/11、Node ≥ 18.17,以及系统自带的 UI Automation、.NET Framework 4.8 等组件。

通过 npm 安装包

npm install deepseek-computer-use

包地址:npmjs.com/package/deepseek-computer-use

在本机 profile 的 cordis.patch.yml 中启用(与 README 示例一致):

- insert:
    - id: deepseek-computer-use
      name: 'deepseek-computer-use'

package.json 中通过 dsh.bundle.patch 指向 ./cordis.patch.yml,由 patch 向宿主配置插入插件行。

通过 DSH 插件命令(示例 profile:web)

README 给出的 Git Bash 示例:

dsh plugin --profile web add deepseek-computer-use
dsh web --no-open

装好后重启宿主,让模型调用 computer_use_health 做自检。开发时可将依赖改为本地路径,例如 file:E:/deepseek/dsh-computer-use,以加载源码。

可选构建(helper、overlay,并尝试 dotnet 编 capture/audio):

npm run build

配置示例

在 patch 或插件配置中可设置(字段含义以 README 为准):

- id: deepseek-computer-use
  config:
    approval: sensitive            # never | sensitive | always
    allowApps: ["notepad", "chrome"]   # 空 = 不限制
    denyApps: []
    defaultIncludeScreenshot: true
    maxElements: 260
    snapshotTtlMs: 120000
    dryRun: false
    toolPrefix: ''
    timeoutMs: 10000

approval: sensitive 为默认:元素标签命中危险词或 launch_app 时会询问;宿主侧 approval 策略与插件项 approval: never 含义不同,应用级授权由 appConsent 等机制单独控制,详见 README「安全模型」一节。

典型用法与自检

  1. 在已启用插件的 DSH profile 中启动 Web 或 CLI 会话。
  2. 让模型先调用 computer_use_health,确认 helper 与策略正常。
  3. 用 list_windows 或 list_apps 定位目标,再 get_window_state 获取带编号的树与截图。
  4. 根据观测结果执行 click、type_text、set_value 等;若返回 fresh_observation_required,须重新 get_window_state 后再操作。

仓库提供的测试命令(不依赖模型):

npm test               # 参数/策略回归 + WinForms 集成验证
npm run test:contracts # 仅参数与策略,不操作桌面
npm run test:harness -- --dsh-root /path/to/node_modules/@deepseek-ai/dsh

test:harness 会启动隔离的真实 DSH CLI/profile,验证附件、审批与原生操作,且不调用模型、不录音。

适用场景与注意

适合:需要在 DSH 对话中自动化没有稳定 API 的 Windows 桌面软件;希望工具契约接近 window2 语义、并自带 DSH 会话授权、审批与中断恢复(超时/取消会停止 helper,回合结束会清理原生进程)。

不适合或需知:仅支持 Windows;与官方 Computer Use / Cua Driver 功能有重合,README 明确说明未与官方驱动做过效果或性能对比。社区目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系,插件为社区维护。

遇到问题或改进建议,可在 GitHub 提交 issues 与 PR。

结尾

deepseek-computer-use 把 Windows 桌面观测与操作收进 DSH 工具面:16 个工具、附件式截图、审批与审计、串行原生 RPC。按上文安装到 profile、配置安全项并用 computer_use_health 验证后,即可在 Harness 里处理依赖 GUI 的任务。

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

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

Xiaoye