前言¶
在 DSH 的智能体会话里,agent 通常以纯文本回答。当回答需要以界面形式呈现时,纯文本会显得不够直接。dsh-generative-ui 是面向 DeepSeek Harness 的客户端插件:agent 输出 TSX,dsh web 负责实时渲染。
这是什么¶
dsh-generative-ui 的包名是 dsh-generative-ui,当前 package.json 版本为 0.0.2,许可证为 MIT,维护者为 CNSeniorious000。
它让 agent 用 live React interface 代替纯文本回答,并在模型仍输出时流式渲染。插件包含两端:
lib/index.js(node 端):注入 system-prompt、注册generative-uiskill、提供 compiler wasm 和 canvas 文件读取路由。lib/client.js(web 端):接管ui4a/tsx代码块,在浏览器内编译 TSX,并挂载 canvas panel。
核心功能¶
- Inline 渲染:
ui4a/tsxfenced block 会在回复段落之间就地渲染。 - Canvas 渲染:
ui4a/canvases/<id>.ui4a.tsx文件会在对话旁的面板打开,并可跨轮次保留。 - 流式渲染:生成的组件在模型继续输出时持续渲染。
- 依赖与主题:生成的代码可在渲染时从
esm.sh解析 npm 导入,共享宿主单个 React 实例,并使用应用设计令牌适配明暗主题。 - 提示分层:
src/prompt.ts每次请求携带触发、围栏语法、canvas 路径和颜色令牌;src/skill.ts按需加载,并承载判断与布局。
安装与启用¶
从 registry 安装:
dsh plugin --profile web add dsh-generative-ui
如需预览未发布 commit:
dsh plugin --profile web add https://pkg.pr.new/CNSeniorious000/dsh-generative-ui@main
如在本地 checkout 中开发:
dsh plugin --profile web add link:/path/to/dsh-generative-ui
安装后启动 dsh web。如果 dsh web 已经在运行,需要重启,因为插件在启动时挂载,且没有热更新。
关于版本:从 npm registry 安装会使用 caret;README 示例说明 ^0.0.1 在 0.0.x 版本下只匹配 0.0.1。如需补丁版本,可改为 ~0.0.1。该插件发布来自 CI over OIDC,tarball 带有 npm provenance。
典型用法¶
1、Inline 用法:让 agent 在回复中输出 ui4a/tsx fenced block,内容会在回复段落之间就地渲染。
2、Canvas 用法:让 agent 生成 ui4a/canvases/<id>.ui4a.tsx 文件,内容会在对话旁的面板打开,并跨轮次保留。
3、如果模型没有生成 UI:先检查 agent preset。minimal 预设不会启用 skill 工具;应使用 standard,或复制预设并加回 tool-skill。
4、本地开发:
bun install
bun run check
bun run build
适用场景与注意¶
这个插件适合在 dsh web 中需要让 agent 生成 live 界面,而不是只返回纯文本的会话。
插件配置声明 client 平台为 web,并注入:
@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-conversation
使用前注意:
- 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
- 许可证为 MIT,当前
package.json版本为0.0.2。 - 生成的代码会依赖 npm 导入,并在渲染时从
esm.sh解析。 - 如果会话使用
minimalpreset,skill工具不会被启用,模型不会被告知该格式;改用standard,或复制预设并加回tool-skill。 - 插件没有热更新,新增安装后需要重启
dsh web。
结尾¶
dsh-generative-ui 的价值在于把 agent 回答从纯文本扩展到可流式渲染的 TSX 界面,并提供 inline 与 canvas 两种呈现位置。
GitHub:https://github.com/CNSeniorious000/dsh-generative-ui
插件线索给出的目录页:https://www.skillhub.cn/plugins/CNSeniorious000/dsh-generative-ui(该 URL 未出现在已抓取 README/package.json 正文中)。