前言¶
讓智能體寫一份報告,結果通常落在兩個地方:要麼在聊天窗口裏滾兩屏就找不到了,要麼在工作區裏多出一個 .html 文件,之後再沒人打開。前者不留存,後者污染倉庫。
dsh-artifact 針對的就是這個問題。下面介紹這個插件做什麼、怎麼裝、怎麼用。
這是什麼¶
dsh-artifact 是 DeepSeek Harness(DSH)的一款插件,由 Jannchie 維護,採用 MIT 許可證。DSH 的理念是「一切皆插件」,這款插件補上的是「工件」這一環:它爲 DSH 提供 Claude-Code 風格的 artifacts——一個寫入自包含 HTML 的 artifact 工具、一個內置的創作 skill、一個側邊欄導航按鈕,以及一個應用內的沙盒 HTML 工件瀏覽器。
裝好之後,智能體產出的文檔會作爲工件存放在工作區之外,按最新優先排列,跨項目保留,並在應用內直接渲染閱讀。
核心功能¶
artifact 工具¶
插件向智能體暴露一個 artifact 工具,共四個命令:
| 命令 | 參數 | 作用 |
|---|---|---|
list |
無 | 列出全部工件,最新優先 |
read |
path |
讀取單個工件的完整 HTML |
write |
path、content |
創建或替換一個工件 |
delete |
path |
刪除一個工件 |
path 相對於存儲目錄,.html 後綴可以省略。也就是說,write path:"q3-report" 會在存儲目錄下生成 q3-report.html。
內置創作 skill¶
插件註冊了一個 writing-artifacts skill。有了它,智能體生成的 HTML 是真正的文檔:單一閱讀欄、語義化標題、可獨立滾動的表格、跟隨主題的配色,而不是包着三段文字的應用外殼。
應用內工件瀏覽器¶
web 界面裏會多出一個 Artifacts 標籤頁和對應的側邊欄導航按鈕。工件以沙盒 iframe 渲染,點擊進入閱讀,用 ‹ 返回對話。
工件存放在工作區之外¶
工件存儲在 $DSH_HOME/artifacts,默認是 ~/.dsh/artifacts,與 harness 已有的會話和存儲放在同一層。這是刻意的設計:工件跟着人走,不跟着項目走,倉庫也不該堆滿生成的 HTML。
預覽跟隨主題¶
預覽會注入應用的即時顏色 token,工件因此跟隨你的主題——包括被其他插件覆蓋過的主題。
安裝與啓用¶
先執行安裝命令:
dsh plugin --profile web add dsh-artifact
這條命令會把插件加入 web profile。隨後必須重啓 dsh web:插件是在進程啓動時組裝的,不重啓不會生效。
典型用法¶
重啓之後,向智能體提一個值得保留內容的請求,例如:
Summarize this week’s benchmark results as a report.
智能體會調用 artifact 工具把內容寫成工件,文檔隨即出現在 Artifacts 標籤頁。點擊進去閱讀,用 ‹ 返回對話。
配置¶
插件的各項行爲可以在 profile 的 cordis.patch.yml 裏覆蓋:
- id: artifact
config:
# 工件目錄。省略或爲 null 時使用 $DSH_HOME/artifacts。
root: /absolute/path/to/artifacts
# 單次寫入接受的最大字符數。
maxArtifactChars: 400000
# 是否注入關於何時寫工件的系統提示段落。
promptSection: true
# 是否註冊內置的 writing-artifacts skill。
skill: true
# 傳給預覽工件的顏色,疊加在即時主題之上。
# 不帶 -- 前綴的鍵按別名 token 讀取。
palette:
state-business-primary: '#e0552b'
逐項說明:root 省略或爲 null 時使用 $DSH_HOME/artifacts;maxArtifactChars 是單次寫入接受的最大字符數,示例值爲 400000;promptSection 控制是否注入關於何時寫工件的系統提示段落;skill 控制是否註冊內置的 writing-artifacts skill;palette 是傳給預覽工件的顏色,鍵不帶 -- 前綴時按別名 token 讀取。
沙盒限制與寫入邊界¶
渲染側,工件在僅帶 allow-scripts 的 iframe 中運行——無網絡、無同源。外部樣式表、CDN 腳本、webfont、fetch、localStorage 和 cookies 均不可用,因此工件必須內聯全部所需內容。內置 skill 會按這個約束生成 HTML;只有在你手寫工件時纔會真正注意到這條限制。
寫入側,write 被限制在工件存儲目錄內,越界路徑會被拒絕,而不是被保存到瀏覽器無法列出的位置。
另外,如果你想給 DSH 寫自己的插件,倉庫裏的 NOTES.md 提供了實現說明:slot 契約、two-envelope wire 協議,以及四個值得了解的陷阱。
適用場景與注意¶
適合的場景:
- 智能體經常產出值得保留的報告、速查表、總結,希望它們以可讀文檔的形式存在;
- 不想讓生成的 HTML 混進倉庫;
- 希望工件跨項目保留、按時間倒序翻找。
使用前注意:
- 插件以當前 dsh 進程的權限運行。安裝任何第三方插件前,建議先閱讀其源碼與許可證(本項目爲 MIT)。
- 安裝後必須重啓
dsh web纔會生效。 - 工件不能依賴任何外部資源,手寫工件時需要把樣式和腳本全部內聯。
小結¶
經過上面的步驟,智能體的產出就從「聊天裏滾走的一段話」變成了隨時能打開、跨項目還在的文檔。想看源碼或瞭解更多細節,可以訪問:
- 社區目錄頁:https://www.skillhub.cn/plugins/Jannchie/dsh-artifact (獨立社區站點,與 DeepSeek / 幻方無官方從屬關係)
- GitHub 倉庫:https://github.com/Jannchie/dsh-artifact