前言¶
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。
- 备份 manifest 与 patch 文件。
- 在 profile 的
package.json的dependencies增加"dsh-capability-ledger": "link:<本仓库绝对路径>",并在dsh.profile.bundles中加入dsh-capability-ledger;在 profile 目录执行pnpm install --prefer-offline。 - 若只需 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