DeepSeek Harness (DSH) 采用插件化架构,这意味着扩展功能非常灵活,但也带来了风险:一个编写不当的插件可能在启动时抛出异常,导致整个 Web UI 崩溃。dsh-plugin-guard 是为此设计的插件,它通过隔离机制,确保单个插件的故障不会拖垮整个系统。
它是什么¶
dsh-plugin-guard 是 DSH 的安全守护插件。它在 Settings → Plugins 中提供一个专门的 Plugin Guard 标签页。该插件监控用户配置的插件,扫描其完整性,并在检测到损坏或异常时将其隔离,确保 Web 客户端始终能够正常启动。
核心功能¶
- 扫描与隔离:自动验证所有用户安装的插件。对于会在启动时导致崩溃的插件,将其隔离并标记为“损坏”,同时保持 Web 客户端运行。
- 插件控制:支持启用、暂停或卸载用户插件。这些配置会持久化保存到配置文件中。
- 双语界面:界面支持英文和中文,并会自动跟随 DSH 的语言设置。
- 一键自更新:通过 npm 检查新版本,并提供“Update now”按钮,支持直接在插件界面内更新自身。
- 独立修复脚本:提供
lib/profile-guard.js,可在 Web 客户端启动前运行,修复受损的配置文件。
安装与启用¶
使用 DSH CLI 安装:
dsh plugin --profile web add dsh-plugin-guard
如果需要手动安装,需编辑 <dsh-home>/profiles/web/package.json:
{
"dependencies": {
"dsh-plugin-guard": "^0.1.0"
},
"dsh": {
"profile": {
"bundles": ["dsh-plugin-guard"]
}
}
}
然后在该配置文件目录下运行 pnpm install(或 npm install),最后重启 Web 客户端。
典型用法¶
1. 更新插件
打开 Settings → Plugins → Plugin Guard,点击 Update now 按钮,等待安装完成后重启 Web 客户端。
2. 修复受损配置
如果 Web 客户端因插件损坏而无法启动,可以直接运行守护脚本来修复:
node <dsh-home>/profiles/web/node_modules/dsh-plugin-guard/lib/profile-guard.js
注意事项¶
- 权限与范围:该插件不会修改 DSH 应用程序安装目录,仅维护用户配置文件(如
package.json、cordis.patch.yml)。 - 网络请求:仅向 npm registry 发起只读的版本检查请求,不发送任何数据或进行遥测。
- 生效时机:禁用或卸载该插件需要重启 DSH 才能生效。
总结¶
dsh-plugin-guard 为 DSH 生态提供了一道安全防线。通过隔离机制和自更新能力,它解决了“坏插件拖垮系统”的痛点。对于依赖插件化架构的开发者而言,这是一个保障开发环境稳定性的必要工具。