前言¶
在 DeepSeek Harness(DSH)里,模型有时需要通过工具向用户发问并等待答复,工作流才能继续。默认界面若把长说明和选项挤在一起,阅读和点选成本都会上去。社区插件 dsh-question 只做一件事:在 Web / 桌面客户端里把这类提问渲染成一张卡片,选项保留要点、详情悬停展开,支持单选、多选和自由输入,并在你提交前保持等待,把答案回传给模型。
下面按定位、能力、安装和注意事项说明,便于同行判断是否接入自己的 profile。
这是什么¶
dsh-question(npm 包名与仓库名一致)是 DSH 的客户端提问卡片插件,维护者为 1234ab484。它负责卡片的呈现与交互,不改变模型侧可见的工具约定。
- 目录页:SkillHub 上的 dsh-question
- 源码与说明:github.com/1234ab484/dsh-question
- 当前 npm 版本(资料):
0.1.3 - 许可证:MIT
核心功能¶
资料中列出的能力如下,均可对照仓库 README 核对。
- 选项只显示重点 —— 每个选项行只保留简短 label,最多两行,超出省略。
- 悬停看详细说明 —— 鼠标悬停或键盘聚焦时,浮层展示完整说明;label 被截断时,浮层第一行补全 label。
- 自由输入 —— 自定义答案行显示「其他:」/
Other:并直接提供输入框。 - 单选与多选 —— 单选为 26px 圆形单选框,多选保留原生方框。
- 键盘操作 ——
1–9选择或勾选;Enter触发主按钮(提交或下一题);←/→(或PageUp/PageDown)在同一批问题间切换;Esc收起卡片且不会放弃整组问题。 - 多题可来回切换 —— 一批问题一次显示一题,底部翻页或方向键切换,已选草稿不丢。
- 等你作答 —— 未提交前保持等待;倒计时、跳过、翻页等行为照常。
- 中英文界面 —— 跟随 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
手动安装¶
- 在 profile 的
package.json依赖里添加"dsh-question": "<npm 版本 | GitHub spec | link:<路径>>"; - 把
dsh-question追加到dsh.profile.bundles; - 在 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 大改,需更新插件选择器。
实现要点(选读)¶
资料中的实现分层便于排错:
- 样式层(
lib/dsh-question.css)—— 作用域在[data-question-key],处理 label 截断、圆形单选、「其他/Other」前缀与浮层样式。 - 交互层(
lib/client.js)—— 悬停/聚焦浮层、键盘处理、通过MutationObserver跟随<html lang>。 - HMR ——
apply()会先销毁上一代实例(window.__DSH_QUESTION_CARD__),避免热重载叠加监听器。
结尾¶
若你的工作流里模型需要反复向用户确认选项或补充自由文本,dsh-question 把等待作答这件事收束到一张可键盘操作的卡片上,且与 DSH 中英文界面一致。安装命令以 README 为准;细节与截图见 GitHub 仓库,分类与索引见 SkillHub 目录页。