dsh-mimavault:在 DSH 中檢索密匣憑據且不向模型泄露明文

前言

用 DeepSeek Harness(DSH)寫自動化或智能體流程時,經常會碰到需要引用 API Key、站點密碼或 TOTP 的場景。把祕密直接貼進對話,明文會進會話歷史,也可能被模型上下文帶走;讓模型去「猜」配置同樣不可靠。本插件把本機 MimaVault(密匣) 接到 DSH:提供檢索、剪貼板複製、代發 HTTP、生成口令等能力,設計上讓庫中密碼與種子默認不進入模型上下文。

這是什麼

dsh-mimavault(顯示名「MimaVault 密匣」)由 startime-ltk 維護,歸類爲 admin-security。它是 DSH 與密匣本地 API 之間的橋:插件側只做 HTTP 客戶端,不碰加密數據;解密留在 MimaVault 進程內。倉庫:https://github.com/startime-ltk/dsh-mimavault。社區目錄頁:https://www.skillhub.cn/plugins/startime-ltk/dsh-mimavault(獨立站點,與 DeepSeek / 幻方無官方從屬關係)。

當前包版本爲 0.3.1(見倉庫 package.json),許可證 MIT。

工作方式概覽

DSH Host 中的插件通過 Bearer Token 訪問僅監聽 127.0.0.1 隨機端口的 LocalApiServer(須在密匣解鎖且勾選 Local API (DSH) 後可用)。常用工具包括 vault_search、vault_entry、vault_copy、vault_totp、vault_generate、vault_call_api;v0.3.0 起還支持 builtin 內置明文庫模式(與默認 external 互斥、數據不互通)。

關切 external(默認) builtin
數據位置 PC 密匣加密庫 %APPDATA%/MimaVault/builtin-vault.json(明文 JSON)
是否需安裝密匣 需要 不需要
明文是否進入 DSH 進程 否 是(文件可讀即可見全部條目)

下面分節以 external 爲主;內置模式的安全邊界見後文「適用場景與注意」。

核心功能

面向模型的工具

工具 作用 會向模型返回庫中明文嗎
vault_search 按關鍵詞/分類檢索元數據(備註可命中但不返回內容) 否
vault_entry 單條元數據;敏感字段如 api_key 打碼爲 *** 否
vault_copy 指定字段寫入剪貼板(external 由密匣側執行) 否
vault_totp 6 位動態碼 + 剩餘秒數 僅短時效驗證碼
vault_generate 生成新隨機口令 是(新生成,非庫內祕密)
vault_call_api 用庫中令牌代理 HTTP,僅把對方響應給模型 否
vault_clear 僅發起清空內置庫請求,須人工確認 否

安全模型要點(README 歸納):vault_search / vault_entry 不傳密碼、備註全文與 TOTP 種子;vault_call_api 限目標域名爲條目 api_endpoint 的域名、不自動跟隨 3xx;未解鎖時插件提示未運行/未解鎖;密匣約 3 分鐘無操作自動登出後 API 立即失效。

側欄面板「密匣」

註冊在 sidebar.panellist,打開行時會嘗試 POST /plugins/dsh-mimavault/launch 拉起密匣。面板展示連接狀態(已連接 / 已啓動未就緒 / 未運行 / 未找到);未找到時可在配置中填寫 appPath。builtin 模式下可切換數據源、CSV 導入、條目列表與帶二次確認的清空;面板只顯示元數據,不顯示密碼明文。側欄「關於」區塊可檢查更新(多源讀 version.txt,只提示不自動覆蓋 link: 開發目錄)。

安裝與啓用

資料中的部署方式爲:將包加入 profile 依賴並在 bundle 中啓用,不是憑插件名拼接 dsh plugin add。

  1. 在 %USERPROFILE%\.dsh\profiles\<profile>\package.json 中加入依賴與 bundle(開發期可用 link: 指向本地目錄):
{
  "dependencies": {
    "dsh-mimavault": "link:D:/path/to/dsh-mimavault"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "dsh-mimavault"
      ]
    }
  }
}
  1. 在 profile 目錄執行 pnpm install 並重啓 DSH。

  2. external 模式:需 MimaVault v8.35.5 或更高,登錄後托盤勾選 Local API (DSH),確認生成 %APPDATA%\MimaVault\api.json。

  3. 運行環境:package.json 要求 Node >= 22.19.0,peer 依賴 @deepseek-ai/cordis 與 @deepseek-ai/dsh-tools 版本區間見倉庫。

配置

在 profile 的 cordis.patch.yml 中覆蓋插件項,例如:

- id: dsh-mimavault
  name: dsh-mimavault
  config:
    requestTimeoutMs: 8000
    maxResponseBytes: 20000
    allowedHosts:
      - "*.openai.com"
    apiJsonPath: ""
    appPath: ""
    storePath: ""
    enableBuiltinCallApi: false
    updateTimeoutMs: 8000

allowedHosts 爲 vault_call_api 額外放行域名;enableBuiltinCallApi 默認 false,builtin 下不建議開啓。

典型用法

經過上面的步驟連接 external 密匣後,可在會話中讓 DSH 調用工具(具體由模型與 profile 工具策略決定),例如:

  1. vault_search:用服務名或分類縮小條目,再 vault_entry 看端點、用戶名等元數據(無密碼明文)。
  2. 填表:對目標字段調用 vault_copy,在用戶本機剪貼板取用(external 下密匣側約 30 秒條件清除)。
  3. 調第三方 API:在條目已配置 api_endpoint 與密鑰時,用 vault_call_api 發起單次請求,模型只見響應體(受 maxResponseBytes 等限制)。
  4. 雙因素:對帶 TOTP 的條目調用 vault_totp 取當前 6 位碼。
  5. builtin 遷移:在密匣中「導出 CSV(明文)」→ 側欄粘貼並「導入 CSV」;解析在 Host 內完成,不把明文發給模型。不要用「讓 AI 轉格式」的方式導入整庫。

內置庫清空:側欄或 vault_clear 僅發起請求,須在確認框點「確認清空」;執行前會寫 builtin-vault.json.backup。

適用場景與注意

適合誰:已在用或願意用 MimaVault、又需要 DSH 在編排裏引用憑據但不希望祕密進入對話的開發者;可接受本機常駐密匣與手動解鎖的 external 流程。

務必知情:

  • 插件以當前 DSH 進程權限運行;安裝前請閱讀源碼與 MIT 許可證,自行評估信任邊界。
  • external:主密碼不經過 DSH;插件無法代理解鎖。
  • builtin:明文存盤,任何能讀 builtin-vault.json 的程序(含 DSH 的 shell 工具)可見全部祕密;vault_call_api 默認關閉;剪貼板複製依賴 Windows PowerShell,非 Windows 不支持。
  • 同 Windows 用戶下的惡意程序仍可能讀取 API 描述文件中的 Bearer token;設計主要防範 CSRF 與誤操作。
  • vault_call_api 不支持重定向與分頁;兩套數據源切換不會自動遷移條目。

結尾

dsh-mimavault 把「搜條目、複製字段、代發 API、讀 TOTP」收成 DSH 工具,並在 external 模式下把解密與剪貼板寫回留在密匣進程。若你已在 profile 裏用 link: 做本地開發,側欄檢查更新只會提示新版本,需自行拉代碼並重啓 DSH 或重新安裝。

  • 目錄頁:https://www.skillhub.cn/plugins/startime-ltk/dsh-mimavault
  • GitHub:https://github.com/startime-ltk/dsh-mimavault
羽毛球分组比赛记分
小程序二维码

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

小夜