dsh-capability-ledger:DSH Profile 能力臺賬與安全體檢

前言

DeepSeek Harness(DSH)的 profile 可以掛很多 bundle:skill、工具、MCP、客戶端 UI。時間一長,常見問題是兩類——不知道哪些 skill 和工具真的被加載或調用過,每輪請求裏固定注入的工具 schema 又佔多少 token;以及裝了一堆插件之後,某次重啓會不會因爲某個 bundle 的 client 產物 materialize 失敗、清單與 node_modules 不一致等問題,把整個 profile「全有或全無」地連坐崩掉。

社區裏已有 skill 用量統計、記分板、雷達等先例,但 README 裏作者對照後認爲:有的要帶一整條 @dsh-cc/* 依賴鏈,有的只計 skill 次數、不算工具與固定成本,有的只看最近時間窗。dsh-capability-ledger 由維護者 MrXiongBear 自研,歸類爲 admin-security,目標是一次只讀掃描同時回答「能力臺賬」和「安全體檢」兩個問題,且不引入第三方運行依賴(僅用 node: 內置模塊,React 由 shell 提供)。

這是什麼

倉庫:MrXiongBear/dsh-capability-ledger
目錄頁:skillhub.cn 插件條目

package.json 中的描述爲:對某個 DSH profile,從持久化會話日誌彙總真實的 skill/工具使用情況,統計每請求固定的 tool-schema 成本,並對已安裝的每個 bundle 做只讀安全審計。插件未發佈到 npm;README 標明實驗性、自用性質,且緊貼 DSH 宿主接縫,只在編寫時的 DSH 版本上驗證過,宿主升級後可能失效。

當前狀態(README 標註 2026-10-31):桌面 profile 上的面板已摘掉(作者自定規則「沒人看就停」),保留的是體檢 CLI 與重啓前三問的閘門腳本;源碼與面板仍在,可按 README 三步重新掛載 bundle。

核心功能

能力臺賬(只讀)

共用一次掃描,從本機會話日誌與 profile 清單讀取數據,不上傳會話內容(隱私紅線見下文)。

  • 技能加載:會話裏 tool/call 且 name === 'skill',用 callId 與 tool/result 配對,且無錯誤纔算成功;斜槓調用(user/message 且 data.source.kind === 'skill-invocation')單獨計入並標 slashLoads。
  • 技能目錄與截斷:從 skill-catalog 事件取模型當時可見的描述,與 ctx.skills.list() 的完整描述對比,分 measured / suspected / none 三檔。
  • 工具調用:按工具名累計調用與失敗;固定成本分「歷史請求實測注入均值」與「當前註冊表下次請求總和」,二者勿混讀;token 按 3.5 B/token 估算,僅用於橫向比較。
  • 工具來源分檔:plugin / mcp / builtin,用於區分可摘與不可動部分。
  • 統計窗口:按會話 header.createdAt 篩選全部歷史、最近 90 天或 30 天;切窗口是換分母重算,不是過濾表格。

面板(重新掛載後)在 Settings 旁提供「臺賬」入口,含總覽、技能臺賬、工具臺賬、安全體檢、候選預檢等頁籤;具體交互見 GitHub README「面板」一節。

安全體檢(只讀)

邏輯移植自作者工作區裏的 audit-dsh-plugins.mjs,統一爲 auditProfile(profileDir),供面板、測試與 CLI 共用。檢查項包括:package.json 與 cordis.patch.yml、bundle 是否在 node_modules、宿主入口、用與 shell 相同契約執行 client 產物 materialize、非 optional 的 @deepseek-ai/* peer 影子副本、安裝期腳本、明文憑據字面量(只報位置不回顯)、profile 內 @deepseek-ai/* 副本與應用自帶版本漂移等。紅項表示當前或下次啓動會連坐的問題;黃項爲形態風險。不安裝、不停用、不執行插件業務代碼、不改 profile 文件。

命令行與 HTTP(只讀)

重啓前三問(任一爲否則拒絕重啓):manifest 是否完整登記、audit 是否有紅項、gate-profile-boot.mjs 是否通過。

node <repo>\scripts\preflight-restart.mjs
node ...\scripts\preflight-restart.mjs --profile <dsh-home>\profiles\desktop --json <workspace>\reports\preflight.json --quiet

退出碼:0 可重啓;1 有紅項需修復;2 環境錯誤未真正驗證。作者已將此腳本接入 tools\dsh-restart-safe.ps1,並寫入 <workspace>\reports\preflight-latest.json。

僅做體檢:

node <repo>\scripts\audit-cli.mjs
node ...\scripts\audit-cli.mjs <dsh-home>\profiles\desktop --json <workspace>\reports\plugin-audit.json --quiet

有紅項時退出碼爲 1,可接進重啓前置檢查。

HTTP 路由(bundle 加載後):GET /api/capability-ledger/report(?refresh=1、?window=all|<天數>)、GET /api/capability-ledger/audit、POST /api/capability-ledger/candidate、POST /api/capability-ledger/export。環境變量可覆蓋報告目錄與 profile:DSH_CAPABILITY_LEDGER_DIR、DSH_PROFILE_DIR。

安裝與啓用

README 強調:DSH profile 加載是全有或全無,一個插件 import 失敗可能連坐整個 profile;安裝前備份 profile 裏的 package.json 與 cordis.patch.yml。本包沒有 dsh plugin add 一類的一行安裝命令,需本地 link 並登記 bundle。

  1. 備份 manifest 與 patch 文件。
  2. 在 profile 的 package.json 的 dependencies 增加 "dsh-capability-ledger": "link:<本倉庫絕對路徑>",並在 dsh.profile.bundles 中加入 dsh-capability-ledger;在 profile 目錄執行 pnpm install --prefer-offline。
  3. 若只需 CLI/閘門、不掛面板,可只保留依賴與腳本路徑;若恢復面板,README 還要求調整 gate-profile-boot.mjs 的 EXPECTED 後重啓。

示例(路徑按本機替換):

Copy-Item <dsh-home>\profiles\desktop\package.json <dsh-home>\profiles\desktop\package.json.bak -Force
Copy-Item <dsh-home>\profiles\desktop\cordis.patch.yml <dsh-home>\profiles\desktop\cordis.patch.yml.bak -Force
# dependencies 與 dsh.profile.bundles 登記後
pnpm install --prefer-offline
node <repo>\scripts\preflight-restart.mjs

卸載:從 dsh.profile.bundles 移除 → pnpm remove dsh-capability-ledger 或刪除 junction → 重啓;異常時用備份的兩個文件還原。

運行要求:engines.node 爲 >=22;許可證 MIT;當前版本 0.1.0。

典型用法

重啓前閘門(與 safe restart 腳本一致):

node <repo>\scripts\preflight-restart.mjs --profile <dsh-home>\profiles\desktop --quiet
if ($LASTEXITCODE -ne 0) { Write-Error 'preflight 未通過,不要重啓 DSH'; exit 1 }

日常體檢:

node <repo>\scripts\audit-cli.mjs --quiet
if ($LASTEXITCODE -ne 0) { Write-Error '體檢有紅項,不要重啓 DSH'; exit 1 }

候選包預檢(面板「候選預檢」或 POST /api/capability-ledger/candidate):輸入 npm 包名時會通過 npm view --json 查元數據且不下 tarball、不執行包代碼;本地目錄路徑則只掃目錄。

快照默認落在作者工作區的 reports 目錄(可通過環境變量改);「全部歷史」刷新時間節流 60s 寫 capability-ledger-latest.json 供 diff。

適用場景與注意

適合:自行維護較複雜 DSH profile、需要可檢驗的 skill/工具用量與 schema 成本口徑、希望在重啓前用同一套邏輯做只讀審計的開發者。

務必注意:

  • 插件以當前 DSH 進程權限運行;安裝前應閱讀源碼與 MIT 許可證,並理解 README 中的實驗性與 AI 生成說明。
  • 臺賬數據來自本機會話與 profile,不是精確賬單;判定規則(如 skill 零使用、工具零調用)僅爲提示,停用/卸載由人決定,紅項旁提供可複製處置命令。
  • 候選預檢的 npm 路徑會聯網查元數據,其餘能力不上傳會話內容。
  • 社區目錄 skillhub.cn 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;倉庫 GitHub 星標以目錄頁爲準爲 0,不代表功能完備度。

結尾

dsh-capability-ledger 把「哪些能力真的用過、固定 schema 成本大概在哪」和「這批 bundle 現在能不能安全重啓」收到一次只讀掃描裏;即使不掛 UI,體檢 CLI 與 preflight-restart.mjs 仍可單獨使用。進一步細節、口徑表格與 API 以倉庫 README 爲準。

  • 目錄頁:https://www.skillhub.cn/plugins/MrXiongBear/dsh-capability-ledger
  • GitHub:https://github.com/MrXiongBear/dsh-capability-ledger
羽毛球分组比赛记分
小程序二维码

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

小夜