dsh-artifacts: DSH 側邊欄工件管理插件

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

小夜