dsh-dashcam:爲 DSH 插件記錄可驗真審計賬本的 dashcam

前言

在 DeepSeek Harness(DSH)裏給智能體掛載插件時,文件讀取、外連、子進程、工具調用往往混在一起發生。出問題時你只能事後猜「是哪個插件、幹了什麼」;平時也看不到每一次調用是否落在聲明過的能力契約裏。社區插件目錄 SkillHub 把 dsh-dashcam 歸在 admin-security,定位不是替你判決「能不能做」,而是像行車記錄儀一樣把觀測到的行爲逐條寫入可離線校驗的賬本。下面介紹它是什麼、默認會改變什麼、如何安裝,以及在什麼前提下才適合裝。

這是什麼

dsh-dashcam 由維護者 odysseykernelt 發佈,簡介概括爲:面向 DSH 的 dashcam 插件——能力清單(capability manifests)、運行時守衛(runtime guards)、防篡改審計賬本(tamper-evident audit ledger)。README 用一句話收緊產品邊界:它記錄插件實際做了什麼,不負責替你決定它們可以做什麼。

運行環境要求 Node.js >= 20(CommonJS);npm 包名爲 dsh-dashcam,package.json 中當前版本爲 2.0.3,許可證 MIT。項目自 1.11.0 起由 dsh-covenant 改名爲 dsh-dashcam,能力模型語義仍以倉庫內 docs/SPEC.md 爲準。

安裝後默認發生什麼

零配置、默認掛載、空 config 時,插件進入 dashcam 模式:不攔截任何一次工具調用,只觀測並記賬。

維度 安裝前 安裝後(默認)
插件活動 不可見,常在故障後才察覺 每次觀測到的工具調用單獨落賬
歸因 靠猜 賬本每行帶 plugin / pluginVersion
是否在契約下 不可知 每行帶 profiled、manifestHash
防篡改 無 SHA-256 哈希鏈;可離線逐行復算校驗
攔截 — 無;dashcam 模式不拒絕調用

賬本默認路徑爲 ~/.dsh/dsh-dashcam/ledger.jsonl(JSONL,一行一條記錄)。README 中的示例字段包括:讀文件 fs.read、執行 proc.spawn(如 git),decision 爲 allow,ruleId 爲 unprofiled,profiled: false 表示處於零契約觀測。

若之後在 config 中配置 requests(插件聲明可做之事)與 grants(宿主授予),同一哈希鏈可走 Two-Key(聲明與授予的交集)做裁決;默認仍是 advisory,也可在 enforce: true 下真正拒絕。記錄與裁決共用一條賬鏈,升級路徑不會分叉審計軌跡。

核心能力(已覈實部分)

觀測面

賬本覆蓋 README 明確列舉的觀測類型:讀文件、訪問主機、運行命令、調用工具。未映射的工具會以觀測記錄寫入,並帶輸入預覽;掛載記錄會說明當前鏈處於何種模式,避免把未覆蓋能力說成已全覆蓋。

誠實記賬規則

  • 默認 fail-open:記賬失敗不會因此拒絕調用;會告警並盡力寫入 ledger_fail 標記。若需要「記賬失敗則拒絕運行」,可設 policy.ledger.failMode: 'closed'。
  • decision: deny 只在確有拒絕時寫入;intercepted: true 表示未聲明的調用被實際攔截,而非假設場景。
  • 可選 HMAC 封存:設置 ledgerMacKey 可增強防篡改(README 建議若在意賬本完整性應配置)。

安裝期閘門(附錄能力)

README 附錄說明:結構 / 安全 / 簽名等 install-time gates 在 dashcam 產品定位下仍以證據與標籤形式運行;dashcam 模式 above the fold 的主線是錄製。附錄演示可用 CLI 對示例惡意插件跑閘門,例如:

node bin/dsh-dashcam.js gates examples/negative-plugin --skip-signature

輸出中會標明結構門阻斷(如 patch 路徑越界、安裝腳本不在白名單等),失敗信息可指向具體 manifest 字段。

底層能力面(附錄 B)包括 fs.*、net.outbound、net.listen、proc.spawn 等;詳細 scope 語義見倉庫 docs/SPEC.md。這部分主要爲「在錄製之上加裁決」或企業通道場景服務,普通零契約用戶可先只關心賬本文件。

安裝與啓用

官方 TL;DR 爲一條命令安裝完整插件包,然後重啓 DeepSeek Harness:

dsh plugin --profile web add dsh-dashcam

桌面配置將 --profile web 換爲 --profile desktop 即可,README 寫明兩種方式等價。安裝後默認僅觀測、不阻斷。

社區目錄頁:https://www.skillhub.cn/plugins/odysseykernelt/dsh-dashcam。源碼與說明:https://github.com/odysseykernelt/dsh-dashcam。

典型用法與後續升級路徑

第一步:零契約跑通。 保持默認空 config,正常使用 DSH 與插件;工作中打開 ~/.dsh/dsh-dashcam/ledger.jsonl,按行查看 capability、action、scope、plugin、profiled 等字段,對照當時操作是否一致。

第二步(可選):在錄製之上加契約。 當需要「聲明 + 授予」雙重對齊時,在配置中補充 config.requests 與 config.grants;同一賬本繼續追加,哈希鏈不斷裂。需要強制拒絕時再配合 enforce: true 等企業向選項(細節見 README 附錄與 SPEC)。

第三步(可選):完整性。 若賬本含敏感路徑與時間線,按 README 建議設置 ledgerMacKey,並自行決定賬本是否進入不可信備份介質。

適用場景與安裝前注意

適合誰: 需要在本地或團隊環境留存 可離線複驗 的插件行爲軌跡;想區分「在契約內 / 契約外(profiled)」調用;或計劃在觀測穩定後再疊加 Two-Key 裁決的 DSH 使用者。

必須接受的代價: README 把話說得很直白——若你不願有組件旁觀插件活動,就不要安裝。宿主適配器跑在 agent 主進程內;「只記錄、不攔截」恰恰意味着能看見幾乎全部調用。賬本本身是高價值目標(記錄哪些文件何時被觸碰)。安裝前應自行審查源碼與 MIT 許可,覈對 CI 與發佈渠道;不要將賬本自動同步到你不信任的備份。插件以當前 DSH 進程權限運行,權限邊界與 DSH 本身一致。

生態上,DSH 強調「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文不構成官方應用商店推薦。

結尾

dsh-dashcam 把 DSH 插件活動從「事後猜」變成「默認就有一條帶歸因與契約標記的 JSONL 賬本」,並用哈希鏈(及可選 HMAC)支撐離線校驗。默認零配置、不阻斷,適合先看清再決定是否加 requests / grants。進一步瞭解請閱 SkillHub 目錄頁與 GitHub 倉庫 README(含中文 README.zh-CN.md)。

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

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

小夜