dsh-computer-use:在 DeepSeek Harness 上实现 Codex 风格的 Windows 桌面操控

前言

在 DeepSeek Harness(DSH)里做智能体,常见路径是接 MCP、写自定义工具,或让模型只处理文本与 API。若要让模型像人一样点窗口、读界面、敲键盘,往往需要单独搭一套桌面自动化运行时,还要自己定义「观察—动作—再观察」的协议。

dsh-computer-use 把这件事做成纯 DSH 插件:面向 Windows 10/11 交互式会话,用窗口级 UI Automation、可容忍遮挡的截图和 SendInput 注入输入,对外暴露五个模型工具,并由内置的长驻 PowerShell helper 执行。界面参考 OpenAI Codex Windows Computer Use 的工具面(列应用、取窗口状态、点击/按键/输入等),但不依赖第三方运行时或 MCP。维护者为 GitHub 用户 esch30636,在 SkillHub 目录中归类为「工作流」;源码托管于 esch30636/dsh-computer-use,许可证为 MIT(资料中 package 版本为 1.1.0)。

这是什么

一句话:dsh-computer-use 是仅支持 Windows(os: win32)的 DSH 插件,在 Harness 会话里提供 computer_* 工具链,让模型按「先观察窗口状态,再执行单一动作(或有限步序列)」操控本机 GUI。

运行要求包括:Windows 10/11、可交互用户会话(非服务会话)、PowerShell 5.1(powershell.exe,不要求 pwsh 7);DSH 0.2.x,且所用 profile 需挂载 tools、systemPrompt、attachments(官方 base 默认三者皆有)。插件无原生模块、无 npm 业务依赖、无 MCP server。

核心功能

五个模型工具

工具 作用
computer_list_windows 列出可瞄准的顶层窗口(含 window_id、进程、标题、矩形、前台/最小化、是否被策略拦截);可选列出可从开始菜单启动的应用。
computer_observe 抓取某一窗口状态:默认含截图,可选 UI Automation 树与元素索引、焦点、选区、文档文本;返回 state_id 与截图坐标映射。
computer_action 针对某一 state_id 执行恰好一个动作:点击/双击/右键/中键/移动/输入/按键/滚动/拖拽/set_value/等待/activate_window 等。
computer_launch_app 按 exe 路径、exe 名、开始菜单显示名、.lnk 或 shell:AppsFolder\<AUMID> 启动应用,并报告打开的窗口。
computer_sequence 在同一窗口上按顺序执行最多 100 步输入(屏幕绝对像素坐标),中间不必重新观察,适合重复性 GUI 操作;可选返回一张校验截图。

设计遵循「一次动作后再观察」的工作流;按键名采用 X11-keysym 风格,与 Codex 文档中的习惯对齐。

屏幕 overlay 与 ESC 终止

Computer use 激活期间,会显示可穿透点击的全屏状态层:中心透明、四边蓝宝石色渐暗的「liquid glass」边缘,显示器边框一圈青色细边,顶部中央有动态岛式状态条,默认文案为「DeepSeek Harness 正在操控你的电脑 | 按 ESC 终止」。用户按 ESC 会立即停止 computer use、关闭 overlay,并向智能体发出停止信号(USER_ESCAPE)。

插件还附带 system prompt 片段(工作流、硬拒绝、确认策略)以及 computer-use skill,内含完整 playbook。

安装与启用

包名注意: npm 上另有无关包名 dsh-computer-use,不要用 dsh plugin add dsh-computer-use 安装本插件;应使用 GitHub 规格或 release 压缩包 URL。

Web / CLI 可管理的 profile

对 dsh CLI 可管理的 profile(如 web、tui、headless 等),在终端执行:

dsh plugin --profile web add github:esch30636/dsh-computer-use

若不便直连 GitHub,可使用 release 压缩包(无需 git fetch):

dsh plugin --profile web add "https://github.com/esch30636/dsh-computer-use/releases/latest/download/dsh-computer-use.tgz"

