dsh-study-loop:先學再考、間隔換角度複習的 DSH 浮動學習循環

前言

在 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 分鐘後」僅延後,同批題到點重彈。

題庫維護(三種方式可混用)

  1. 模型生成:OpenAI 兼容 POST {baseUrl}/chat/completions,默認 https://api.deepseek.com/v1 與 deepseek-chat;key 優先環境變量(默認 DEEPSEEK_API_KEY),其次設置頁;僅存本機 ~/.dsh-study-loop/settings.json,接口返回掩碼爲 ••••後4位。
  2. 導入 Excel / CSV:題目表頭含 標題, 知識點, 題幹, 判分要點, 提示, 參考答案, 常見錯法, 類型, 角度 等(支持中英別名);學習卡表頭含 標題, 摘要, 內容, 要點, 標籤。
  3. 貼 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

典型用法

  1. 安裝並刷新 Web 端,等待間隔到點或點擊右下角膠囊按鈕打開浮層。
  2. 在 學習 tab 閱讀本輪知識點,切到 答題 tab 作答並用 0–5 自評提交。
  3. 在 題庫 tab 用主題 + 題數調用模型生成,或導入 CSV / Excel / JSON;首次可從「下載模板」拿示例表頭。
  4. 在 設置 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。

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

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

小夜