DSH 插件介紹:dsh-plugin-fact-vault(跨會話事實便籤庫)

前言

在 DeepSeek Harness (DSH) 的智能體開發場景中,上下文窗口是核心約束。傳統的 Transcript 插件記錄了“發生了什麼”,但往往缺乏對“結論是什麼”的持久化存儲,導致在後續會話中需要重複解釋既定的決策或口徑。dsh-plugin-fact-vault 旨在解決這一問題,提供一個跨會話的事實便籤庫。

插件介紹

這是一個由 121212165 維護的 MIT 許可插件。它的核心價值在於將“決策”與“過程”分離:用戶或模型可以通過工具記錄帶標籤的決策,並在任何後續會話中按需召回。相比於 Pinboard 等無條件注入系統提示的插件,本插件採用按需召回機制,不佔用系統提示預算。

核心功能

插件提供了以下核心能力:

  • 記錄決策:通過 /fact save 命令記錄帶標籤的決策。
  • 關鍵詞召回:通過 /fact find 或 fact_find 工具按關鍵詞檢索。
  • 列表查看:通過 /fact list 查看最近記錄。
  • 刪除功能:通過 /fact rm 刪除指定記錄。
  • 模型工具:fact_find 工具供模型在回答“之前說過/定過什麼”時自動調用。
  • 容錯機制:讀取數據時跳過損壞的行,且永不改寫源文件中的損壞行。

安裝與啓用

安裝過程需要將插件包安裝到指定 Profile,併合並配置文件。

  1. 安裝插件包:
    dsh plugin --profile web add github:121212165/dsh-plugin-fact-vault
此命令會通過 `pnpm` 自動運行構建。
  1. 合併配置文件:
    打開 $DSH_HOME/profiles/web/cordis.patch.yml。將插件倉庫根目錄下的 cordis.patch.yml 內容並進該文件中。

    • 注意:不要直接追加。追加會形成兩個 YAML 文檔,導致啓動時報錯 failed to parse overlay ... end of the stream or a document separator is expected。
  2. 重啓 DSH:
    配置層與客戶端均需重啓才能生效(客戶端按啓動時算出的內容下發,硬刷新瀏覽器無效)。

基本用法

1. 記錄決策

使用 /fact save 記錄一條決策,支持添加標籤。標籤以 # 開頭,可帶多個。

/fact save 這裏的預算上限是 500 #budget #money

2. 檢索決策

使用 /fact find 檢索記錄。系統會對關鍵詞進行空格分詞,並按權重排序:
* 標籤命中:記 3 分
* 正文命中:記 1 分
* 同分按時間倒序(新記錄優先)。

/fact find budget

3. 查看列表

查看最近 20 條記錄。

/fact list

4. 刪除記錄

使用 ID 刪除指定記錄。

/fact rm 3

5. 模型調用

模型在回答問題時,可以調用 fact_find 工具來自動檢索歷史決策。例如,當被問到“上週定過的口徑是什麼”時,模型會自動調用該工具獲取答案。

配置與數據結構

  • 默認庫路徑:~/.dsh/fact-vault/facts.jsonl
  • 數據格式:JSONL,每行包含 {v:1, id, text, tags, at}。
  • ID 規則:ID 是自增數字字符串(max(已存 id)+1),不是哈希,便於手動刪除。
  • 配置項:
    • enabled:是否啓用,默認 true。
    • libraryPath:庫文件路徑。
    • limit:find 和 fact_find 最多返回的條數,默認 10。

注意事項

  • 寫庫與讀庫邏輯:寫庫是插件自己的邏輯;讀時容錯(壞行跳過並計數),但永不改寫源文件中損壞的行。
  • Web UI 體驗:未驗證 /fact 命令在 web UI 裏的手動輸入體驗(Headless 會話無輸入通道)。
  • 環境要求:Node.js 版本需 >= 22.18。

適用場景

該插件適合回答“上週我在這個 harness 裏定過的口徑是什麼”這類問題,將臨時的對話結論轉化爲可檢索的知識庫。

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

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

小夜