dsh-question-note:为 DSH 交互式问答选项增加补充说明

前言

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 答案。

操作步骤可概括为:

  1. 按上文安装并重启 DSH。
  2. 在对话中等待交互式问答弹窗出现。
  3. 点选选项,在选项下方输入补充说明(可选)。
  4. 单选:回车或点「下一题」进入下一题;最后一题回车提交。多选:按弹窗原有流程勾选与提交。

若官方弹窗组件在后续 DSH 版本中内部结构变化,可能需要同步调整插件内 src/client/carrier.ts 与 src/client/composer.tsx。

适用场景与注意

适合谁

  • 需要在「选 A / 选 B」之外,把与具体选项绑定的细节一次性交给模型的 DSH 用户与插件作者。
  • 希望零协议改动、沿用现有 answers JSON 的多选 / 单选流程。

安装前请注意

  • 插件以当前 dsh 进程权限在客户端运行;安装前应自行查看 GitHub 源码 与 LICENSE,确认符合你的安全与合规要求。
  • SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;插件星标与维护节奏以仓库为准。

单选场景需适应「点选后不自动跳题」的交互变化;若你依赖原版「点选即下一题」的极速填答,启用前先在测试环境走一遍完整题目流。

结尾

dsh-question-note 在不动宿主协议的前提下,把「选项 + 按选项补充说明」收进同一次 ask_user_question 提交,适合需要结构化选择又不愿丢失上下文的 Harness 工作流。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye