用带类型字段和校验的表单向用户提问并取回 JSON 答案
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Zekilou/dsh-ask-form该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 34 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包@zekilou/dsh-ask-form(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/8 09:42:18
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 14种类型化字段
- 校验并取回JSON答案
面向 DeepSeek Harness 智能体的结构化表单问题:14 种类型化字段类型、条件、验证、定向重新询问,以及类型化 JSON 答案。
README
由 DeepSeek 最新模型翻译生成dsh-ask-form
DeepSeek Harness 的社区插件:让模型把结构化问题当成一份表单来问 —— 带类型的字段、条件与校验、只重问失败项 —— 并拿回带类型的 JSON 答案。
自带的 ask_user_question 是一个扁平选项列表,一页一题。ask_form 补上了字段类型、跨字段约束和"一次提交",并且在无法渲染它的界面上自动降级为自带问答流程。
能力
- 14 种字段类型 —— confirm、single、multi、text、longtext、number、integer、date、tags、scale、slider、ranking、matrix、budget
- 条件与校验 —— visible_if、validate(白名单表达式语言,绝不用 eval)、pattern、max_length、min/max、sum_to
- 只重问失败项 —— 每轮只补问没答对/没答的字段,上限由 max_rounds 控制
- 类型化结果 —— scale/slider/number → 数字;ranking → 有序数组;matrix → {行: 选择};budget → {项: 数字};tags → 字符串数组
展开完整文档(README 剩余 1 节)
dsh-ask-form
DeepSeek Harness 的社区插件:让模型把结构化问题当成一份表单来问 —— 带类型的字段、条件与校验、只重问失败项 —— 并拿回带类型的 JSON 答案。
自带的 ask_user_question 是一个扁平选项列表,一页一题。ask_form 补上了字段类型、跨字段约束和"一次提交",并且在无法渲染它的界面上自动降级为自带问答流程。
能力
- 14 种字段类型 —— confirm、single、multi、text、longtext、number、integer、date、tags、scale、slider、ranking、matrix、budget
- 条件与校验 —— visible_if、validate(白名单表达式语言,绝不用 eval)、pattern、max_length、min/max、sum_to
- 只重问失败项 —— 每轮只补问没答对/没答的字段,上限由 max_rounds 控制
- 类型化结果 —— scale/slider/number → 数字;ranking → 有序数组;matrix → {行: 选择};budget → {项: 数字};tags → 字符串数组
- 预设问卷包 —— requirement-intake、design-choice、release-gate、incident-intake,用 pack_args 调参
- 默认带"其他" —— single、multi、tags 默认接受自由文本(allow_other: false 可关闭)
- 逃生舱 —— mode: "script" 可在 Web 端渲染自定义 React 元素;其它界面由 script.fallback 决定行为
- 优雅降级 —— 没有本插件渲染器的界面仍会把每个字段当成普通问题发出,结果里以 renderer: "generic" 如实标注;script 模式则明确报错而不是静默降级
安装
前提:Harness profile 里有 plugin_manager 工具(web profile 自带)。
1. 安装 bundle —— 在 Harness 里让 agent 调用,或直接调用 plugin_manager:
action: install_bundle
target: github:Zekilou/dsh-ask-form
本地克隆的话,把 target 换成该目录的绝对路径:/absolute/path/to/dsh-ask-form。
2. 刷新一次 Harness Web 页面,让客户端 bundle(client.js)注册进来。
3. ask_form 工具就会出现在 ask_user_question 旁边。
用法
一次调用就是一份表单。字段按声明顺序展示;按惯例,列表里的第一个选项是推荐项。
{
"title": "运行时选型", "intro": "选运行时,并给评价维度分配权重。",
"fields": [
{ "name": "runtime", "type": "single", "label": "运行时",
"options": ["Node 22 (Recommended)", "Bun", "Deno"] },
{ "name": "needs_wasm", "type": "confirm", "label": "需要 WASM 吗", "visible_if": "runtime == 'Bun'" }, { "name": "weights", "type": "budget", "label": "维度权重(合计 100)",
"options": ["性能", "生态", "体积"], "sum_to": 100 },
{ "name": "priority", "type": "ranking", "label": "优先级排序",
"options": ["尽快交付", "尽量小", "可移植"] },
{ "name": "scores", "type": "matrix", "label": "逐维打分",
"rows": ["性能", "成本"], "options": ["高", "中", "低"] }
],
"notes": true
}
一行调用一个现成访谈:
{ "pack": "requirement-intake", "pack_args": { "topic": "缓存层" }, "notes": true }
返回的是类型化数值加上来源信息:
{ "status": "answered", "rounds": 1, "renderer": "form",
"values": { "runtime": "Bun", "needs_wasm": true,
"weights": { "性能": 50, "生态": 30, "体积": 20 },
"priority": ["可移植", "尽快交付", "尽量小"],
"scores": { "性能": "高", "成本": "低" } },
"notes": "…" }
status 取值:answered、incomplete、cancelled、aborted、no_answerer、unavailable、script_error。
实现
两个半边,无构建步骤。
Host 半边(index.js) 在既有的 ctx.userQuestions seam 上注册 ask_form 工具:把类型化表单编译成普通的 AskUserQuestionItem[](所以任何应答面都还能作答),并把完整规格通过标记题的 intent 带给自己的渲染器;随后既解码渲染器的 JSON 信封,也解码普通选项/标签答案,在 Host 侧校验,并只补问失败项。
Client 半边(client.js) 在 conversation.composer chain 里注册一个低优先级条目:只有当某个问题带着本插件的 intent.kind 时才接管,把整份表单渲染成居中的浮层(react-dom portal + 原生 Modal 几何),并以 JSON 信封作答。其它任何待答请求(包括 plan review)都返回 null,仍由自带 composer 处理 —— 所以装上这个 bundle 不会改变自带流程。
几个值得一提的行为:
- wire 必须是无损 JSON —— 规格要能原样通过 JSON 往返;一个"值为 undefined"的属性会让 Remote event 网关拒收整个请求。
- 自证探针 —— 标题为 DSH_ASK_FORM_PROBE 的表单会被自动作答,回传一份 DOM 报告(卡片矩形、计算样式、elementFromPoint 命中测试)。这个插件就是靠它在没有浏览器自动化的情况下定位问题的,以后诊断坏掉的渲染面也仍然有用。
- 提交看门狗 —— 答案 10 秒内没送达(连接被挂起或替换)就自动解开按钮并写明原因,而不是永远卡在"提交中…"。
- bfcache 提示 —— 从后退/前进缓存恢复的页面已经失去了承载该请求的 socket,卡片会直接说明,而不是让点击无声失效。
自验
两套独立脚本,不需要装 monorepo,也不需要浏览器:
node tests/host.test.mjs # 编译 -> 解码 -> 校验 -> 多轮 -> 取消
node tests/client.test.mjs # 渲染树、标记选择器、提交信封
它们用桩 React(真实 React 由页面提供)驱动真实组件树,因此断言的是结构与协议,不是像素。tests/client.test.mjs 从 package.json 读取 bundle id,所以改名不会再让它们失配。
兼容性
- Host 半边需要 ctx.tools 与 ctx.userQuestions。
- Client 半边需要 conversation.composer chain,以及作为 shell seed word 的 react-dom(Web 端都有)。
- 针对 0.2.0-rc.2 时代的 pre-stable @deepseek-ai/dsh-* 包编写,这些 API 可能变动。
有意偏离自带问答卡的地方
- 浮层是带遮罩的居中模态,不是 composer 接管位。
- 点遮罩不关闭、Esc 也不取消 —— 避免一次误点毁掉填了一半的表单。
归属
客户端样式改写自 MIT 许可的 Harness 客户端包,类名统一改到本插件前缀下:
- @deepseek-ai/dsh-client-ui-primitives —— Button、Input、Tag、SegmentedControl、Modal 几何
- @deepseek-ai/dsh-client-ui-user-questions —— 问答卡结构、选项行、推荐标记
详见 THIRD_PARTY_NOTICES.md。
许可
MIT —— 见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Zekilou/dsh-ask-form
用带类型字段和校验的表单向用户提问并取回 JSON 答案
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这是你的仓库?认领条目