前言¶
在 DeepSeek Harness(DSH)里做智能体,常见输出只有纯文本或零散 Markdown。若任务需要表单、滑块、表格图表,或要把「点一下再调工具」做成可控入口,往往要自建前端或绕开 Harness 的工具与审批链路。社区插件 dsh-plugin-intelligent-ui(维护者 losinphantom,分类:客户端)面向 Web profile 的 Harness 对话:让 Agent 按任务在文字、结构化 UI、交互式 UI 之间选择,用严格校验的组件拼装界面,并把界面作为本地计算、授权工具操作和后续 Agent 请求的入口。插件走 Harness 公开扩展点,不 Fork Harness、不改核心 Agent Loop;UI DSL 是数据,模型不能借它执行任意 JavaScript、HTML、CSS 或系统命令。
这是什么¶
- 名称:
dsh-plugin-intelligent-ui(npm 包名同目录) - 版本(资料记载):0.2.0
- 简介:Validated, agent-composed interactive UI inside DeepSeek Harness conversations
- 目录页:https://www.skillhub.cn/plugins/losinphantom/dsh-plugin-intelligent-ui
- 源码:https://github.com/losinphantom/dsh-plugin-intelligent-ui
0.2.0 在 P0(本地交互 UI)之上增加 P1 工具/Agent 联动与持久化操作记录,以及 P2 组件级 Streaming 与 Patch;P3 侧重工程加固与验收(真实模型、权限与审批、重复请求、故障恢复等,详见仓库 docs/VALIDATION.md)。
兼容范围¶
安装与验收前建议对照 README 中的锁定版本:
| 项目 | 核查与运行版本 |
|---|---|
| Harness | @deepseek-ai/dsh@0.2.1-rc.2,Web profile |
| Cordis / React | 4.0.5 / Harness 提供的 React 18.3.1 |
| Node | ^22.19.0 \|\| >=24.0.0;验收使用 24.19.0 |
| 文档 DSL | 1.0 保留原有本地交互;1.1 增加显式外部动作 |
Harness 处于开发者预览阶段;Desktop、TUI、其他 Harness 版本及多 Host 共享操作存储不在该版本验收范围。
核心功能¶
P0:对话内智能 UI¶
无需特殊命令。规划章节(可关闭)向模型提供三种输出形式与组件语法;模型按任务决定是否调用 UI 工具,没有按关键词套整页模板,也不会强制每条回答都生成 UI。
- 普通问答:例如「1 + 1 等于多少?」——预期直接文字回答。
- 本地计算器:控件与受限表达式在浏览器本地运行,滑块变化不发起模型请求。
- 数据比较:可用表格与图表展示用户给出的数据,并注明来源。
P1:外部动作与工具面板¶
默认关闭。启用后,可将已注册的 Harness 工具映射为 capability;点击 UI 后 Host 从当前 Session 保存的 UI 重新解析 capability 与参数,写入操作记录,再提交正常 Agent turn,由模型通过 intelligent_ui_action 执行。配置不会授予工具原本没有的权限;risk: write 走 Harness 原生审批。resultFields 仅开放 canonical result 的指定标量字段(示例中 read 暴露 totalLines,不会自动把文件内容放进 UI)。
P2:逐步生成(Streaming / Patch)¶
Agent 可使用 intelligent_ui_open、intelligent_ui_patch、intelligent_ui_complete、intelligent_ui_cancel,通过工具结果传递完整 checkpoint;组件更新经 Schema、稳定 ID、基线版本与资源预算校验。此版本不实现逐 Token 编译器。
状态与持久化¶
文档与初始 state 等保存在正常 tool/result.meta,历史会话可恢复;本地未提交草稿在当前实例内,刷新恢复初始值。明确提交的请求、审批与执行状态写入 Host storage-domain 账本。刷新、历史回放、热启用均不会自动提交动作;同一 requestId 重试参数变化会被拒绝。
安装与启用¶
本项目未发布到 npm registry,请使用交付的 TGZ;TGZ 已含 Host、Client、类型声明、Schema 和示例,无需先构建。模型账户与凭据沿用 Harness 配置,插件无单独 API key。
# 如尚未安装 Harness:
npm install -g @deepseek-ai/dsh@0.2.1-rc.2
# 初始化或读取 Web profile;已有 profile 不会因此重置。
dsh web --dump-config
dsh plugin --profile web add ./dsh-plugin-intelligent-ui-0.2.0.tgz
dsh web --dump-config
dsh web
默认启用 P0;外部动作和组件流默认关闭。可用交付包内 examples/intelligent-ui.patch.yml,或按 README 编写管理员配置后执行:
dsh web --patch ./examples/intelligent-ui.patch.yml
升级与卸载示例:
dsh plugin --profile web add ./dsh-plugin-intelligent-ui-NEW_VERSION.tgz
dsh plugin --profile web remove dsh-plugin-intelligent-ui
Plugins 页面可管理 bundle 启用状态;支持即时应用的 Web profile 会卸载/恢复贡献,其他 profile 可重启 Host 使配置生效。
典型用法(来自 README)¶
本地计算器
创建一个复利收益计算器:本金用数字输入框,年收益率和年限用滑块;显示期末总额和收益,让结果随输入立即更新。
数据比较
用表格和合适的图表比较这些虚构产品:A 价格199、续航8小时;B 价格249、续航12小时;C 价格179、续航6小时。注明数据来自用户。
工具面板(P1,需先启用 actions)
创建文件操作面板:读取 fixture.txt,允许编辑新内容,点击保存后通过现有工具写入,并遵守审批。先只生成界面,等我点击后才执行。
逐步生成(P2,需先启用 streaming)
逐步生成数量分析面板。先给我数量输入和结果,再添加说明与图表;新增组件时保留我正在输入的值。
配置与安全要点¶
enabledPlanning默认 true;maxDocumentBytes范围 1,024–262,144。- 动作默认超时 60 秒,入队有效期 1 小时;账本全局最多 2,048 条、每 Session 128 条。
- 流默认最多 256 个 generation、每个 256 个 checkpoint,另受累计字节限制。
- 执行前有组件白名单、严格属性、表达式 AST、双端校验,以及主体/Session/工具权限校验;按钮只能引用声明的 action ID。详见仓库
docs/SECURITY.md。
适用场景与注意¶
适合:已在 Web profile 使用 DSH、希望 Agent 在对话内输出可校验的交互界面,并在需要时经 Harness 工具链与审批完成读写的开发者。
注意:
- 插件以当前 dsh 进程权限运行;安装前应阅读源码与 MIT 许可证,并理解 capability 映射不能替代工具真实权限。
- 安装时 Harness 包管理器仍可能访问 npm registry 解析依赖;请使用官方 README 中的 TGZ 路径与命令,勿凭仓库名自行拼接未记载的
dsh plugin add形式。 - 社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;星标等页面元数据以目录为准(资料记载 GitHub 星标为 0)。
结尾¶
dsh-plugin-intelligent-ui 把「Agent 编排 + 校验 UI DSL + Harness 工具/审批」收进同一条 Web 对话链路:本地交互不打扰模型,外部动作与流式 Patch 则在明确边界内复用 Session 与账本。进一步细节见 GitHub README 与 docs/ 下的架构、集成与安全文档。
- 目录页:https://www.skillhub.cn/plugins/losinphantom/dsh-plugin-intelligent-ui
- GitHub:https://github.com/losinphantom/dsh-plugin-intelligent-ui