前言¶
DeepSeek Harness(DSH)里,智能体通过 ask_user_question 弹出交互式问答,让用户点选选项或填写自定义内容。选项文字往往只能概括意图,具体约束、例外情况或上下文仍要靠对话里再补一句——既打断节奏,模型也未必在下一轮准确关联到刚才的选择。
下面介绍的 dsh-question-note 是社区维护的客户端插件:用户点选某个选项后,在该选项正下方出现可选的补充说明输入框;填写内容与选中选项一并传给模型,无需改协议、无需动宿主校验逻辑。
这是什么¶
- 仓库: buaaflyaway/dsh-question-note
- 目录页: SkillHub 插件页
- 维护者: buaaflyaway(npm 包作者字段为 NedFlanders)
- 定位: DSH「交互式问答」弹窗增强;纯浏览器端 Cordis 插件,不接管 plan-review、审批、超时续答等官方流程。
插件在保留官方 QuestionComposer 样式与交互的前提下,为每个被选中的选项提供独立的补充输入区域。
核心功能¶
与原版一致的部分¶
- 弹窗样式、功能、交互基于官方组件的移植,沿用同一套 CSS 令牌与几何。
- 底部「其他(自定义输入)」行保留,仍是独立的自由回答入口(单选打字清空已选、多选与勾选并存等语义与原版相同)。
- 计划审查类卡片、审批卡片、超时后续答、已结算回答回看等由官方组件处理,本插件不接管。
按选项独立的补充说明¶
- 每个被选中的选项下方各有一个自己的补充输入框,互不共享;取消勾选时输入框隐藏,文字保留,重新勾选会恢复。
- 单选题换选选项时,各选项各记各的,不会混用。
提交给模型的答案格式¶
提交时 JSON 结构不变:
{
"answers": [
{
"id": "...",
"selected": ["选项文字"],
"custom": "…"
}
]
}
custom 的组装规则(README 原文):
- 单选:
custom为补充文本原文。 - 多选:每个填写了补充的选项占一行,格式为「选项文字: 补充」;底部自由回答行若有内容,追加在最后。
- 未填补充说明:行为与原版完全一致。
与原版唯一的行为差异¶
启用后,单选点选项不再自动跳到下一题(原版会自动跳转,用户来不及填补充说明)。用户需在该题输入框内回车,或点「下一题」按钮;最后一题回车即提交。
实现要点(二次开发参考)¶
- 在浏览器端向
conversation.composer链式槽以priority: -10注册增强组件(官方默认为 0);链选举规则为数值小者先跑、第一个select非 null 者胜出,从而优先渲染通用问题卡。 - 鸭子类型失配时
select返回 null,安全降级为官方弹窗。 - 宿主端
userQuestions.answer()仍只校验「每题恰好回答一次」,不禁止selected与custom并存。
安装与启用¶
面向 DSH 0.2.0-rc 族(@deepseek-ai/* peer ^0.2.0-rc.1)。npm 包当前版本为 0.3.0,许可证 MIT,Node >= 20。
从源码构建(可选):
pnpm install
pnpm run build # 产出 lib/index.js(宿主半)与 lib/client.js(浏览器半)
pnpm run check # 产物语法检查
安装到 desktop 配置(会写入 dsh.profile.bundles,需重启 DSH 生效):
dsh plugin --profile desktop add <本目录路径或 npm 包名>
安装命令以 README 为准;包名可用 npm 上的 dsh-question-note。
典型用法¶
本插件不新增 CLI 或独立配置项,启用后凡触发 DSH 标准「交互式问答」弹窗的场景都会生效——例如智能体工具调用 ask_user_question、用户在弹窗中点选选项并在下方补充说明,提交后模型收到带 custom 的同一 JSON 答案。
操作步骤可概括为:
- 按上文安装并重启 DSH。
- 在对话中等待交互式问答弹窗出现。
- 点选选项,在选项下方输入补充说明(可选)。
- 单选:回车或点「下一题」进入下一题;最后一题回车提交。多选:按弹窗原有流程勾选与提交。
若官方弹窗组件在后续 DSH 版本中内部结构变化,可能需要同步调整插件内 src/client/carrier.ts 与 src/client/composer.tsx。
适用场景与注意¶
适合谁
- 需要在「选 A / 选 B」之外,把与具体选项绑定的细节一次性交给模型的 DSH 用户与插件作者。
- 希望零协议改动、沿用现有
answersJSON 的多选 / 单选流程。
安装前请注意
- 插件以当前 dsh 进程权限在客户端运行;安装前应自行查看 GitHub 源码 与 LICENSE,确认符合你的安全与合规要求。
- SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;插件星标与维护节奏以仓库为准。
单选场景需适应「点选后不自动跳题」的交互变化;若你依赖原版「点选即下一题」的极速填答,启用前先在测试环境走一遍完整题目流。
结尾¶
dsh-question-note 在不动宿主协议的前提下,把「选项 + 按选项补充说明」收进同一次 ask_user_question 提交,适合需要结构化选择又不愿丢失上下文的 Harness 工作流。