前言¶
在 DeepSeek Harness(DSH)裏接智能體時,常見的一類問題是「執行類幻覺」:模型在回覆裏聲稱端口已監聽、文件已寫入或服務已停止,但本機狀態並不如此。再叫一個 LLM 當裁判可以補敘事結論,卻對端口、路徑、算式等機械事實既慢又可能漏檢。下面介紹社區插件 claim-verify-wsc(維護者 borui1757-cmd,分類 admin-security):從 Agent 輸出中抽取可覈驗斷言,向操作系統查詢真值,不一致時留下可回放記錄,可選在流式回覆後追加說明或驅動級聯換模型。核心路徑爲零模型調用的純 Node 實現。
這是什麼¶
claim-verify-wsc 是本機狀態的「收方員」與「記錄儀」——不負責提高模型輸出質量,而是讓「說的」和「本機做的」儘量對齊。它只覆蓋本機可觀測域(文件、端口、進程、服務、註冊表、計劃任務、內存、磁盤等),對討論、創作、判斷類內容不裝作能驗。與通用事實覈查或全量監控不同,README 寫明真實語料裏可覈驗句子密度大約 3–8%,屬於抽檢而非全檢。
插件以 DSH bundle 形式掛載在 llm/stream 等鉤子上;同一套抽取與真值邏輯也可通過 CLI 與 verifyText API 在 DSH 之外使用。名稱中的 wsc 爲作者署名。
核心功能¶
斷言抽取與程序真值¶
默認覈驗層不啓用第二個模型。對已抽取斷言,按類別調用本機真值源,例如:
| 類別 | 真值來源(摘要) |
|---|---|
| 端口 | TCP connect 探活 |
| 路徑 | fs.existsSync |
| 進程 PID | process.kill(pid, 0) |
| 文件大小/行數/哈希 | fs.statSync、讀文件、sha256 前綴 |
| 服務/註冊表/計劃任務 | spawnSync('sc'|'reg'|'schtasks', …),帶超時與緩存預算 |
| 時間/日期/算式/計數 | 本地時鐘、實際計算、目錄或 DOM 計數 |
設計原則:取不到真值記爲 unknown,不猜測;疑問句、假設句、舉例不抽取。高置信類別(端口、路徑、時間、日期、算式)可報告;低置信類別(金額、模型名、計數等)在現行策略中多僅寫日誌,以降低誤報。
與 LLM 裁判的分工¶
README 中 2026-11-05 對 26 條構造樣本的對比表明:程序真值在機械事實域 P/R/F1 可達 100% 且零次模型調用;敘事類錯誤條目程序真值召回爲 0%,而 deepseek-chat 作裁判在敘事域表現更好。二者互補,而非互相替代。
簽名收據與可回放¶
項目強調確定性(純 Node、零第三方依賴於核心路徑)、哈希鏈與世界線式日誌。實驗版默認 observe:主要寫入 ~/.dsh/dsh-claim-verify/hits.jsonl 等,不默認打斷對話;需要向用戶展示覈驗結論時配置 annotate: true。
級聯升級(可選,默認關閉)¶
可將「硬不符」作爲下一次 agent/request 換更強 provider/model 的觸發條件(非重答同一條流式輸出)。相關配置示例包括 cascadeEnabled、cascadeProvider、cascadeModel、cascadeMax。
安裝與啓用¶
本插件爲本地 link 型 DSH bundle,README 未提供 dsh plugin add github:… 一類一鍵命令。按官方步驟操作:
- 將倉庫目錄放到任意路徑,例如
<workspace>/plugins/claim-verify-wsc。 - 在 profile 的
package.json中增加依賴與 bundle 聲明:
"dependencies": { "claim-verify-wsc": "link:<插件絕對路徑>" },
"dsh": { "profile": { "bundles": [ /* ... */ "claim-verify-wsc" ] } }
- 手工建立
node_modules/claim-verify-wsc指向插件目錄的 junction/軟鏈。不要對正在運行的 profile 執行pnpm install(README 記錄的踩坑點)。 - 重啓 DSH 宿主。
驗證加載:查看 ~/.dsh/dsh-claim-verify/loads.jsonl 是否出現 "event":"loaded"。
安裝前請自行閱讀源碼與 MIT 許可證;插件以當前 DSH 進程權限訪問本機,屬 admin-security 能力,僅在可信環境啓用。
典型用法¶
DSH 輸出鉤子(倉庫默認形態)¶
在 finish 前對全文做覈驗,對不符項追加說明(不覆蓋原流式正文)。示意格式:
【覈驗】本條回覆有 1 處斷言與實際不符(程序剛跑的,不是模型判斷):
- 端口 64164 → DSH 實際端口是 3080
命令行(DSH 外)¶
node bin/claim-verify.mjs "服務 Spooler 已經停止"
node bin/claim-verify.mjs --json "可用內存 99 GB"
echo "端口 3080 在跑" | node bin/claim-verify.mjs
存在硬不符時退出碼爲 1,可接入 CI 門禁。
程序化 API¶
import { verifyText, renderNote } from 'claim-verify-wsc';
const { claims, checked, bad } = await verifyText(modelOutput, { sessionId: 'x' });
級聯配置示例¶
config:
cascadeEnabled: true
cascadeProvider: deepseek-account
cascadeModel: deepseek-flash
cascadeMax: 2
本地自測:npm test(README 稱多組測試、零網絡零模型);基準復現:node bench/run.mjs。
適用場景與注意¶
適合:任務型 Agent、運維/本機狀態覈對、需要「零模型成本」覈驗端口/路徑/算式等硬事實、希望保留 hits/收據鏈以便回放審計的場景。
不適合:指望它評價答案質量、覆蓋 creative 輸出,或替代人工對業務語義的終審。
務必注意:
- 默認
annotate: false,先觀察hits.jsonl再決定是否開口;README 記錄過早全量報告時誤報比例高。 - README 標明實驗性質(曾注
0.5.0-experimental.1行爲說明);package.json當前版本爲 0.9.53,以倉庫爲準。 - Windows 上
sc/reg/schtasks等輸出在中文系統可能爲 GBK,實現需按資料處理編碼;spawn 有單次 400ms、每輪最多 3 次等預算。 - 社區目錄 skillhub.cn 插件頁 與 GitHub 由維護者發佈,與 DeepSeek / 幻方無官方從屬關係;DSH 生態仍是「一切皆插件」的開放組裝。
結尾¶
claim-verify-wsc 把 Agent 裏能對照本機覈驗的斷言交給操作系統作答,默認靜默記錄、可選標註或級聯,適合作爲 admin-security 向的第二意見層。進一步細節與評測數據見倉庫 README 與 eval/、bench/。