前言¶
在 DeepSeek Harness(DSH)裏跟智能體多輪對話,往往會落下一批真實交付物:Markdown 報告、單文件 HTML 儀表盤、PDF、表格和 Office 文檔。它們通常堆在同一個工作區裏,Harness 側欄並沒有按「哪次對話寫了什麼」來歸檔的入口,要找回上週某次會話的報告,只能自己在磁盤裏翻路徑。
社區插件 dsh-doc-panel(維護者 leobasic)在側欄增加 Documents 面板:按會話索引產出文件,支持瀏覽、即時搜索和收藏,並在應用內預覽,無需另開文件管理器。分類爲客戶端插件;當前 GitHub 星標爲 0,許可證 MIT,package 版本 0.1.1(以倉庫 package.json 爲準)。
這是什麼¶
一句話:面向單次對話的文檔瀏覽器——把各會話產生的文檔歸到對應對話下,可搜索、可預覽。
實現上拆成 Host(index.js,Node 內置模塊)與 Client(client.js,Harness Web 內 React),由 cordis.patch.yml 接線;無構建步驟、無運行時 npm 依賴。要求 Node.js ≥22(package.json engines 寫明 ≥22.19.0),在 DSH Desktop 0.2.2-rc.1 與 Node 24 上做過測試;需已安裝帶 plugin_manager 工具的 DSH(dsh 引擎約束見 package.json)。
核心功能¶
下面能力均來自項目 README,未列出即視爲資料未承諾。
按會話分組與總覽¶
- Conversation folders:每個會話一張卡片,卡外展示摘要:文檔數量、總大小、相對更新時間、類型構成。
- Dashboard:會話數、文檔數、收藏數、近 7 天指標(含柱狀 sparkline)、文檔類型環形圖、最近更新列表。
搜索與收藏¶
- Instant search:輸入時過濾會話標題、文檔名與路徑;純客戶端,不索引或搜索文件正文。
- Favorites:在列表或預覽頭標星;持久化到磁盤,重啓保留;源文件已刪除的項仍顯示爲不可用且無法打開。
預覽與歸屬¶
- Inline previews:Markdown 渲染;HTML 沙箱 iframe;PDF 嵌入;純文本/源碼;Office 提供打開/下載卡片;Markdown 與 HTML 可在預覽/源碼間切換(中文界面爲「預覽 / 源碼」)。
- Accurate grouping:從 session log 中的
write、edit、present等寫能力工具參數提取路徑,並對工作區做過濾掃描;子 agent 會話摺疊進根會話。 - Native look:僅用 Harness 主題 token;圖表爲 SVG/CSS,無圖表庫。
- Quiet by design:無出站網絡、無遙測、Host 僅 Node 內置;UI 支持英文與簡體中文,跟隨 Harness locale。
安裝與啓用¶
前提:DSH 已具備 plugin_manager。部分操作可能需要 Full access 或審批提示。
若當前 DSH 構建支持從 git 規格安裝 bundle,可直接指向 GitHub 倉庫:
plugin_manager({ action: 'install_bundle', target: 'https://github.com/leobasic/dsh-doc-panel' })
若不支持,需將 target 指向本機上的插件目錄絕對路徑(README 推薦的 local checkout 流程;具體路徑以你的環境爲準),例如:
plugin_manager({ action: 'install_bundle', target: '/absolute/path/to/dsh-doc-panel' })
包發佈到 npm 後,也可按包名安裝(資料註明 npm 包僅含 Harness bundle 文件,運行仍依賴 DSH):
plugin_manager({ action: 'install_bundle', target: 'dsh-doc-panel' })
無構建步驟,文件按倉庫原樣加載。卸載:
plugin_manager({ action: 'remove_bundle', target: 'dsh-doc-panel' })
典型用法¶
- 點擊左側邊欄的 documents 圖標。
- 儀表盤展示產生過文檔的會話;點會話卡片進入該會話文件夾。
- 點文檔進入預覽:Markdown/HTML/PDF/Office 等按類型處理;可用預覽/源碼切換。
- 在文檔或預覽頭標星;通過收藏分段控件與收藏夾卡片查看;搜索過濾全面板;刷新按鈕觸發重新索引。
首次全量掃描會讀取 session 語料,可能稍慢;之後走緩存會快許多。
可選配置¶
插件行可附帶可選 config 對象,鍵均可省略。默認擴展名含 .md、.html、.pdf、Office 常見後綴等;.csv/.txt 需自行加入 extensions 纔會掃描與預覽。
| Key | 默認 | 用途 |
|---|---|---|
extensions |
見 README 默認列表 | 掃描與預覽的類型 |
maxFiles |
5000 |
單次掃描收集文件上限 |
maxDepth |
6 |
每個會話工作區向下遍歷的最大深度 |
cacheTtlMs |
60000 |
內存/持久化索引視爲新鮮的時長 |
cachePath |
null |
索引緩存路徑;null 時爲 <defaultDirectory>/.dsh-doc-panel/index.json |
favoritesPath |
null |
收藏存儲;null 時爲 <defaultDirectory>/.dsh-doc-panel/favorites.json |
timeoutMs |
180000 |
單次掃描硬超時;超時返回部分索引且 diag.complete: false |
warmOnStartup |
true |
激活後後臺預熱索引 |
<defaultDirectory> 爲 Harness 默認工作目錄(常規安裝爲 profile 目錄;回退爲 ~/.dsh)。完整說明見倉庫 docs/configuration.md。
示例片段:
- id: dsh-doc-panel
name: dsh-doc-panel
config:
extensions: ['.md', '.markdown', '.html', '.htm', '.pdf', '.docx', '.doc', '.xlsx', '.xls', '.pptx', '.ppt']
maxFiles: 5000
maxDepth: 6
cacheTtlMs: 60000
cachePath: null
favoritesPath: null
timeoutMs: 180000
warmOnStartup: true
工作原理(簡要)¶
Host 通過 sessionQuery 讀取 session 語料,從日誌提取標題、時間與文檔路徑信號;再按配置的 extensions 掃描各會話工作區(跳過 node_modules、.git、.asar、點目錄等)。文件按四級規則歸屬到會話;無法歸屬的不展示。索引緩存在內存並原子寫入 JSON;POST api/dsh-doc-panel/list 提供列表,read/file 在允許列表內提供預覽。Client 註冊側欄入口與主面板;HTML 預覽使用 sandbox="allow-scripts allow-downloads" 的 iframe。
更細的流程與數據流圖見倉庫 docs/architecture.md。
適用場景與注意¶
適合誰:長期在 DSH 裏產出報告、儀表盤、PDF 等文件、需要按對話回溯交付物的開發者。
隱私與安全(README 摘要):插件不做外網請求與遙測;預覽路徑來自索引白名單。
運行權限:插件與當前 DSH 進程權限一致。安裝前請自行查看源碼與 MIT 許可證,確認 plugin_manager 安裝源可信。DSH 生態強調「一切皆插件」;社區目錄 SkillHub 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-doc-panel 把「這次對話生成了哪些文件」收進 Harness 側欄:總覽、按會話文件夾、即時搜索、收藏與內聯預覽,索引邏輯綁定 session 與工作區掃描,並刻意保持無額外依賴與無出站流量。
- 目錄頁:https://www.skillhub.cn/plugins/leobasic/dsh-doc-panel
- 源碼與 README:https://github.com/leobasic/dsh-doc-panel