dsh-question:把模型提问做成可就地作答的卡片

前言

在 DeepSeek Harness(DSH)里,模型有时需要通过工具向用户发问并等待答复,工作流才能继续。默认界面若把长说明和选项挤在一起,阅读和点选成本都会上去。社区插件 dsh-question 只做一件事:在 Web / 桌面客户端里把这类提问渲染成一张卡片,选项保留要点、详情悬停展开,支持单选、多选和自由输入,并在你提交前保持等待,把答案回传给模型。

下面按定位、能力、安装和注意事项说明,便于同行判断是否接入自己的 profile。

这是什么

dsh-question(npm 包名与仓库名一致)是 DSH 的客户端提问卡片插件,维护者为 1234ab484。它负责卡片的呈现与交互,不改变模型侧可见的工具约定。

核心功能

资料中列出的能力如下,均可对照仓库 README 核对。

  1. 选项只显示重点 —— 每个选项行只保留简短 label,最多两行,超出省略。
  2. 悬停看详细说明 —— 鼠标悬停或键盘聚焦时,浮层展示完整说明;label 被截断时,浮层第一行补全 label。
  3. 自由输入 —— 自定义答案行显示「其他:」/ Other: 并直接提供输入框。
  4. 单选与多选 —— 单选为 26px 圆形单选框,多选保留原生方框。
  5. 键盘操作 —— 1–9 选择或勾选;Enter 触发主按钮(提交或下一题);←/→(或 PageUp/PageDown)在同一批问题间切换;Esc 收起卡片且不会放弃整组问题。
  6. 多题可来回切换 —— 一批问题一次显示一题,底部翻页或方向键切换,已选草稿不丢。
  7. 等你作答 —— 未提交前保持等待;倒计时、跳过、翻页等行为照常。
  8. 中英文界面 —— 跟随 DSH 界面语言,自定义答案行前缀在中文与 English 间自动切换。

安装与启用

安装前请自行阅读仓库源码与 LICENSE,插件随当前 DSH profile 与进程权限运行,与官方 DeepSeek / 幻方无从属关系;社区目录 SkillHub 为独立站点。

将 <profile> 换成你实际使用的 profile 名称。

从 npm 安装(推荐)

dsh plugin --profile <profile> add dsh-question

从 GitHub 安装

dsh plugin --profile <profile> add github:1234ab484/dsh-question

手动安装

  1. 在 profile 的 package.json 依赖里添加 "dsh-question": "<npm 版本 | GitHub spec | link:<路径>>";
  2. 把 dsh-question 追加到 dsh.profile.bundles;
  3. 在 profile 目录执行 pnpm install。

卸载:

dsh plugin --profile <profile> remove dsh-question

包内通过 dsh.bundle.patch(cordis.patch.yml,插入 question-card 的 Loader 条目)和 dsh.client(platform: "web",将 ./client 指向 lib/client.js)接入 DSH。启用了客户端 HMR 的 profile 会在线生效。

典型用法

插件本身不定义新的 CLI 子命令;用法是:安装并加入 bundle 后,在符合环境要求的 DSH 客户端中,当模型发起提问流程时,界面会按上述规则展示卡片。你完成选择或输入并提交后,答案回传,模型继续执行。

界面语言与自定义行前缀对应关系:

DSH 界面语言 自定义答案行前缀
中文 其他:
English Other:

问题、选项与说明文案来自模型,按原样展示。

开发者在仓库中可用 dev/preview.html 脱离 DSH 预览卡片 DOM(悬停选项可看浮层);构建与检查命令为 npm run build、npm run check、npm test(见 README「开发」一节)。

环境与限制

环境要求(README):

  • DSH 0.2.1-rc.x 的 Web / 桌面客户端;
  • 仅在自己构建 bundle 时需要 Node.js ≥ 20(发布 bundle 为纯 JavaScript)。

已知限制(README):

  • 自定义答案行前缀仅覆盖中文与英文,其它语言回退到英文;
  • 浮层内容来自提问方的 description;无 description 时,仅 label 被截断才会在浮层中补全 label;
  • plan-review(exit_plan_mode)卡片不在改动范围内;
  • 实现依赖 DSH 内部的类名后缀与 data-question-key;若卡片 DOM 大改,需更新插件选择器。

实现要点(选读)

资料中的实现分层便于排错:

  1. 样式层(lib/dsh-question.css)—— 作用域在 [data-question-key],处理 label 截断、圆形单选、「其他/Other」前缀与浮层样式。
  2. 交互层(lib/client.js)—— 悬停/聚焦浮层、键盘处理、通过 MutationObserver 跟随 <html lang>。
  3. HMR —— apply() 会先销毁上一代实例(window.__DSH_QUESTION_CARD__),避免热重载叠加监听器。

结尾

若你的工作流里模型需要反复向用户确认选项或补充自由文本,dsh-question 把等待作答这件事收束到一张可键盘操作的卡片上,且与 DSH 中英文界面一致。安装命令以 README 为准;细节与截图见 GitHub 仓库,分类与索引见 SkillHub 目录页。

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

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

小夜