前言¶
DeepSeek Harness(DSH)擅长写代码、跑 shell,但默认看不见屏幕上的界面,也点不到窗口里的按钮。若任务只能靠「看一眼、点一下、跨应用串起来」才能完成,单靠读文件和命令输出往往不够。
社区里 dsh-orb 已经提供了截屏、鼠标、键盘和 13 个 GUI 工具等执行能力。缺的是会话层:多会话谁在用桌面、用户点停止后桌面是否还在动、依赖没装好时如何提示。桌面兜底桥(仓库 advance-lion/dsh-computer-use-bridge,npm 包名 dsh-desktop-bridge)由 advance-lion 维护,就是这一层桥接——让每个 DSH 会话都能通过统一入口把「只能用手做」的一段交给桌面工作会话,并保证同一时刻只有一个人在动鼠标。
这是什么¶
一句话:本插件不含 Computer Use 的实现;截屏、点击、输入全部由 dsh-orb 提供,这里负责任务调度、排队、跨进程独占、随停止中断和启动自检。
数据流可以概括为:
你的会话 ──computer_task──▶ 桌面工作会话 ──▶ 截屏 / 点击 / 输入
│ │
└──── 结果 + 验证证据 ◀───────┘
与 Codex 的 Computer Use 在「看见屏幕、点击输入、跨应用、显式 @computer」等执行能力上对齐;调度与安全模型按 DSH 实际情况重做(任务租约、FIFO 队列、Windows 前台独占等)。文档明确写出的边界包括:无 macOS 式独立光标与后台操作、无逐动作弹窗确认(敏感动作靠预算与停止)。
核心功能¶
下面介绍 README 中已核实的能力,均依赖 dsh-orb ≥ 0.2.0(提供 computer-use 预设)。
会话与调度
- 任务级租约:桌面忙时排队或超时,默认 FIFO,模型不能插队。
- 跨进程独占:Windows 命名管道声明控制权,抢不到则拒绝执行,而不是抢鼠标。
- 与 dsh-orb 悬浮球互斥:桥接工作时悬浮球会话让位,反之亦然。
- 聊天里点停止,桌面工作会话一并中断。
触发方式
mode为auto时按判据判断是否走 GUI;也可用显式标记@computer、@desktop、@电脑立刻动手。- 结构化路径优先:有插件、MCP、API、Skill 时仍应走结构化接口;只在「光看文件和命令输出无法确认」的图形界面任务上占用桌面。
工具与兼容
- 执行端为 dsh-orb 的 13 个 GUI 工具;工作会话模型必须支持图片输入(
workerProvider/workerModel可继承主会话或单独配置)。 - 插件只依赖预设 id 与
screen-owner记录,不 import dsh-orb 代码;预设缺失时启动自检会说明原因与修复方式。 - 平台:Windows 首发(README 标注 platform Windows);DSH 0.2.x 桌面版实测。状态可通过
computer_desktop_status查询(无原生状态面板)。
单任务预算(可配):步数/时长上限对应 maxRunSeconds(默认 600)、排队 maxWaitSeconds(默认 300)、每会话同时在飞任务数 maxTasksPerSession(默认 1)。
安装与启用¶
先做执行后端,再装桥;安装命令来自仓库 README,顺序如下。
dsh plugin add dsh-orb # 1. 执行后端(必须)
dsh plugin add dsh-desktop-bridge # 2. 桥(本仓库)
未安装 dsh-orb 时,computer_task 会拒绝执行并提示安装。装完后在 DSH 插件页应能看到 dsh-orb 与本插件两张卡片,桥显示「运行中」。
可选配置写在 cordis.patch.yml 的 config 段,常用字段如下。
| 字段 | 默认 | 说明 |
|---|---|---|
mode |
auto |
auto 按判据判断;explicit_only 只认 @computer;off 关闭 |
workerPreset |
computer-use |
工作会话预设,由 dsh-orb 提供 |
maxWaitSeconds |
300 |
桌面繁忙时最长排队时间 |
maxRunSeconds |
600 |
单任务最长占用桌面时间 |
maxTasksPerSession |
1 |
每会话同时在飞的任务数 |
workerProvider / workerModel |
继承 | 工作会话模型,必须支持图片输入 |
插件以当前 DSH 进程权限运行,安装前请自行查看 GitHub 源码 与 MIT 许可证,确认符合你的安全策略。
典型用法¶
日常可以直接用自然语言描述 GUI 任务,例如:
帮我在计算器里算一下 7×8
若希望立刻动手、不再权衡是否走桌面,加上显式标记:
@computer 把那个弹窗点掉
README 中的真实示例是:任务交给桌面工作会话后,依次按下 C → 7 → × → 8 → =,结果从计算器界面读回(如 56),而不是模型心算。已知问题里提到:目标窗口被遮挡时,点击可能落到别的窗口;首次运行前宜把目标窗口带到最前。
适用场景与注意¶
适合走本插件的情况(与 Codex 判据一致):只能点界面才能改的设置、只在 GUI 能复现的 bug、跨多个应用串起来的流程。
不必占用桌面的情况:改代码、读文件、批量重命名走文件/shell;有 MCP/API 走结构化接口;网页内容走抓取或浏览器自动化;「我现在在干嘛」类观察用 shell 截屏 + 读图即可。
README 强调:在 full-access 的 Windows 上,pwsh 能调 Win32、截屏、读 UI Automation,本插件会被用得比想象中少——设计意图是只在真正需要「一只手」时占用桌面。
边界摘要
- 不跨机器;控制的是宿主桌面,不是浏览器所在设备。
- 不抢占正在跑的任务;不自动化终端类应用、DSH 自身、需管理员授权的系统弹窗。
- Windows 前台独占:会真的接管指针和键盘。
- 没有「停止当前任务并立即交接」,只有排队取消、预算超时与随对话停止。
DeepSeek Harness 的生态理念是「一切皆插件」;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
桌面兜底桥把 dsh-orb 的执行能力与 DSH 多会话场景下的排队、独占和中断串起来,在 Windows 上补齐「看得见、点得到」的 GUI 委托路径。需要细节、设计取舍与测试说明时,见仓库 docs/design-notes.md。
- 目录页:https://www.skillhub.cn/plugins/advance-lion/dsh-computer-use-bridge
- GitHub:https://github.com/advance-lion/dsh-computer-use-bridge