前言¶
DeepSeek Harness (DSH) 采用插件化架构,旨在通过插件扩展系统能力。在智能体开发中,让模型具备操作系统级的控制能力(如操作浏览器、点击桌面应用)是常见需求。dsh-computer-use 插件提供了统一的接口,解决了模型如何与外部环境交互的问题。
这是什么¶
dsh-computer-use 是一个由 xiaoheizi1212 维护的 DeepSeek Harness 插件。它提供了一套“通用”的计算机操作能力,不绑定特定的底层模型,旨在为 DSH 提供模型无关的浏览器和桌面操作接口。
该插件通过一个 ctx.computerUse 的能力接口,将底层的浏览器驱动、原生助手和感知逻辑封装起来,供上层模型调用。
核心功能¶
插件提供以下核心组件:
- 统一接口:提供
ctx.computerUseseam,包含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。
1. 安装 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"
注意事项¶
- 平台限制:Windows 原生 helper 仅支持 Windows 平台,macOS 目前未开发,无法使用。
- 视觉模型选择:
@deepseek-ai/dsh-llm-deepseek仅支持文本,不能作为computer_perceive的视觉模型。 - Chrome 版本:Chrome 127+ 引入了 App-Bound Encryption,必须使用 Cookie Bridge 导入 Cookie,否则无法获取已登录状态。
- 配置文件隔离:不支持重用默认的 Chrome
User Data目录,也不支持直接复制默认配置文件(App-Bound Encryption 阻止了这一点)。只能使用插件管理的专用配置文件。 - 安全风险:导入 Cookie、密码或历史记录会削弱隔离性,仅导入任务必需的数据,并确保
allowedDomains白名单配置正确。