前言¶
在 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 配置表。
典型用法思路¶
资料中的设计是显式工作流,而非单条魔法命令:
- 用
computer_list_windows(必要时配合computer_launch_app)确定目标window_id。 - 用
computer_observe获取当前state_id、截图与可点击元素索引。 - 用
computer_action执行一步操作(例如click带element_index或坐标、type、key、scroll等)。 - 再次
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 协议而不另起运行时。