前言¶
用 DSH 这类智能体学习时,常见的做法是把资料丢给模型,让它总结一遍。问题在于这是一次性交付:模型不知道你哪个概念没掌握,没有进度门槛,也没有复习调度,换个会话,学习状态就丢了。
dsh-plugin-lookatstudy 把整条学习链做成了 DSH 插件:资料导入为课程,逐概念追踪掌握度,按间隔重复安排复习。DSH 的理念是「一切皆插件」,学习这件事同样可以挂在宿主的集成点上——侧边栏入口、斜杠命令、工具卡片,各有各的位置。下面介绍这个插件具体做了什么、怎么装、怎么用。
这是什么¶
dsh-plugin-lookatstudy 由 Kaiji-Z 维护,MIT 许可证,学习引擎模块从 LookatStudy(MIT)vendored。它的一句话定位是:把任意 markdown 文档、本地文件夹或 GitHub 学习仓库导入为 DeepSeek Harness 内的引导式课程,带技能树式关卡推进、BKT 掌握度追踪和 SM-2 间隔重复。
插件分两个面:对话里的导师(tutor),以及一个三栏全接管的学习面板。宿主被定义为会话模型加 agent-turn 引擎,面板拥有 UI,宿主拥有循环。
导入:从四种来源建课¶
下面是建课的四个入口,按来源选工具:
1、study_import_markdown / study_import_folder:导入 markdown 文档或本地文件夹,支持 12 种文档格式,含 EPUB、DOCX、PPTX、PDF 文本。
2、study_import_github:导入 GitHub 学习仓库,走 jsDelivr CDN,github.com 不可达的环境下也能用。
3、study_import_url:导入单篇文章、arXiv 论文或视频元数据。
4、study_apply_design:由导师设计的结构协议,负责把导入内容组织成课程结构。
核心机制:掌握度取最弱概念¶
插件用知识组件(KC)追踪学习状态,流程如下:
1、首次教学一课时,导师派生 2–7 个概念(study_define_concepts)。
2、每次答题归因到具体概念(study_record_answer,带 concept)。
3、逐概念运行 BKT,课程掌握度取最弱概念。
4、出测验时优先针对薄弱概念。
推进由掌握度驱动:≥50% 提前解锁下一课;≥90% 结业,并安排首次 SM-2 复习;答题本身也会推动复习计划。
此外还有一条提案通道(propose → apply):≥85% 且学习者给出令人信服的费曼式讲解时,导师可以提案提前结业(study_propose_mastery),但会等待学习者明确的 yes/no 才应用(study_resolve_proposal)。学习者的决策不会被跳过。
摩擦感知与学习者记忆¶
学习过程中的困惑、卡住、挫败会被静默记录(study_report_friction),以 ⚡😣 薄弱点的形式呈现在课程树里,导师据此调整策略。
学习者记忆有三个槽位:全局风格、每课程模式、每课缺口,通过 read-merge-write 更新(study_remember)。每回合还会注入一份动态学习者快照,包含 focus、strategy band、薄弱概念、friction、memory、due count 和 pending proposal,导师每轮都看得到这些上下文。
学习面板:三栏结构¶
dsh 侧边栏有一行「学习」(位于「新会话」下方,与其他插件入口并列),点开是一个三栏全接管面板,样式全部使用 dsh 的 --dsw-* tokens。关闭面板或切换会话时,中栏直接交还给宿主。
左栏是课程:课程选择、进度、带一键复习启动的 due box、课程树(关卡门槛、掌握度条、⚡😣 薄弱点标记),空态时提供一键演示导入。注意一点交互设计:点击课程栏里的课仅做 FOCUS,切换黑板内容,零模型流量;导师只在你发送消息时介入。
中栏是导师对话,拥有独立 composer,面板从不触碰 dsh 宿主的 composer。栏头有灵魂药丸:guide 引导 / direct 精讲 / practice 实战。导师出的测验题,A–D 选项会渲染成可点击的答案按钮。
右栏是黑板,承载当前 focus 课的内容:
- 讲解:服务端消毒的 markdown 富渲染,按需加载 KaTeX 公式、语法高亮代码、mermaid 图(mermaid 走 CDN loader,离线静默降级)。
- 🕸 概念图视图:同一课的知识组件画成概念图,捆绑 ELK 布局,不依赖外部服务。
- Cornell 笔记三区,每条笔记删除前有确认。
- 朗读栏:朗读本课时通过 Microsoft Edge 神经语音在宿主端逐句合成并磁盘缓存,离线回退浏览器系统语音,朗读时当前句高亮。
所有学习状态来自对 /lookatstudy/api/state 的一条共享 3 秒轮询,三栏读的是同一份状态。
DSH 原生集成点¶
面板之外,插件还接入了宿主的多处集成点:
- 双语文案:整个 client 半区注册
lookatstudylocale namespace(zh/en,key parity 强制),切换宿主语言,学习面板跟着切。 - 设置页:
settings.section条目,含教学风格、study mode 开关、只读统计(courses/XP/streak)与状态文件路径。 /study斜杠命令:裸/study激活休眠安装并排队 kickoff 提示;/study <text>排队该请求。斜杠命令能用的地方都能用。- 输入框停靠药丸(
conversation.composer.dock):激活时显示 ⚡due · 🔥streak · Lv,休眠时不渲染。 - 会话标签内工具卡片:
tool.call.toolview键控条目,覆盖study_record_answer(✓/✗ 加概念)、study_lesson、study_due_reviews、study_exam_result。 - 启动层预取:
dsh.client.immediately: true,侧边栏「学习」行首帧即渲染,无需等待 bundle 拉取。
30 个工具的工具面¶
工具面共 30 个工具,按 import / learn / progress / artifacts / memory / proposals / reviews / awareness / misc 分组。除上面提到的导入、概念与答题、提案、摩擦与记忆工具外,还有几组值得单独说明:
- 交互式练习(artifacts,0.15.0 起):
study_generate_quiz(交互式练习卡)、study_pose_guess、study_compare_table、study_draw_diagram(mermaid)、study_code_walkthrough,各自渲染为面板内卡片,并沉淀到笔记。 - 巩固与产出(memory):
study_consolidate、study_translate_lesson(双语课程)、study_export(导出课程包 markdown)。 - 复习:
study_due_reviews查询到期项,study_record_record_review记录复习结果;考试模式study_exam_result带星级评分。 - 杂项:
study_set_mode、study_delete_course。另有study_courses支持进度查看与全文搜索,XP 与 streak 贯穿其中。
profile 方面:插件 works with any profile。web profile 下额外提供学习标签页的 HTTP API 并加载浏览器端;headless profile 只获得纯工具面。
安装与启用¶
从 npm 安装:
dsh plugin add dsh-plugin-lookatstudy # from npm
或从本地 tarball 安装:
dsh plugin add ./dsh-plugin-lookatstudy-0.2.1.tgz
第一条命令走 npm,第二条从本地 tarball 文件安装。注意仓库 package.json 中的版本号为 0.16.0,而 README 安装示例中的 tarball 文件名为 0.2.1,两处不一致,安装时以你实际获取的包为准。安装后 works with any profile,无需额外配置即可在侧边栏看到「学习」入口。
典型用法¶
最直接的入口是对导师说话:
import https://github.com/microsoft/AI-For-Beginners and teach me lesson 1
这句会让导师导入该 GitHub 学习仓库为课程,并开始第一课。后续学习循环就是上面写的机制:派生概念、答题归因、BKT 更新、按掌握度解锁与结业。
查询到期复习:
what reviews are due today?
也可以用斜杠命令:裸 /study 激活休眠安装并排队 kickoff 提示;/study <text> 把该请求排队发给导师。在面板里发送消息或点击 starter,则是进入课程线程的入口——面板会激活休眠的学习面,在宿主上创建课程会话,回复经会话事件窗口流式返回,走插件自己的 markdown 管线渲染。
适用场景与注意¶
适合的场景:你手上已有成体系的学习资料——markdown 文档、本地文件夹、GitHub 学习仓库或散篇文章,希望在 DSH 里按课程推进,被逐概念追踪掌握度,并按 SM-2 计划复习,而不是每次重新问一遍。
安装与使用前有几点需要注意:
1、插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。本项目为 MIT,学习引擎模块从 LookatStudy(MIT)vendored。
2、面板、学习标签页的 HTTP API 仅在 web profile 下可用;headless profile 只有纯工具面,同样能完成导入、教学与复习的完整循环。
3、网络依赖:mermaid 渲染走 CDN loader,离线静默降级;朗读的 Edge 神经语音在宿主端合成,离线回退系统语音;概念图的 ELK 布局为本地捆绑,不依赖外部服务。
结尾¶
dsh-plugin-lookatstudy 的价值在于把「问模型学东西」变成一个有状态、有门槛、有复习计划的过程,并且充分利用了 DSH 的宿主集成点,而不是只堆一袋工具。如果你在用 DSH 学习新领域,值得一试。
项目主页:https://github.com/Kaiji-Z/dsh-plugin-lookatstudy
社区目录页:https://www.skillhub.cn/plugins/Kaiji-Z/dsh-plugin-lookatstudy (skillhub.cn 为社区维护的插件目录,与 DeepSeek、幻方无官方从属关系)