dsh-plugin-intelligent-ui:在 DSH 对话中组合可校验的交互式 UI

前言

在 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 工具链与审批完成读写的开发者。

注意:

  1. 插件以当前 dsh 进程权限运行;安装前应阅读源码与 MIT 许可证,并理解 capability 映射不能替代工具真实权限。
  2. 安装时 Harness 包管理器仍可能访问 npm registry 解析依赖;请使用官方 README 中的 TGZ 路径与命令,勿凭仓库名自行拼接未记载的 dsh plugin add 形式。
  3. 社区目录 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye