它解决什么问题
通用对话界面是按「一问一答」设计的。一旦需要同时权衡几个变量,或者要把上一轮的选择带进下一轮,文字就不够用了。
这个插件让 Agent 在文字不够用时,为当前任务现场生成一个聚焦的 React 界面,并把界面里的选择保存下来、延续到下一个 Agent 轮次。它服务的是「结构事先说不清」的场景 —— 模拟器、空间工具、源码浏览器、多步骤应用 —— 而不是把答案套进固定卡片。
取舍也很明确:生成代码比固定组件目录自由得多,但项目有意只服务 DeepSeek Harness,不做跨客户端的 UI 协议。
核心功能
- 任务专用界面:Agent 直接写 React + TypeScript,而不是填一套组件目录,因此模拟器、实验台这类非标准形态也能做。
- 状态延续:界面里保存的选择、表单答案、草稿或进度,下一轮 Agent 会读取并继续任务。
- 多入口共享同一份状态:Inline、Canvas、全屏与 localhost 是同一任务状态的不同入口。
- 失败不会污染可用版本:构建或源码检查失败的候选不会替换上一个可用版本;启动崩溃的版本会被隔离,并在可能时回滚。
- 设计语言可换:在 设置 → 插件 → 插件配置 里可选 material-3、apple-human-interface、shadcn-ui,也可以导入自定义 DESIGN.md。它只控制视觉语言,不限制页面结构。
安装
需要 Node.js ^22.19.0 || ^24.0.0,以及一个受支持的 DeepSeek Harness Web profile。
dsh plugin --profile web add dsh-plugin-genui
dsh --profile web
也可以用通用入口安装:
npx @deepseek-ai/dsh plugin add pengyue-polaron/deepseek-harness-genui
两点需要注意:v0.15 支持 Inline、Canvas、全屏与 localhost,不支持 TUI 与 headless;本地编译器走 WebAssembly,不需要批准安装脚本,使用者也不需要在机器上装 Chrome 或 Chromium。
怎么用:一个完整闭环
- Agent 为当前任务编写并构建 React + TypeScript 页面。
- 用户保存选择、表单答案、草稿或进度等有意义的结果。
- 下一轮 Agent 读取这些值并继续任务。
- 页面必须声明它要用到的工具和公开 HTTPS 接口;Harness 按任务授权,未声明的调用会被拒绝。
后续修改会更新同一个页面,而不是每轮新建一个。真正值得验收的也不是「页面出现了」,而是下一轮 Agent 能不能接着刚才的操作继续做。
什么时候该用界面,什么时候不该
适合:讲清复杂关系、收集相互关联的选择、在工具工作流中继续处理。
不适合:普通问答、改写、摘要和简单列表 —— 这些仍然应该只返回文字。
README 给的三个典型例子是:选择日历时段、调整光合作用实验的四个因果变量、把基于真实源码的 CLI 解释变成文件 / 函数 / 分支都可探索的本地页面。
试一下
新建一个 Web 会话,复制下面任意一段提示词:
帮我规划一个周六行程,包含美术馆、滨江花园和晚餐。做成可以直接调整时间的界面,
并让我能把花园设为下雨时跳过。
做一个可交互的双缝干涉实验,让我调整波长、缝间距和屏幕距离,并实时观察条纹变化。
在界面里保存之后,再接一句:
我刚才在界面里选了什么?请按保存结果继续。
安全边界(建议先读)
生成代码跑在 opaque-origin 沙箱中。可信的父页面保管真实的任务 capability token,只代理三类调用:已保存状态、已声明工具、已声明的无凭据公开 HTTPS 接口。MCP 凭据不会进入生成代码。临时链接与授权 7 天后过期,任务状态在最后一次更新 7 天后过期。
这条边界保护的是宿主凭据与能力,不等于恶意代码可以安全读取已经授权给它的数据。不要把秘密写进生成页面的状态里,也不要授权页面读取不应展示的数据。
现状数据
- GitHub Stars:114
- 周下载量:713
- 中文说明:已汉化
- 本站实装验证:未通过(L4)
- 安全扫描:中风险
后两项以插件详情页的最新结论为准。实装验证的「未通过」可能是环境侧原因(例如安装超时),不一定代表插件本身有缺陷 —— 判据说明见本站 /verification 页面。
适合谁用
需要为具体任务定制交互界面、且要求多轮之间状态不丢的开发者;尤其是想把「人的选择」当作任务输入的多步骤流程。
不适合谁用
只想让 AI 输出文字的人;以及需要在 TUI 或 headless 环境下使用的人(v0.15 不支持)。
常见问题
装不上怎么办? 先确认 dsh 已是最新版本,再重试安装命令;仍失败可到插件页查看「安装兼容性检查」。
装了不生效? 部分插件需重启 dsh 会话或重新加载配置才生效;本插件还需要在 Web profile 下使用。
界面上的选择下一轮丢了? 确认是在界面里点了保存,而不是只在输入框里描述了一遍。
页面样式能改吗? 能。设置 → 插件 → 插件配置 里换内置设计,或导入自定义 DESIGN.md。
本文依据插件 README 与库内实装验证数据整理,具体用法以插件最新版本为准。