dsh-computer-use:DeepSeek Harness 的通用计算机操作能力

前言

DeepSeek Harness (DSH) 采用插件化架构,旨在通过插件扩展系统能力。在智能体开发中,让模型具备操作系统级的控制能力(如操作浏览器、点击桌面应用)是常见需求。dsh-computer-use 插件提供了统一的接口,解决了模型如何与外部环境交互的问题。

这是什么

dsh-computer-use 是一个由 xiaoheizi1212 维护的 DeepSeek Harness 插件。它提供了一套“通用”的计算机操作能力,不绑定特定的底层模型,旨在为 DSH 提供模型无关的浏览器和桌面操作接口。

该插件通过一个 ctx.computerUse 的能力接口,将底层的浏览器驱动、原生助手和感知逻辑封装起来,供上层模型调用。

核心功能

插件提供以下核心组件:

  • 统一接口:提供 ctx.computerUse seam,包含 start、listTargets、observe、act、stop 方法。
  • 模型工具:向模型暴露 6 个工具函数:
    • computer_observe:观察当前状态。
    • computer_act:执行动作。
    • computer_stop:停止操作。
    • computer_take_over / computer_resume:接管或恢复会话。
    • computer_perceive:感知环境(截图并分析)。
  • 多后端支持:提供三种 Provider:
    • fake:用于确定性测试。
    • playwright:跨平台的隔离 Chromium 浏览器。
    • windows:Windows 原生辅助程序(仅限 Windows)。
  • 感知层:
    • Accessibility 模式:不生成图像,仅通过无障碍树分析。
    • Analyze 模式:截图后发送给第三方视觉模型进行结构化分析。
  • 安全机制:包含风险分类、Fail-closed 确认机制、域名白名单以及完整的 computer/* 会话日志重放功能。
  • Cookie Bridge:支持导入已登录的 Chrome 会话。

依赖与配置

插件运行依赖于 DSH 生态中的多个基础插件。在配置文件中,所有选项集中在 dsh-computer-use/plugin 下。

必需的插件依赖

插件需要以下 DSH 插件配合才能工作:
* @deepseek-ai/dsh-llm-pi-ai:承载第三方视觉路由。
* @deepseek-ai/dsh-llm:处理图像内容块。
* @deepseek-ai/dsh-attachment:持久化截图。
* @deepseek-ai/dsh-credentials:解析视觉 API 密钥。
* @deepseek-ai/dsh-user-approval:处理高风险操作的确认。
* @deepseek-ai/dsh-tools:工具注册。
* @deepseek-ai/dsh-llm-deepseek:仅作为文本规划模型,不能作为视觉模型。

配置示例

在 cordis.patch.yml 中配置插件:

- id: computer-use
  name: dsh-computer-use/plugin
  config:
    # 后端选择:fake, playwright, windows
    provider: playwright
    # 视觉模型配置(需在 llm-pi-ai 路由中配置)
    visionProvider: xiaomi
    visionModel: mimo-v2.5
    # 是否启用主开关
    enabled: true
    # 是否注册模型工具
    tools: true

也可以通过 DeepSeek Harness GUI 的 Settings -> computer-use 菜单实时修改 enabled、provider 等配置。

Playwright 浏览器会话配置

当使用 playwright provider 时,可配置以下参数:

- id: computer-use
  config:
    provider: playwright
    browserHeadless: true
    browserWindowState: normal
    # 使用持久化而非隔离上下文
    reuseBrowserProfile: true
    browserUserDataDir: "C:/Users/you/.dsh/browser-profiles/main"
    browserProfileName: "Default"
    # 导入 Cookies(需要配合 Cookie Bridge)
    importCookies: true
    cookiesFile: "C:/path/to/cookies.json"

Windows 原生助手配置

当使用 windows provider 时:

- id: computer-use
  config:
    provider: windows
    windowsWindowState: normal

典型用法:Cookie Bridge

默认情况下,浏览器是隔离的,没有 Cookie。对于需要登录状态的场景,推荐使用 Chrome Cookie Bridge。

在 Chrome 浏览器中启用开发者模式,加载解压后的扩展(参考 GitHub dsh-cookie-bridge 仓库)。

2. 启动接收脚本

在插件目录下运行接收脚本,用于接收 Chrome 读取到的 Cookie:

pnpm exec tsx scripts/import-cookies-server.ts

3. 导出 Cookies

点击扩展图标或通过脚本指定域名导出:

# 导出指定域名
pnpm exec tsx scripts/request-cookies.ts all x.com,xiaohongshu.com

导出的 JSON 文件保存为 cookies.json,然后在插件配置中指向它:

- id: computer-use
  config:
    importCookies: true
    cookiesFile: "C:/path/to/cookies.json"

注意事项

  1. 平台限制:Windows 原生 helper 仅支持 Windows 平台,macOS 目前未开发,无法使用。
  2. 视觉模型选择:@deepseek-ai/dsh-llm-deepseek 仅支持文本,不能作为 computer_perceive 的视觉模型。
  3. Chrome 版本:Chrome 127+ 引入了 App-Bound Encryption,必须使用 Cookie Bridge 导入 Cookie,否则无法获取已登录状态。
  4. 配置文件隔离:不支持重用默认的 Chrome User Data 目录,也不支持直接复制默认配置文件(App-Bound Encryption 阻止了这一点)。只能使用插件管理的专用配置文件。
  5. 安全风险:导入 Cookie、密码或历史记录会削弱隔离性,仅导入任务必需的数据,并确保 allowedDomains 白名单配置正确。
羽毛球分组比赛记分
小程序二维码

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

小夜