dsh-winget:Windows 软件包管理的 DeepSeek Harness 插件

前言

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 单次调用超时(安装可能很慢)

原生工具列表

  1. winget_search:搜索软件,支持 query/id/name/moniker/tag 参数。
  2. winget_show:查看软件详情,包括版本、来源和安装器信息。
  3. winget_install:安装软件(会改变系统,需先确认)。
  4. winget_upgrade:升级指定软件或全部(all=true)。
  5. winget_list:列出已安装软件,支持筛选和导出。
  6. winget_uninstall:卸载软件(必须确认)。
  7. winget_export / winget_import:导出或导入软件清单。
  8. winget_pin:固定软件版本(add/list/remove)。

典型用法

智能体可以直接调用上述工具。例如:
* 用 winget_search 搜索 “VS Code” 并用 winget_show 查看详情。
* 用 winget_install 安装指定包(需先确认)。
* 用 winget_upgrade all=true 升级所有过期的软件。

注意事项

  1. 输出格式:当前版本 winget 不支持 JSON 输出,工具返回的是表格文本,模型可以直接解析。
  2. 管理员权限:需要管理员权限的安装操作在非交互模式下可能失败,因为 UAC 提示无法弹出。插件会如实返回错误。
  3. MS Store 登录:部分来自 MS Store 来源的包可能需要智能体先登录微软账号。

生态背景

本插件由社区维护,非官方。DSH 旨在通过插件扩展智能体的本地能力。使用前请检查源码与许可证。

总结

dsh-winget 将 Windows 软件管理能力接入 DSH 智能体。通过 9 个原生工具和默认非交互配置,它解决了智能体在无头环境中管理 Windows 软件包的痛点。

详细文档与源码:GitHub

羽毛球分组比赛记分
小程序二维码

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

小夜