前言¶
在 DeepSeek Harness(DSH)里跑智能体时,一轮对话里常有空档:等工具返回、连 MCP、读大文件、派发子 agent。这些间隙用户只能盯着界面,任务本身又不好打断。idle-scholar 插件的思路是:在「会让用户继续等」的回合开头先出一张学习卡,再照常执行主任务,一张卡对应一次等待回合,不挡主线。
下面介绍插件定位、能力、安装配置与课程包格式,事实均来自 GitHub 仓库 README 与 package.json(当前版本 0.3.0,MIT 许可证)。
这是什么¶
idle-scholar(npm 包名 @dsh-plugin/idle-scholar)由维护者 Smallballoons01 发布,在 SkillHub 插件目录 中归类为「记忆」。它面向 DSH 的 idle-time micro-learning:把 agent 等待空档变成闪卡(flash cards)。
内置种子牌组覆盖 英语、日语,以及中国国家司法考试(法考)八科(刑法、民法、刑诉、民诉、行政法、商经知、三国法、理论法)。新科目用普通 JSON 课程包扩展,社区牌组可通过 PR 追加文件。
核心功能¶
插件同时做两件事,并供给牌面内容与进度跟踪。
系统提示与 Skill¶
- 系统提示片段:当某回合会让用户继续等待时,在该回合最开头展示一张学习卡,然后继续主任务。
- 内嵌 Skill
idle-scholar:完整工作流,包括卡片格式、课程轮换,以及「别学了」退出选项。
三个工具¶
| 工具 | 作用 |
|---|---|
study_card |
抽一张卡;可选 course / deck / type 过滤。未见过优先,刚重复过的会排除。 |
study_status |
今日张数 vs 每日目标、连续天数、牌组覆盖、课程目录。 |
study_switch |
切换默认课程,跨会话持久化。 |
进度(每张卡的见过次数、每日合计、连续天数)写在 $DSH_HOME/idle-scholar.json,不在仓库目录里。
卡片类型¶
课程包里的单张卡支持:vocab(词汇)、quiz(选择题,answer 为 choices 下标)、concept(知识点)、tip(文化/实用建议)。所有卡需非空 explanation。
安装与启用¶
DSH 插件方式¶
官方 README 给出的安装命令如下(路径需换成你本地的插件目录,不要凭仓库名拼 dsh plugin add github:…):
dsh plugin --profile web add /path/to/idle_scholar
安装后重新加载 harness。在 DeepSeek Harness ≥ 0.2.1-alpha.3 且开启热重载时,插件代码更新可不必重启;首次安装仍需要一次重载。若 profile 的 cordis.patch.yml 里已有 idle-scholar 行,需先删掉——重复注册会导致无法启动。
用 dsh … --from-default-profile 重建 profile 会替换该 profile(含插件列表),之后需重新添加本插件。
独立 Skill(任意 Agent 工具)¶
Skill 遵循 Agent Skills,可复制到常见 skills 目录:
cp -r skills/idle-scholar ~/.claude/skills/ # 或 ~/.agents/skills、~/.codex/skills 等
不装 DSH 插件工具时,Skill 仍可工作:模型按 skills/idle-scholar/references/course-topics.md 实时生成卡片。
配置项¶
| 字段 | 默认值 | 含义 |
|---|---|---|
enabled |
true |
总开关;关闭后不再注入提示片段(工具与 Skill 仍挂载)。 |
defaultCourse |
'en' |
未传过滤时 study_card 使用的课程。 |
dailyGoal |
10 |
每日目标张数,用于进度展示。 |
promptSection |
true |
是否暴露系统提示片段。 |
skill |
true |
是否注册内嵌 idle-scholar Skill。 |
coursesDir |
— | 额外课程包目录,与内置牌组一并加载。 |
stateFile |
$DSH_HOME/idle-scholar.json |
进度文件路径。 |
典型用法与课程包¶
抽卡与切换课程¶
模型在等待回合开头调用 study_card;需要时可传 course、deck、type。查看进度用 study_status;换默认课程用 study_switch。
课程包格式¶
一个 deck 是 courses/<course>/<deck>.json 下的一个 JSON 文件,结构示例(摘自 README):
{
"id": "en-vocab",
"course": "en",
"name": "English core vocabulary",
"cards": [
{
"id": "en-vocab-001",
"type": "vocab",
"prompt": "**serendipity** means?",
"hint": "noun, related to chance",
"answer": "The faculty of making fortunate discoveries by accident",
"explanation": "From The Three Princes of Serendip.",
"tags": ["CET6"]
}
]
}
贡献新科目时:在 courses/<course-id>/<deck-id>.json 按格式添加(deck 与 card 的 id 需全局唯一,仓库内 test/decks.test.js 会校验);同步更新 course-topics.md 与 skill.js 中的课程表;跑 npm test 做牌组校验。
适用场景与注意¶
适合谁:长期在 DSH 里开发或日常使用智能体、希望在工具等待间隙做轻量复习(英语、日语、法考或自建 JSON 牌组)的开发者。
运行与信任:插件以当前 DSH 进程权限运行,会读写 $DSH_HOME/idle-scholar.json 并在等待回合注入学习内容。安装前请自行查看 GitHub 源码 与 MIT 许可证,确认符合你的环境与合规要求。SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,目录站点是独立发现渠道,不是官方应用商店。
环境:package.json 要求 Node ≥ 20。开发侧针对的 harness 相关包版本在 README 中有说明(如 @deepseek-ai/dsh-tools 0.2.1-alpha.4 等),与你的 DSH 版本对齐后再装插件更稳妥。
路线图(README 列出的未完成项):Web 面板(设置区 + 侧边栏连续天数)、间隔重复(SM-2 式调度替代当前 seen-weighting)、更多种子牌组(如法考真题风格案例卡、TOEFL/IELTS、文言等)。
结尾¶
idle-scholar 把「等工具」变成「一张卡」,不占用主任务流程;内置英日法考种子包,扩展靠 JSON 课程包与社区 PR。目录页:SkillHub - dsh-idle-scholar;源码与完整说明:GitHub - Smallballoons01/dsh-idle-scholar。