dsh-purge:DSH 0.2.1 系列的提示詞注入與宿主補丁管理

前言

在 DeepSeek Harness(DSH)裏做本地智能體開發時,常見需求包括:調整系統提示、切換規則集、導入 Skill,以及在不改上游倉庫的前提下對桌面/Web 宿主做有限補丁。官方能力有邊界,社區裏也有人維護「破甲/清理」類工具,但版本要跟 DSH 的 0.2.1-rc 線對齊,且補丁是否真正生效還要區分「寫進目錄」和「運行時是否讀到」。

下面介紹維護者 dongliuwuzhong-arch 在 GitHub 上的兼容分支 DSH-purge(插件包名 dsh-purge,當前版本 1.2.3,MIT)。它基於上游 YuJunZhiXue/dsh-purge,面向官方桌面與 Web 的 0.2.1-rc.2 / rc.3 / rc.5,在會話側提供 Clean 側欄,統一管理補丁、注入提示、規則集、Skill 與網絡白名單;不會在安裝插件時自動改宿主,只有顯式 Apply 纔會寫入補丁。

這是什麼

dsh-purge 是 DSH 的提示詞與宿主補丁插件:在會話標題旁增加 dsh-purge 入口,打開右側 Clean 頁面。運行時狀態落在 $DSH_HOME(如 prompt-inject.md、rules/、skills/、net-scope-allow.txt、dsh-purge/ 等)。插件源碼位於 $DSH_HOME/plugins/dsh-purge;profile 下的 node_modules/dsh-purge 是安裝時拷貝,改源碼後需 dsh-purge --sync 或重裝同步。

社區目錄 SkillHub 條目 將其歸類爲 admin-security;該目錄爲獨立社區站點,與 DeepSeek / 幻方無官方從屬關係。DSH 生態理念是「一切皆插件」,本文僅描述該倉庫 README 與 package 中可覈對的能力。

核心功能

Clean 側欄

區域 作用
Patches 分組展示補丁狀態,支持 Apply、Restore、Uninstall
Prompt 編輯 prompt-inject.md 作爲會話級覆蓋
Rule sets 管理 AGENTS.md / CLAUDE.md 規則集;啓用後寫入當前 $DSH_HOME
Skills 從 zip 或目錄導入到宿主官方 skills/<id>/SKILL.md
Own servers 在 net-scope-allow.txt 中按行登記 IP 或精確主機名
Rewind 通過官方 session.fork({ atSeq }) 或 /rewind 回退一輪

默認注入文案在構建時嵌入插件,不會讀取磁盤上宿主自帶的 prompt 文件;prompt-inject.md 爲用戶文件,Revert/Uninstall 默認保留。規則集可切換,寫入 $DSH_HOME/rules/;工作區策略支持 strict / fallback / always,控制是否保留 DSH 工作區基線段。Skill 不參與 inject 段,卸載插件不會刪除用戶已導入的 Skill。

補丁系統

補丁表當前定義 85 條(與桌面側欄統計、CLI --status 默認 Web 面統計可能不一致,README 說明這是預期現象)。首次 Apply 前對每個目標備份爲 <file>.dshpurge.bak,重複 Apply 冪等。Restore 從備份還原並刪除備份;備份缺失時至少剝離插件 shim 行。Uninstall 先還原已應用補丁,再移除注入文件、規則庫與插件本身。若目標文件已有補丁標記,插件拒絕僞造「相同」備份並在狀態中點名文件。

桌面官方包若仍存在 resources\app.asar,Electron 解析順序爲 app.asar → app → default_app.asar,補丁只寫到解壓目錄 不會被加載;可靠判據是狀態面板是否仍顯示 ✗ app.asar: still present。自 1.2.1 起升級後 asar 自愈見倉庫 docs/SEALED-ASAR.md。

CLI、會話命令與模型工具

命令行:

dsh-purge --status
dsh-purge --apply
dsh-purge --revert
dsh-purge --uninstall
dsh-purge --edit
dsh-purge --sync

會話內:

/purge status | apply | revert | uninstall | edit | help
/rules list | use <id> | create <id> | delete <id> | reset | help
/skills list | import <zip-or-folder> | create <id> [description] | delete <id> | help
/rewind

模型側工具:purge_status、purge_apply、purge_revert。

安裝與啓用

