前言¶
在 DeepSeek Harness(DSH)裏寫代碼、調智能體時,知識點往往來自文檔片段和臨時搜索,很少形成「學過 → 被考 → 過一陣再考」的閉環。常見刷題類工具默認你已經學過內容,直接出題;沒學過容易挫敗,學過了又沒人追問,幾天後同樣會忘。
下面介紹社區工作流插件 dsh-study-loop(維護者 sunhailong123,GitHub:sunhailong123/dsh-study-loop)。它在 Web 端每隔可配置的 N 分鐘彈出一張浮動卡片:學習 tab 先講本輪要考的知識點,你看完切到 答題 tab 自評落盤;答過的內容會按固定間隔階梯,在後續輪次裏換提問角度再出現。不是「上來就考」的抽查,而是 學 → 答 → 記錄 → 到點換角度再問。
這是什麼¶
插件分類爲工作流,面向使用 DSH Web profile 的開發者。簡介原文:Learn first, then get quizzed — 先教一個主題,再圍繞它提問,並在之後從新角度帶回舊知識。
數據與節奏都在本機 JSON 裏維護,零 npm 依賴;判分爲 0–5 自評,不調模型打分(外部也可算好分數再 POST /submit)。
核心功能¶
四個 tab¶
| tab | 作用 |
|---|---|
| 學習(默認) | 本輪知識點:摘要、正文、關鍵要點;複習卡只給標題,點「翻原卡」才展開全文 |
| 答題 | 每題 textarea(草稿存 localStorage)、0–5 自評、備註;可對照判分要點與參考答案;舊知識複習題帶金色邊與「舊知識複習」角標 |
| 題庫 | 模型生成、導入(JSON / Excel .xlsx / CSV)、逐條刪除與重置;支持導出 CSV 與下載模板 |
| 設置 | 間隔分鐘、每輪題數、複習題配額、過關線;模型 baseUrl / 模型名 / key 環境變量名;出題提示詞模板 |
間隔重複¶
不用完整 SM-2,採用固定分鐘階梯:
30 → 180 → 720 → 2880 → 10080 → 43200
(半小時 → 3 小時 → 12 小時 → 2 天 → 7 天 → 30 天)
自評 ≥ passScore(默認 3)則檔位 +1;未過關回到第一檔(30 分鐘後)。每輪最多摻 reviewSlots(默認 2)道到期舊題,角度在原理 / 反例 / 應用 / 對比 / 排錯 / 邊界 / 類比 / 取捨間輪換。
主動打開與節拍¶
除每 intervalMinutes 分鐘自動彈窗外,還有:
- 右下角常駐膠囊按鈕(浮層收起後顯示「學習循環 · 還有 N 題」);
POST /study-loop/api/open:立刻彈當前輪,無輪次則先攢一輪;- 「收起」作廢本輪(到點出新輪);「+10 分鐘後」僅延後,同批題到點重彈。
題庫維護(三種方式可混用)¶
- 模型生成:OpenAI 兼容
POST {baseUrl}/chat/completions,默認https://api.deepseek.com/v1與deepseek-chat;key 優先環境變量(默認DEEPSEEK_API_KEY),其次設置頁;僅存本機~/.dsh-study-loop/settings.json,接口返回掩碼爲••••後4位。 - 導入 Excel / CSV:題目表頭含
標題, 知識點, 題幹, 判分要點, 提示, 參考答案, 常見錯法, 類型, 角度等(支持中英別名);學習卡表頭含標題, 摘要, 內容, 要點, 標籤。 - 貼 JSON:支持題目數組、
{ "questions": [...] }、{ "lessons": [...] }等形狀。
學習與答題正文支持 fenced 代碼塊與行內代碼,輕量高亮與複製按鈕;不做 Markdown 全量渲染。
數據與 HTTP¶
默認目錄 ~/.dsh-study-loop/(可用 dataDir 覆蓋):lessons.json、questions.json、progress.json(含最近 2000 條作答歷史)、settings.json。寫入採用臨時文件 + rename。
API 前綴 /study-loop/api,僅允許迴環地址訪問。常用路徑包括 GET /state、POST /submit(缺 score 返 400 且不落盤)、POST /bank/import、POST /generate/questions 等,詳見倉庫 README。
當前 package 版本爲 0.3.0,許可證 MIT。
安裝與啓用¶
在已配置 DSH Web profile 的環境下執行:
dsh plugin --profile web add dsh-study-loop
本地改源碼即時生效時,使用鏈接安裝(路徑按本機替換):
dsh plugin --profile web add link:D:\path\to\dsh-study-loop
裝完後刷新頁面(F5);下一輪倒計時到點會自動彈出浮層。
可選配置寫在 profile 的 cordis.patch.yml,例如:
- insert:
- id: study-loop
name: 'dsh-study-loop'
inject: [ webServer ]
config:
dataDir: '/custom/dir'
legacyQuizDir: ''
intervalMinutes: 10
questionsPerRound: 5
典型用法¶
- 安裝並刷新 Web 端,等待間隔到點或點擊右下角膠囊按鈕打開浮層。
- 在 學習 tab 閱讀本輪知識點,切到 答題 tab 作答並用 0–5 自評提交。
- 在 題庫 tab 用主題 + 題數調用模型生成,或導入 CSV / Excel / JSON;首次可從「下載模板」拿示例表頭。
- 在 設置 tab 調整
intervalMinutes、questionsPerRound、reviewSlots、passScore與模型端點;本地 Ollama 可將baseUrl設爲http://127.0.0.1:11434/v1(本地地址不校驗 key)。
需要腳本或外部工具立刻拉起當前輪時,對本機 DSH 進程調用:
curl -X POST http://127.0.0.1:<port>/study-loop/api/open
(端口以當前 DSH Web 服務爲準。)
適用場景與注意¶
適合:希望在寫 DSH 相關代碼的間隙,用同一張卡片完成「材料 + 自測 + 間隔複習」的開發者;題庫可自建、可導入、也可用 OpenAI 兼容 API 批量生成。
注意:
- 插件以當前 dsh 進程權限運行,安裝前請自行查看 GitHub 源碼與 MIT 許可證,確認數據目錄與網絡出站(模型生成)符合你的環境策略。
- 浮層爲自繪 DOM,未走
shell.overlay;卸載插件後浮層可能不會自動清除,刷新頁面即可。 - 社區目錄頁(skillhub.cn)與 dsh-plugin.org listing 爲生態索引,與 DeepSeek / 幻方無官方從屬關係;DSH 本身遵循「一切皆插件」的擴展方式。
結尾¶
dsh-study-loop 把「沒學過就考」和「學過沒人問」兩條線收進一條 Web 側學習循環:先學、再評、再按階梯換角度複習。若要查看簡介與安裝入口,可打開目錄頁 skillhub.cn/plugins/sunhailong123/dsh-study-loop;完整 tab 說明、表頭字段與 API 列表以倉庫爲準:github.com/sunhailong123/dsh-study-loop。