安装后插件会进入该 profile 并启用 bundle;重启宿主或等待 HMR 重新组合后,新会话中会出现 computer_* 工具。

Desktop profile

Desktop 应用保留 desktop profile,dsh plugin --profile desktop 会拒绝执行。可选路径包括:待插件列入 awesome-dsh-plugin 后从「设置 → 插件市场」一键安装;或从 releases 下载解压后运行:

powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install-release.ps1

可用 -Version v1.1.0 固定版本、-Profile web 指定 profile、-Verify 做离线组合校验。

离线 / 手动安装

下载 release 解压后:

powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install.ps1 -Profile desktop

安装器会把包复制到 ~/.dsh/profiles/<profile>/node_modules/dsh-computer-use,把 dsh-computer-use 写入 dsh.profile.bundles,并把 skill 安装到 %USERPROFILE%\.agents\skills\computer-use。卸载示例:

powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install.ps1 -Profile desktop -Uninstall

配置要点

在 profile 的 cordis.patch.yml 中,对应行 id 为 computer-use。示例片段如下(仅列出资料中出现的字段):

- id: computer-use
  config:
    blockedProcesses: [msedge.exe]
    screenshotMaxWidth: 1600
    screenshotMaxHeight: 1200
    maxElements: 600
    maxTreeDepth: 12
    idleTimeoutMs: 600000
    startupTimeoutMs: 90000
    requestTimeoutMs: 30000
    confirmRiskyActions: true
    warnWhenApprovalUnavailable: true
    allowWindowsKey: false
    allowTerminalAutomation: false
    keepScreenshots: false
    overlayEnabled: true
    overlayMessage: "DeepSeek Harness 正在操控你的电脑 | 按 ESC 终止"
    overlayIdleTimeoutMs: 90000
    overlayEdgeOpacity: 55

常用含义简述:blockedProcesses / allowedProcesses(非空时为白名单模式)控制可自动化的进程;截图与 UIA 树有 screenshotMaxWidth/Height、maxElements、maxTreeDepth 等上限;confirmRiskyActions 会在破坏性或对外的操作前走 ctx.approval;overlayEnabled 与 overlayMessage 控制全屏提示与 ESC 终止行为。更多选项见仓库 README 配置表。

典型用法思路

资料中的设计是显式工作流,而非单条魔法命令:

  1. 用 computer_list_windows(必要时配合 computer_launch_app)确定目标 window_id。
  2. 用 computer_observe 获取当前 state_id、截图与可点击元素索引。
  3. 用 computer_action 执行一步操作(例如 click 带 element_index 或坐标、type、key、scroll 等)。
  4. 再次 computer_observe,根据新状态决定下一步。

对重复、坐标固定的操作(如画图填表),可在同一窗口上用 computer_sequence 批量发送最多 100 步,最后再观察或依赖可选的校验截图。

适用场景与注意

适合: 已在 DSH 0.2.x 上开发 Windows 端智能体、需要模型驱动本机 GUI(办公客户端、画图、设置向导等)且能接受「观察—单步动作—再观察」节奏的团队。

务必注意:

  • 插件以当前 DSH 进程权限运行,能点的窗口和能发的输入与登录用户一致;安装前请自行审阅 源码 与 MIT 许可证。
  • 仅 Windows;Linux/macOS profile 不适用。
  • 内置策略会拒绝部分高风险进程与操作;可通过 blockedProcesses、allowedProcesses 等收紧范围。默认 confirmRiskyActions: true,无审批通道时可能仅警告继续(见 warnWhenApprovalUnavailable)。
  • 操控进行中请留意全屏 overlay;需要立刻收回控制权时按 ESC。

结尾

dsh-computer-use 把 Windows 桌面自动化收敛进 DSH 插件形态:五个 computer_* 工具、PowerShell helper、可配置的进程策略,以及带 ESC 终止的全屏提示,便于在 Harness 里复用 Codex 式 computer use 协议而不另起运行时。

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

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

小夜