前言¶
DeepSeek Harness (DSH) 的核心理念是「一切皆插件」。在 Windows 環境下,智能體管理軟件通常依賴手動終端操作,或者需要複雜的腳本封裝。dsh-winget 是一個將 Windows Package Manager (winget) 封裝成原生 dsh 工具的插件。它允許智能體通過 winget_search、winget_install 等工具進行搜索、安裝、升級和卸載操作。所有命令默認以非交互模式運行,支持無頭環境。
核心功能¶
該插件提供了 9 個原生 dsh 工具,覆蓋了軟件管理的全生命週期。它包含 SKILL.md 技能文件,用於指導智能體何時調用工具以及遵守安全規則。
主要功能包括:
* 搜索與查看:通過 winget_search 和 winget_show 查找並獲取軟件詳情。
* 安裝與卸載:通過 winget_install 和 winget_uninstall 改變系統狀態(需先確認)。
* 升級管理:通過 winget_upgrade 升級指定或全部軟件。
* 清單管理:通過 winget_export 和 winget_import 進行軟件清單的導出與導入。
* 版本固定:通過 winget_pin 對軟件版本進行固定。
安裝與啓用¶
作爲 bundle 加入 profile¶
將以下配置插入到你的 DSH profile 中:
- insert:
- id: winget
name: './src/index.js'
config:
wingetPath: winget
alwaysAcceptAgreements: true
本地 patch 臨時加載¶
如果需要臨時加載,可以使用以下命令:
pnpm dsh web --patch ./dsh-winget/cordis.patch.yml
配置項與工具¶
配置項¶
插件使用 Schemastery 進行配置,支持以下參數:
| 鍵 | 默認值 | 說明 |
|---|---|---|
wingetPath |
winget |
winget.exe 的路徑 |
alwaysAcceptAgreements |
true |
自動接受包/源協議(無頭安裝必需) |
timeoutMs |
600000 |
單次調用超時(安裝可能很慢) |
原生工具列表¶
winget_search:搜索軟件,支持 query/id/name/moniker/tag 參數。winget_show:查看軟件詳情,包括版本、來源和安裝器信息。winget_install:安裝軟件(會改變系統,需先確認)。winget_upgrade:升級指定軟件或全部(all=true)。winget_list:列出已安裝軟件,支持篩選和導出。winget_uninstall:卸載軟件(必須確認)。winget_export/winget_import:導出或導入軟件清單。winget_pin:固定軟件版本(add/list/remove)。
典型用法¶
智能體可以直接調用上述工具。例如:
* 用 winget_search 搜索 “VS Code” 並用 winget_show 查看詳情。
* 用 winget_install 安裝指定包(需先確認)。
* 用 winget_upgrade all=true 升級所有過期的軟件。
注意事項¶
- 輸出格式:當前版本 winget 不支持 JSON 輸出,工具返回的是表格文本,模型可以直接解析。
- 管理員權限:需要管理員權限的安裝操作在非交互模式下可能失敗,因爲 UAC 提示無法彈出。插件會如實返回錯誤。
- MS Store 登錄:部分來自 MS Store 來源的包可能需要智能體先登錄微軟賬號。
生態背景¶
本插件由社區維護,非官方。DSH 旨在通過插件擴展智能體的本地能力。使用前請檢查源碼與許可證。
總結¶
dsh-winget 將 Windows 軟件管理能力接入 DSH 智能體。通過 9 個原生工具和默認非交互配置,它解決了智能體在無頭環境中管理 Windows 軟件包的痛點。
詳細文檔與源碼:GitHub