前言¶
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