Desktop Fallback Bridge: Bringing Codex-level Computer Use to DSH

前言

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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye