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 白名單配置正確。
羽毛球分组比赛记分
小程序二维码

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

小夜