前言¶
在 DSH (DeepSeek Harness) 的 Web GUI 中,智能體在運行過程中會生成報告、儀表盤、圖表或 CSV 等文件。查看這些產物通常需要手動複製文件路徑到瀏覽器,或者脫離 DSH 的會話上下文。
dsh-artifacts 插件在 DSH 側邊欄新增了一個名爲 dsh-artifacts:library 的標籤頁。它像 Explorer 或 Editor 一樣存在於側邊欄體系中,用於列出代理生成的工件目錄,並在標籤頁內直接預覽文件,支持實時輪詢更新。
核心功能¶
註冊標籤頁
插件通過 dsh-better-sidebar 插件提供的擴展點註冊一個新標籤頁,默認標籤名爲 dsh-artifacts:library。
列表展示
工件列表按最新時間優先排序。每行顯示文件類型徽章、文件名、文件大小和文件年齡。列表支持根據當前聊天會話進行範圍限定。
預覽與操作
點擊列表行可在標籤頁內的 iframe 中預覽文件(使用相對 URL 實現同源加載)。支持的操作包括:
* 在真實瀏覽器標籤頁中打開
* 複製分享鏈接
* 重新加載預覽
* 刷新索引列表
性能優化
列表索引僅在標籤頁激活且面板打開時,每 5 秒輪詢一次。工具欄和行佈局採用固定尺寸,避免因數據變化導致的佈局抖動。
安裝與啓用¶
在終端中執行以下命令進行安裝:
dsh plugin --profile web add github:lucagiftzek/dsh-artifacts
安裝完成後,需要重啓 dsh-web 進程才能激活插件。插件通過 rev 版本號機制,後續對 lib/client.js 的修改在瀏覽器刷新後即可生效。
使用方法¶
配置索引地址
默認的索引 URL 爲 /report/?list=1。若需覆蓋,可在瀏覽器控制台執行:
localStorage['dsh-artifacts:indexUrl'] = '/artifacts/index.json'
索引接口規範
插件需要一個同源 HTTP 端點返回 JSON 索引,格式如下:
{ "count": 2, "items": [
{ "name": "report.html", "url": "/report/report.html", "ext": "html",
"size": 11160, "mtime": 1788934528 }
] }
url 字段可以是相對路徑或絕對路徑。插件具備一定的容錯能力,缺失 badge 或 size 等字段時仍可正常渲染。
代理技能
插件目錄下包含 skills/publish-artifact/SKILL.md,這是一個即插即用的技能文件,指導代理如何按照約定生成工件文件。
架構與注意事項¶
依賴要求
此插件依賴 dsh-better-sidebar 插件。若未安裝該插件,插件不會註冊標籤頁,也不會報錯,而是靜默失效。
服務端要求
插件本身不管理文件系統或定義路由,必須由用戶自行搭建一個返回 JSON 索引的 HTTP 端點。
節點部分設計
lib/index.js 節點部分故意爲空,不導入任何內容。這是爲了防止因宿主環境缺少某些依賴(如 @deepseek-ai/dsh-settings)導致插件安裝失敗或宿主崩潰。
許可證
插件採用 MIT 許可證。使用時請保留版權聲明。如果公開分支,建議在 README 中註明基於 dsh-artifacts 開發。
總結¶
dsh-artifacts 將智能體的文件輸出能力直接集成到了 DSH 側邊欄中,提供了從列表瀏覽到本地預覽的閉環體驗。它依賴於同源 HTTP 端點提供索引,並通過輕量級的客戶端邏輯實現界面展示。
- GitHub 倉庫: https://github.com/lucagiftzek/dsh-artifacts
- 插件目錄: https://www.skillhub.cn/plugins/lucagiftzek/dsh-artifacts