前言¶
DSH 的理念是「一切皆插件」;社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。做 DSH / 智能體開發時,常見的一步是確認某個 skill 在運行時是否按可信來源生效。dsh-capability-receipt 處理這一步:對 DeepSeek Harness 實際加載的 skill 生成內容尋址回執,讓運行時觀察結果可以被離線複覈。
這是什麼¶
dsh-capability-receipt 是 MIT 許可的 DSH 插件,當前版本 0.3.0,要求 Node.js 22 或更高版本。倉庫爲 dongsheng123132/dsh-capability-receipt。
它通過哈希 ctx.skills.get() 返回的 effective instruction body,記錄 winning provider/source/invocation policy;當資源基是本地目錄時,對 bounded local resource-directory closure 做哈希。隨後,它把這次運行時觀察與 trusted pinned hashes 比較,並寫出 deterministic content-addressed receipt。
它只觀察目標能力,不執行目標能力。
核心功能¶
DSH tools¶
插件暴露三個 DSH tools:
dsh_capability_receipt_inspectdsh_capability_receipt_issuedsh_capability_receipt_issue_from_pack
dsh_capability_receipt_issue 使用必填的 expectedContentSha256,並配合顯式的 workspace-relative artifactDir 寫入回執。
dsh_capability_receipt_issue_from_pack 使用 skillName、packLockPath 和 artifactDir,讀取 workspace-relative 的 pack-agent agent-pack/lock/v1 lock,重新計算 directory 與 portable-bundle skill hashes。
MCP proof surface¶
插件還暴露兩個 MCP stdio tools:
capability_receipt_inspect_lockcapability_receipt_verify_recorded
MCP 面是 proof-only 和 in-memory:它不能 inspect the live DSH registry,不能 read files,不能 access the network,不能 execute a capability,也不能 write a receipt。
pack-agent bridge¶
pack-agent lock 在這裏是 evidence input,不是 signature 或 trust anchor。插件通過重新計算 pack-agent 的 directory 與 portable-bundle skill hashes,把 lock 與 DSH 運行時觀察進行比對。
安裝與啓用¶
建議在隔離 DSH profile 中安裝,並固定已審閱 commit。命令如下:
dsh plugin --profile capability-proof add \
github:dongsheng123132/dsh-capability-receipt#<commit>
安裝前應檢查源碼與許可證。插件以當前 dsh 進程權限運行。包聲明 DSH bundle,並攜帶 cordis.patch.yml;不使用 install lifecycle scripts。
典型用法¶
先固定可信來源 artifact,再做 DSH 內回執生成,最後離線驗證。
生成回執¶
先準備可信來源 artifact 和 expected SHA-256。在 DSH 內可調用:
dsh_capability_receipt_issue:必填expectedContentSha256,顯式指定 workspace-relativeartifactDir。dsh_capability_receipt_issue_from_pack:必填skillName、packLockPath、artifactDir。
經過上面的步驟,會得到內容尋址回執 artifact。
離線驗證¶
CLI 不發現或加載 skill,只驗證已生成 artifact:
dsh-capability-receipt verify \
--receipt artifacts/capability-receipt-<sha256>.json \
--require-verified
stdout 輸出一個 JSON result。驗證失敗寫到 stderr,並退出碼 4;使用錯誤退出碼 1。
本地檢查¶
npm test
npm run check
npm run smoke:plugin
npm run smoke:mcp
適用場景與注意¶
適合:
- 需要證明 DSH 中實際加載的 skill 與可信來源一致。
- 需要把 pack-agent lock 作爲 evidence input,而不是 signature 或 trust anchor。
- 需要離線複覈已經生成的回執。
回執會 fail closed:
- DSH catalog 不完整或觀察期間發生變化。
- 加載定義與其 catalog entry 不一致。
- expectation mismatch。
- resources 無法被安全關閉。
資源安全默認值:
- 最多 256 個 regular files。
- 單文件最大 1 MiB。
- 總大小最大 8 MiB。
- 拒絕 symbolic links 和 special files。
- URL 與 opaque resource bases 被披露爲 unavailable,而不是被獲取。
邊界:
- 回執證明的是運行時觀察與可信固定哈希一致。
- pack-agent lock 是 evidence input,不是 signature 或 trust anchor。
- 插件不執行目標能力。
結尾¶
dsh-capability-receipt 把“DSH 實際加載了什麼”變成可複覈的內容尋址證據。
GitHub:https://github.com/dongsheng123132/dsh-capability-receipt
插件目錄線索:https://www.skillhub.cn/plugins/dongsheng123132/dsh-capability-receipt(該地址來自插件線索,未作爲已覈實事實引用)