gjunyoung/dsh-library:給 DSH 掛一塊本地文件資料庫

前言

用 DSH 跑智能體時,會碰到一個很具體的麻煩:agent 交付的文檔、生成的圖片,多數情況下散在工作區裏,過後要麼找不到,要麼要手動挪地方。會話裏的附件是會話作用域的,關掉這條會話就沒了入口。要達到「上傳、瀏覽、預覽、收藏、再附件回聊天」這一串動作,現在往往要靠手工建目錄、手工傳文件,流程割裂。

下面介紹的插件給 Harness 補一塊全局的文件資料庫,把這些動作收斂到面板裏完成:上傳和管理都在側邊欄底部的資料庫面板裏,chat 側也能把庫裏的文件作爲附件發出。

這是什麼

gjunyoung/dsh-library 是一個面向 DeepSeek Harness 的本地文件庫插件,維護者爲 gjunyoung,社區目錄給它的分類是「記憶」。定位一句話:在不改 Harness 本體的前提下,給當前 profile 加一個上傳、瀏覽、預覽、收藏、批量導出,並且和聊天打通的文件庫。

它是純插件實現:客戶端半邊只允許 require('react'),與 Harness 的交互一律通過 slot 註冊和 loopback HTTP 完成,因此不需要改 Harness 源碼。目錄頁顯示星標爲 0,屬於新出現的項目。

核心功能

下面按 README 裏列明的能力介紹,不做擴展。

  • 上傳:支持按鈕上傳和拖拽,單文件上限 200 MB,同名文件自動加序號。
  • 瀏覽:網格 / 列表兩種視圖,按時間 / 名稱 / 大小排序,支持搜索,分類包括全部 / 文件 / 圖片 / 視頻 / 音頻 / 收藏。
  • 預覽:文本、Markdown、代碼、HTML(沙箱渲染 + 源碼切換)、圖片(內嵌預覽 + 全屏燈箱,支持滾輪縮放、拖動、旋轉、下載、刪除)、PDF,Office 文件走 PDF。
  • 收藏:可以收藏 / 取消收藏,收藏夾(文件夾)分組,默認「未分類」。
  • 批量:勾選、Shift 區間、全選、ZIP 打包下載、移到文件夾、發送到當前聊天、刪除。
  • 聊天集成:輸入框左側「+」可以從資料庫選文件加入草稿附件;agent 通過 present 交付的文件自動入庫,並記錄來源會話。
  • 存儲管理:設置頁可以查看位置與佔用、遷移到新目錄、重建索引。

安裝與啓用

前提是本機已安裝 DeepSeek Harness,並有一個可用的 profile。官方 README 給出的安裝方式是先把倉庫拿到本機,再從插件入口掛載,不是一條命令行的插件安裝:

1、把倉庫克隆或下載到任意位置,路徑可以包含空格:

git clone https://github.com/gjunyoung/dsh-library.git

2、打開 Harness → 設置 → 插件 → 安裝插件包,填入該目錄的絕對路徑,或者 npm pack 生成的 .tgz 路徑。

3、在插件列表裏啓用「資料庫」。

4、重啓 Harness。

首次啓動會在 ~/.dsh/library 創建存儲目錄,Windows 下是 C:\Users\<你>\.dsh\library。README 提示,安裝入口在不同版本里名稱可能略有差異(「安裝」「添加插件」等),本質是把該目錄作爲當前 profile 的一個本地依賴。

典型用法

先打開面板:點側邊欄底部的資料庫圖標。上傳區支持拖拽;列表右側的「…」菜單提供預覽、下載、收藏、移到文件夾、刪除。

預覽抽屜的行爲按文件類型區分:圖片和 PDF 可以放大;HTML 默認渲染,可以切源碼;Office 文件首次打開時轉換一次,之後走緩存。例如打開一個 .docx,首次會經過 Harness 內置的轉換能力轉成 PDF 顯示。

收藏的入口在「…」裏,點的「收藏」會打開文件夾選擇器,已收藏的文件顯示「取消收藏」。收藏的根層是文件夾列表(未分類 + 各收藏夾),進入文件夾後搜索框生效。

批量操作在面板底部的懸浮條上:全選 / 取消全選、下載(ZIP)、移到文件夾、發送到聊天、刪除。發送到聊天對應聊天集成的那一條,把勾選的文件作爲附件發到當前會話。

存儲與維護

存儲目錄的結構如下:

~/.dsh/library/
├─ index.json          記錄(文件名、大小、哈希、來源、收藏、所屬收藏夾)
├─ index.backup.json   上一次的索引備份
├─ blobs/<2>/<sha>.bin 按內容尋址的文件本體(同內容只存一份)
├─ orphan/             失去索引記錄的字節(不會被自動刪除)
├─ tmp/                臨時文件、Office 轉換緩存
└─ thumbs/             預留的縮略圖目錄

備份是複製整個目錄,恢復時放回同一位置。遷移走 設置 → 資料庫 → 填入新目錄絕對路徑 → 遷移,會搬運文件、校驗後刪除舊目錄裏的庫數據,並記住新位置,重啓仍生效。重建索引用磁盤上的字節重寫 index.json,適用於索引損壞或手動動過目錄的情況;索引裏沒有的文件會以 recovered-<hash前8位> 出現,原名與收藏信息無法恢復。

適用場景與注意

適合這樣一類用法:已經有 DSH 和可用 profile,希望把 agent 交付物和常用文件集中管起來,並且要在聊天裏反覆引用庫裏的文件。不願意改 Harness 本體的,這個插件走的是純插件路徑。

幾個需要先知道的點。Office 只走 PDF:docx / xlsx / pptx 由 Harness 內置的轉換能力轉成 PDF 顯示,不解析原始表格,Excel 的公式、圖表不會單獨渲染。HTML 是單文件預覽:在沙箱 iframe 中以 srcdoc 渲染,腳本可運行,但讀不到應用數據、也訪問不到外網,./style.css 這類相對引用不可用。預覽是頁內抽屜:Harness 右側欄的文檔預覽是會話作用域的,資料庫是全局面板,因此預覽放在面板內部的抽屜裏。自動入庫只認交付:agent 用 present 交付的文件會自動入庫,write / edit 直接寫進工作區的文件不會自動入庫,這是爲了避免把臨時文件都塞進來。批量收藏未提供,收藏走單條操作。

另外,插件運行在當前 DSH 進程的權限下,並且安裝方式是把本地目錄作爲 profile 依賴掛載。安裝前建議先讀一遍源碼,確認 index.js(host 半邊)和 lib/ 裏的存儲邏輯是否符合預期;許可證是 MIT(© 2026 gjunyoung),允許自由使用、修改、分發,軟件按「原樣」提供。

結尾

這個插件的價值在於把「文件管理」這件事收進了 DSH 的面板裏,而不是另開一套工具:上傳、瀏覽、預覽、收藏、批量導出和聊天附件在同一次交互裏完成,存儲位置和索引也可以自行維護。它依賴 Harness 內置的 Office 轉換和沙箱渲染能力,有明確的能力邊界,用之前按上面的注意點核對。

  • 目錄頁:https://www.skillhub.cn/plugins/gjunyoung/dsh-library
  • GitHub:https://github.com/gjunyoung/dsh-library

(社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。)

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

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

小夜