claim-verify-wsc:用本機真值覈驗 Agent 完成聲明

前言

在 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:… 一類一鍵命令。按官方步驟操作:

  1. 將倉庫目錄放到任意路徑,例如 <workspace>/plugins/claim-verify-wsc。
  2. 在 profile 的 package.json 中增加依賴與 bundle 聲明:
"dependencies": { "claim-verify-wsc": "link:<插件絕對路徑>" },
"dsh": { "profile": { "bundles": [ /* ... */ "claim-verify-wsc" ] } }
  1. 手工建立 node_modules/claim-verify-wsc 指向插件目錄的 junction/軟鏈。不要對正在運行的 profile 執行 pnpm install(README 記錄的踩坑點)。
  2. 重啓 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/。

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

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

小夜