dsh-consumer-audit

DSH 的插件可以向宿主註冊工具、skill、服務和路由。註冊成功不等於模型會調用它們。一個插件可能在啓動時安靜地註冊了三個工具,其中兩個在過去幾十次會話裏一次都沒被調用過。代碼在,測試過,加載正常,只是沒有任何任務走到那裏。還有一類更隱蔽:插件只包裹了宿主已有的方法,什麼都不註冊,從清單上看它像什麼都沒做,實際上它確實在生效。

consumer_audit 把這件事變成一份可覈對的清單。它讀取活動 profile 的組成行,解析每一行裝的是哪個包,靜態掃描該包的註冊站點,再去 DSH_HOME 下的會話日誌裏數每個已註冊工具和 skill 出現過幾次,最後報告計數爲 0 的那些。

安裝與啓用

使用以下命令安裝插件:

dsh plugin --profile <profile> add github:qimen039-code/dsh-consumer-audit

安裝完成後,需要重啓 DSH,工具纔會出現在模型工具表裏。

前置條件與環境:
* 需要安裝 Node 22.15 或更新版本。DSH 的會話日誌採用多幀 zstd 格式存儲,舊版本無法讀取。
* DSH 的 loader 只從活動 profile 自己的 node_modules 解析插件包。放在 profiles/node_modules 下的包不會生效,會導致啓動失敗。

核心功能

該插件提供以下能力:

  • consumer_audit:執行審計檢查。
  • consumer-audit:對應的 skill。

使用方式

由於會話日誌是多幀 zstd 格式,模型無法直接用普通文本讀取工具打開。插件提供了專門的證據獲取接口和代碼庫入口。

證據獲取接口:

{"action": "evidence", "name": "some_tool", "limit": 5}

代碼庫調用示例:

import { collect } from "dsh-consumer-audit/collect";
import { ablation } from "dsh-consumer-audit/audit";

報告內容與解讀

報告包含 findings(發現的問題)和 notes(說明性信息)。報告不含語義判斷,僅提供觀測數據。

Finding 類型:
* tool_never_invoked:工具已註冊,但在被掃描的日誌中從未被調用。
* skill_never_loaded:盤上有 SKILL.md,但在會話中未被加載。
* prompt_only_capability:只註冊了提示詞。
* row_without_capability:行已掛載、包也解析到了,但什麼都沒註冊。
* duplicate_prompt_section:兩個包註冊了同名的提示詞段。
* package_unresolved:包既不在 profile 裏,也不屬於隨 harness 發行的那批。
* tool_never_delivered:被調用過,但每次返回都帶 isError。
* skill_never_delivered:同上,針對 skill。

注意事項:
* 報告中的 consumed 字段記錄了 attempts / failed / succeeded 三層數據,僅走到“送達”這一層。
* 源碼裏的註冊站點只說明能力被聲明瞭,不說明它能用。
* 調用計數描述的是被掃描的那些日誌。未掃描的 profile、日誌窗口之前的調用都會讀成未使用。
* 第一方包(以 @deepseek-ai/ 開頭)隨 harness 發行,不參與搜索,報告記爲 shipped。
* 包裹既有服務方法的包不註冊新能力,調用計數判斷不了它。

適用場景

  • 新裝插件後,驗證其是否在會話中被實際調用。
  • 懷疑某項功能已編寫但未正確接入。
  • 在清理 profile 之前,確認刪除某項能力不會造成影響。
  • 自寫插件時,確認哪一部分代碼無人調用。

參考資料

羽毛球分组比赛记分
小程序二维码

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

小夜