前言¶
在 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 用户:用全局 / 工作区 / 会话三级规则减少每轮固定前缀,并在需要时快速恢复完整组件集。