該包 不在 npm 上,add dsh-purge 會 404。需從倉庫歸檔、本地目錄或離線腳本安裝。

官方 Web

dsh plugin --profile web add <本倉庫 archive 或 main.tar.gz URL>

官方桌面

普通 dsh CLI 不接受 --profile desktop,需使用安裝目錄內自帶的 desktop CLI:

NODE="<DSH install>/resources/runtime/primary-runtime/dependencies/node/bin/node.exe"
CLI="<DSH install>/resources/app/dsh/node_modules/@deepseek-ai/dsh-desktop-host/lib/cli.js"

"$NODE" "$CLI" plugin --profile desktop add <本倉庫 archive 或 main.tar.gz URL>

若安裝仍帶 resources/app.asar,將路徑中的 resources/app/ 改爲 resources/app.asar/。

離線安裝(README 推薦)

腳本不跑 pnpm、不聯網、不自動 Apply 補丁:

node scripts/install-offline.mjs --profile desktop --dsh-home "$HOME/.dsh" --dry-run
node scripts/install-offline.mjs --profile desktop --dsh-home "$HOME/.dsh"
node scripts/install-offline.mjs --verify --profile desktop --dsh-home "$HOME/.dsh"

或指定 zip:

node scripts/install-offline.mjs --zip dsh-purge-1.2.3.zip --profile desktop --dsh-home "$HOME/.dsh"

安裝器校驗包、複製到 $DSH_HOME/plugins/dsh-purge、更新 profile 的 package.json、鏈接 node_modules/dsh-purge 並寫入 desktop-install.txt。

兼容與環境

  • 官方桌面:DSH 0.2.1-rc.2 / rc.3 / rc.5;官方 Web:dsh web 的 0.2 線
  • Node.js >= 18;Windows 建議 >= 22 以減少控制台閃屏
  • Web 與桌面分別安裝、分別 Apply,各有 profile 與 $DSH_HOME
  • 0.1.x 不支持;Community Desktop 未維護

典型用法

建議順序(來自 README):

  1. 安裝並完全退出後重啓宿主。
  2. 打開 dsh-purge → Clean,查看補丁分組與狀態。
  3. 如需先改 Prompt 或規則集,在 Apply 前完成編輯。
  4. 點擊 Apply;成功後會重啓宿主一次,補丁進入運行進程。
  5. 新開會話;已有會話不會自動加載舊 prompt。

安裝後應出現側欄按鈕;/purge status 應打印當前 DSH_HOME 與補丁狀態。僅把插件加入 profile 不會改宿主,默認配置不會替你點 Apply。

手動安裝概要:確認運行中宿主使用的 $DSH_HOME(含 profiles/ 與對應 dsh-profile-web / dsh-profile-desktop);將插件置於 $DSH_HOME/plugins/dsh-purge;在 profile 的 package.json 增加 "dsh-purge": "file:../../plugins/dsh-purge" 與 bundle 項;Windows 下建立 Junction 鏈到 node_modules/dsh-purge;重啓後在 Clean 中 Apply。細節見倉庫 README「Manual install」。

適用場景與注意

適合需要在 DSH 0.2.1-rc.2 / rc.3 / rc.5 上集中管理注入、規則、Skill、補丁還原,並願意自行承擔宿主修改風險的本地開發者。插件以 當前 dsh 進程權限 運行,Apply 會改宿主文件;安裝前應閱讀源碼、LICENSE 與 docs/SEALED-ASAR.md,確認與自身合規要求一致。

Web 與桌面補丁面不同,勿混用同一套「已 Apply」假設。編輯 $DSH_HOME/plugins/dsh-purge 源碼後記得 dsh-purge --sync。

結尾

dsh-purge 1.2.3 把上游補丁體系延續到 DSH 0.2.1 系列,用 Clean 側欄和顯式 Apply/Restore 把提示、規則、Skill 與宿主補丁收在一處,並強調桌面 asar 密封與備份回滾。進一步瞭解可查看社區目錄頁與倉庫 README(含中文版 README.zh-CN.md)。

  • 目錄頁:https://www.skillhub.cn/plugins/dongliuwuzhong-arch/DSH-purge
  • GitHub:https://github.com/dongliuwuzhong-arch/DSH-purge
羽毛球分组比赛记分
小程序二维码

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

小夜