dsh-learning-mode:在 DSH 输入框一键开启「引入—学习—测试—纠错」教学循环

前言

在 DeepSeek Harness(DSH)里做教学或知识讲解,常见做法是手写一长段 system prompt,或依赖外部课程页。模型可以讲,但测验、滑块探索、即时判分往往要另起页面或自己接前端。社区插件 dsh-learning-mode(维护者 yushui6666)走的是另一条路:在输入框工具栏加一个「学习模式」开关,为当前会话注入固定教学提示词,并把互动界面交给 GenUI 在回答里直接渲染。没有课程库、没有进度持久化、没有额外网页。

下面介绍它做什么、依赖什么、怎么装、怎么用,以及本地交互和模型请求如何分工。

这是什么

dsh-learning-mode 是 DSH 的 web 端插件,包名 @yushui/dsh-learning-mode(当前资料中的版本为 0.1.3,MIT 许可)。它本身不画 UI,只负责「教什么、什么时候停、什么时候反馈」;测验、参数滑块、交卷判分由 GenUI 根据模型输出的 dsh-ui 代码块渲染。

一句话对照 README:Learning Mode 是在输入框旁的一个开关,打开后为当前会话注入教学提示(问题引入 → 讲解与交互探索 → 测试 → 反馈纠错),并通过 GenUI 在浏览器里本地判分,判分过程不额外请求模型。

DSH 生态强调「一切皆插件」;SkillHub 等社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

输入框工具栏开关

开关在输入框工具栏左侧,为小图标按钮:点亮表示本会话已开启学习模式,再点一次关闭。默认关闭;不同会话互不影响。状态记在当前窗口的 sessionStorage,页面刷新沿用;宿主重启或插件重载会回到关闭。插件不会从日志恢复开关,也没有跨会话的学习进度存储。

固定教学节奏

一次完整循环在 README 中概括为四段:

阶段 用户 插件与模型
引入 说明想学什么 用真实问题引出价值,说明本轮学完能做到什么
学习 看解释、预测、拖滑块 直觉 → 例子 → 术语或公式;在值得动手处安排探索
测试 点选项或交卷 GenUI 本地判分,对错、解析、得分即时显示
反馈 说明没懂处,或点「继续学习」「换个例子」 针对误区重讲,再给等价题确认

教学规则写在仓库的 prompt.js 里:每次只教一个完整小节,保留真实动手与等待作答,不伪造成绩;要求模型先讲「观察什么、操作什么」,再给组件。

GenUI 渲染的互动组件

README 中说明的典型形态包括:

  • 单题测验:点选即判,错选项有针对该选项的解释。
  • 交卷判分:多题一起交,分数、每题对错和解析在浏览器内计算并显示。
  • 参数探索:先猜结论,再拖滑块观察曲线变化。

截图见仓库 docs/assets/,与聊天里 GenUI 渲染同源。

本地交互与回传模型的分界

  • 纯本地:判题、交卷打分、拖滑块、展开与切换——浏览器即时完成,不产生请求。
  • 会回传:带 action 的单题测验、带 groups 的交卷按钮,以及「换个例子」「再讲一遍」「继续学习」等,会以 [genui-action] 把作答与选择送回模型;模型据此补讲或推进。
  • 内置提示词约束:没有真实提交时,模型不会声称已看到分数或选择。

若用户看不到组件或只有原始代码块,提示词要求模型从下一条起改用文字、列表和表格讲完,且不再输出围栏——无渲染器时教学仍可继续,但会失去互动判分。

服务端命令(备用)

除按钮外,宿主支持 /learn on、/learn off、/learn status:返回 JSON 状态且不启动模型生成。按钮平时在点击时执行一次 /learn on|off;高级场景可手动使用上述命令。

前置条件:GenUI(必装)

本插件只注入教学提示,必须单独安装 GenUI 渲染插件,否则 dsh-ui 围栏只会显示为原始代码块,测验与本地判分不可用。

项 内容
npm 包 @changfenhuang/dsh-genui
源码 omdsh-dev/dsh-genui
市场 搜 dsh-genui,作者 omdsh-dev,分类 ui
peer 要求 >=0.12.0(README 写明本插件实测 0.12.0,市场可到更高版本)

安装渲染器:

dsh plugin --profile web add @changfenhuang/dsh-genui

README 强调市场里有三个名字相近的插件,仅 @changfenhuang/dsh-genui(作者 omdsh-dev) 与本插件兼容;另两个 dsh-genui(lhuans)、dsh-plugin-genui(pengyue-polaron)不兼容。

确认生效:profile 的 dsh.profile.bundles 中出现 @changfenhuang/dsh-genui,刷新客户端后让模型输出 dsh-ui 代码块能渲染成卡片或测验即可。

本插件不把 GenUI 打进包内:package.json 仅用 optional 的 peerDependencies 说明关系,避免重复安装却无法注册为 bundle。

安装与启用

在插件市场搜「学习模式」(作者 yushui6666)安装即可;命令行等价操作如下。已装 GenUI 的可跳过第一条。

dsh plugin --profile web add @changfenhuang/dsh-genui                          # 渲染器(必装)
dsh plugin --profile web add github:yushui6666/dsh-learning-mode               # 本插件

说明:

  • github:yushui6666/dsh-learning-mode 为 pnpm 的 GitHub 源写法,取仓库默认分支,不经过 npm 注册表。npm 包尚未发布,@yushui/dsh-learning-mode 形式的 npm 安装会 404,请勿使用。
  • 也可在插件管理器安装框粘贴 github:yushui6666/dsh-learning-mode。
  • 命令是 DSH 自带插件管理器,装到本机 profile 的 node_modules 并登记 dsh.profile.bundles;不是远程 shell 脚本,本仓库无 postinstall 等安装期脚本。
  • 卸载:市场卸载,或 dsh plugin --profile web remove <包名>。

插件以当前 DSH 进程权限运行;安装前建议浏览源码与 MIT 许可证。README 写明:不联网、不读写用户文件(测试除外)、不子进程与 eval、无遥测,状态仅 sessionStorage。

典型用法

  1. 打开或新建会话,点击输入框工具栏「学习模式」,确认按钮高亮。
  2. 输入学习主题,例如 README 示例:我想学概率,先从条件概率开始。
  3. 按回复中的讲解完成学习段,在 GenUI 组件里作答或拖滑块;需要时交卷查看本地分数与解析。
  4. 没懂处用文字说明,或点「继续学习」「换个例子」等,让模型根据 [genui-action] 或你的说明纠错。
  5. 再点一次开关关闭;从下一次模型请求起不再注入教学提示词,历史对话保留。

学习模式不替代 GenUI,不创建其他网页,不改变模型或权限。

适用场景与注意

适合:希望在 DSH 单会话内做结构化自学或演示式讲解、且已愿意安装 GenUI 的开发者或重度用户;需要即时本地判分、减少「讲完了不知道会不会」的纯文字问答场景。

不适合或需知:

  • 需要课程库、学习记录、跨设备进度——本插件明确不提供。
  • 未装 GenUI 时仅能得到文字兜底,无互动判分。
  • 教学质量与组件形态仍依赖所用模型与 GenUI 能力;本地判卷不自动等于模型已收到错题,需真实提交或用户说明后才会针对性反馈。
  • 运行环境:Node >=22(见 package.json engines);主要为 web profile 客户端注入。

结尾

dsh-learning-mode 把「教学提示词 + 会话级开关」和 GenUI 的本地互动判分接在一起,在 DSH 里用固定节奏完成引入、学习、测试与纠错,而无需另建课程站。使用前务必安装 @changfenhuang/dsh-genui。

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

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

小夜