前言¶
在 DeepSeek Harness(DSH)裏啓用 dsh-genui 後,模型會收到一整套 GenUI 卡片組件的系統說明。官方實現把 46 個組件的 schema 寫進提示詞,體量大約 30,900 字符,約佔整段系統提示詞的一半。多數會話其實只用其中幾類——寫代碼不必帶圖表,純聊天不必帶表格——但默認配置仍每輪把完整說明重發一遍,既占上下文窗口,也可能讓模型在大量組件裏選錯。
社區插件 dsh-genui-scope(維護者 SnakeDream)在系統提示詞組裝階段按 全局 / 工作區 / 會話 三級裁剪 GenUI 段落,被排除的組件目錄、JSON Schema 枚舉和示例片段都不會再發給模型。下面介紹它的定位、安裝方式與典型用法。
這是什麼¶
dsh-genui-scope 是面向 DSH 的插件,分類上屬於模型推理相關能力:它不替模型做推理,而是通過縮小每輪系統提示詞裏的 GenUI 說明,間接改善上下文利用與組件選擇。卡片渲染仍由 dsh-genui 提供;本插件只監聽 system-prompt/assemble,在 dsh-genui 註冊的提示詞 section 上做文本裁剪,不修改 dsh-genui 本體。
- 目錄頁:skillhub.cn/plugins/SnakeDream/dsh-genui-scope
- 源碼與文檔:github.com/SnakeDream/dsh-genui-scope
- 許可證:MIT(package.json 版本 1.6.0)
DSH 生態強調「一切皆插件」;SkillHub 等社區目錄獨立於 DeepSeek / 幻方,並非官方應用商店。安裝前建議自行瀏覽倉庫源碼與許可證,插件以當前 Harness 進程權限運行。
核心功能¶
三級作用域與優先級¶
在 設置 → 組件選擇 中配置:
- 全局:對所有工作區生效
- 工作區:僅對該工作區下的會話生效
- 會話:僅對當前會話生效
優先級爲:會話 > 工作區 > 全局 > 不限制。新建會話時可先進入「新建會話」頁挑選組件再創建,規則會寫入會話;對話中也可讓模型通過 card_components 工具修改(見下文典型用法)。
預設與實測效果¶
README 在默認提示詞(61,836 字符)上給出的實測對比如下(組件數與字符數爲資料原文數據):
| 方案 | 組件數 | 提示詞字符 | 節省 |
|---|---|---|---|
| 不限制 | 46 | 61,836 | — |
lean(文字+表單+表格) |
34 | 46,835 | 24.3% |
form |
32 | 40,574 | 34.4% |
chart |
31 | 40,102 | 35.1% |
table |
21 | 31,362 | 49.3% |
text |
18 | 23,854 | 61.4% |
除 token 與費用外,資料指出組件 schema 噪聲可能導致模型誤選組件,裁剪後更容易選對。
工具 card_components¶
| action | 說明 |
|---|---|
status |
當前生效的層級與組件 |
catalog |
全部可用組件 |
list |
自定義預設 |
use |
套用預設:all / lean / text / form / table / chart |
set |
顯式指定組件列表 |
clear |
清除某層規則 |
配置項 force 默認 ["TinyCard"],表示永遠保留的組件。
狀態與可改配置¶
狀態默認保存在 $DSH_HOME/genui-scope.json。插件配置項(均可修改):
| 鍵 | 默認值 | 說明 |
|---|---|---|
stateFile |
genui-scope.json |
狀態文件名 |
logFile |
genui-scope.log |
告警日誌 |
routePrefix |
/api/genui-scope |
設置頁 HTTP 路由前綴 |
sectionPattern |
genui |
要攔截的提示詞 section 名匹配 |
force |
["TinyCard"] |
永遠保留的組件 |
anchors |
三條中文錨點 | 提示詞裏組件段落的起始標記 |
安裝與啓用¶
要求(README 原文):DeepSeek Harness 0.2.1-rc.5(其他版本未驗證)、dsh-genui 已啓用。package.json 要求 Node >=22。
官方安裝步驟:
- 下載本倉庫(或取得插件目錄的本地副本)
- 在 Harness 裏用插件管理器 安裝該目錄(本地目錄安裝)
- 重啓一次 Harness——host 側提示詞過濾需重新加載;首次安裝必須重啓,之後規則改動即時生效,無需再重啓
資料未給出 dsh plugin add github:... 一類遠程一鍵命令,請勿憑插件名自行拼接。
典型用法¶
圖形界面¶
打開 設置 → 組件選擇。界面總覽見倉庫 assets/overview.png;全局規則、工作區與會話、新建會話等截圖在 assets/ 目錄。
對話中讓模型改範圍¶
可直接用自然語言,模型會調用 card_components:
這個會話只要表格和圖表
把當前工作區設成 lean
場景示例(來自 README)¶
系統提示詞每輪都會重發。對固定用途、長輪次且幾乎不用複雜卡片的會話(例如羣聊式短消息、掛機閒聊),把工作區設爲 text 時,組件說明從約 3 萬字降到不足 1 萬,整段提示詞可從 61,836 字符降到 23,854;同一工作區新開會話會繼承工作區規則。需要卡片時改回對應預設或 all,下一條消息生效,當前輪次不受影響。
原理與注意事項¶
插件在 system-prompt/assemble 上裁剪;若 dsh-genui 關閉或其 section 改名,插件不會產生效果(設置頁仍可選)。若上游改掉提示詞錨點,插件會靜默跳過並在 genui-scope.log 告警。
官方實踐一般不建議在 system-prompt/assemble 裏增刪文本;此處是因爲 dsh-genui 未提供按會話裁剪的接口。下列內容與 DSH 版本綁定,升級後可能失效:會話日誌格式、workspace.json 結構、會話目錄編碼、client 側 settings.section 等;跨版本不保證,問題可先查 genui-scope.log。
結尾¶
dsh-genui-scope 適合已經啓用 GenUI、又希望按場景收緊卡片說明的 DSH 用戶:用全局 / 工作區 / 會話三級規則減少每輪固定前綴,並在需要時快速恢復完整組件集。