前言¶
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白名單配置正確。