前言¶
DeepSeek Harness (DSH) 采用“一切皆插件”的架构。当插件安装、升级或运行时出现异常——例如启动失败、服务静默失效或依赖关系断裂——传统的排查手段往往难以定位根因。dsh-repair 插件旨在提供一套针对 DSH 部署的诊断与修复技能,解决这些问题。
是什么¶
这是一个由 gezi-wen 维护的 DSH 插件。它包含一份技能,随插件一同进入 agent 的技能目录。该技能专注于修复安装失败、死插件、依赖桥损坏以及升级过程中的问题。
安装¶
使用官方命令安装:
dsh plugin --profile web add dsh-repair
核心功能¶
插件通过一系列脚本和技能覆盖了 DSH 运维中的常见痛点:
-
启动与文件系统故障
- 检测 Boot 在 readiness 阶段之前崩溃的情况(如
ERR_MODULE_NOT_FOUND、cannot resolve profile bundle)。 - 修复插件
node_modules中 junction/symlink 穿透损坏的问题。 - 通过
link-doctor.js审计或修复 symlink 与 junction。
- 检测 Boot 在 readiness 阶段之前崩溃的情况(如
-
运行时静默失效
- 诊断服务静默失效的情况,例如模型页缺少提供方、按钮失效等。
- 处理配置能解析但
apply抛异常的问题。 - 解决适配器静默丢弃它目录里没有的模型 id 的情况。
- 使用
inspect-session.js从会话文件提取运行时证据。
-
依赖桥
- 处理树外插件(
link:)拿不到宿主核心包时的桥机制。 - 使用
bridge-doctor.js进行只读体检。 - 使用
bridge-rebuild.js重建依赖桥(优先 dry-run)。
- 处理树外插件(
-
升级流程
- 升级前:停实例、备份、隔离预演。
- 升级后:三层验证与
settings.yaml复查。
-
Windows 远程作业
- 跨机经 SSH 收拾 Windows 上的 DSH 时,覆盖进程生命周期、引号转义、PowerShell、pnpm junction、路径漂移等坑点。
脚本用法¶
插件附带六个脚本,用于具体修复操作:
bridge-doctor.js:依赖桥体检与重建。bridge-rebuild.js:依赖桥重建(dry-run 优先)。bridge-lib.js:共用探测逻辑。dep-diff.js:比较两棵node_modules版本表。inspect-session.js:从会话文件取运行时证据。link-doctor.js:审计/修复 symlink 与 junction。
技术细节¶
- 包类型:本包是 ESM 包,但上述六个脚本使用 CommonJS 编写。
- 路径解析:路径一律从
--home或$DSH_HOME解析,没有写死任何一台机器,支持跨机操作。 - 许可:MIT 许可证。
注意事项¶
- 本插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
- 安装时,包内的
skills/会被注册为一个技能根。
参考资料¶
- 插件目录:https://www.skillhub.cn/plugins/gezi-wen/dsh-repair
- 代码仓库:https://github.com/gezi-wen/dsh-repair