前言¶
用 DSH 幹活時,待辦通常有兩種去處:要麼散在與 agent 的對話裏,下次開工要先翻記錄;要麼在對話開頭貼一份清單,過幾天就和實際進度脫節。這兩種做法的共同問題是清單沒有單一數據源,人看不起來,agent 也用不起來。
下面介紹的 dsh-quadrant-todolist 把待辦放進 DSH 宿主的側欄,人和 agent 讀寫同一份 todos.json。人可以在界面裏排期、勾選、看統計,agent 可以通過 personal_todo 工具建條目和改狀態。
這個插件是什麼¶
- 倉庫與插件標識:
dsh-quadrant-todolist,GitHub 倉庫 https://github.com/ZIYE-JK/dsh-quadrant-todolist - 維護者:ZIYE-JK(
package.json裏author爲 ZIYE-JK,contributors另列 Natte) - 當前版本:1.0.0
- 許可證:MIT
- 來源:從 Natte 的
dsh-sidebar-todo@0.2.3起步後大幅重寫,上游版權聲明按 MIT 要求保留在LICENSE中 - 星標:1(GitHub API 的
stargazers_count,2026-11-06 讀取) - 社區目錄:SkillHub 的插件頁把它放在「工作流」分類下,https://www.skillhub.cn/plugins/ZIYE-JK/dsh-quadrant-todolist
- 尚未發佈到 npm,包名已定爲
dsh-quadrant-todolist
插件不 import 任何 @deepseek-ai/* 包(無 dependencies、無 peerDependencies),只依賴宿主在運行時提供的契約,包括 window.__ModuleLoader__.load、側欄槽位 sidebar.panellist / main、ctx.webServer.register、ctx.tools.register、ctx.locale 註冊。這些契約一旦變化,表現從「入口消失」到「面板一直顯示讀取失敗」不等,README 裏逐條列了對應關係。
界面與視圖¶
側欄界面分爲四屏:做計劃(四象限矩陣)、月視圖、周視圖、統計。頁頭可以切到「日曆」看月視圖:每格最多顯示兩條,多餘的收成 +N;點某天在右側看當天安排,可以直接勾選,也可以「在這一天新建」。
四象限矩陣是默認視圖,用於把任務按重要/緊急維度分開。統計視圖按週期給出完成情況。系統通知與飛書通知屬於當前版本列出的能力範圍,具體配置項 README 未展開,這裏不做補齊。
新建與編輯¶
新建和編輯用同一個彈窗,字段包括標題、備註、日期、時間、優先級、分類、重複規則。
彈窗頂部有一行「一句話填寫」:輸入「明天下午3點 交週報 #工作」,日期、時間、優先級、分類會被自動填好,剩下的部分可以手動微調。支持的解析項包括日期(今天/明天/後天/周X/下週X/N天后/M月D日/月底)、時間(15:00、下午3點、中午、半夜)、優先級(p1/p2/p3、!)、分類(#名稱)。
規則有一點值得注意:一行只生成一條待辦,句子裏第一個被識別的日期生效,其餘內容原樣留在標題裏。
日期和時間用的是自繪選擇器(月曆帶今天/明天/下週一快捷,時間是時/分兩列),不依賴系統控件。詳情列底部的「編輯」就是給「未排期」任務排期的地方。
循環任務¶
重複方式支持每天、每週(可多選周幾)、每月(指定幾號),可設結束日期。重複設置裏還包含法定工作日、艾賓浩斯記憶曲線和「每月最後一天」。
行爲上有幾條約定:
1、列表裏只出現本週期待完成的那一次——每天的當天出現,每週的整週可見,每月的整月可見;勾掉後該行消失,下一個週期再出現。
2、勾選完成的是這一次(行上顯示的日期),系列本身不受影響。
3、循環任務不進「已完成」,也不參與「積壓」判定。
4、重複規則沒寫起始日時按創建日算,agent 只給 repeat 也能正常出現在列表和日曆裏。
5、剛建的循環任務如果還沒到第一個發生日,會先顯示下一次發生日,不會建完就看不見。
6、「每月 31 號」在只有 30 天的月份會跳過,不會自動落到月末。
agent 工具¶
agent 側的工具名是 personal_todo,action 可選 list / add / update / complete / confirm / delete。
// add / update 接受 repeat 參數
{ "repeat": { "freq": "weekly", "weekdays": [1,2,3,4,5], "until": "2026-12-31" } }
// complete 按 date 指定完成哪一次,默認今天
{ "action": "complete", "date": "2026-11-09" }
list 對循環任務標註「循環·本次 MM-DD」,即本期待完成的那一次;occurrences 返回區間內的全部實例。工具會從口語裏自行推斷重複規則,不需要用戶回答「你要哪種重複」——比如在對話裏說「每週一到週五 18 點交日報」,agent 會直接建好。
安裝與啓用¶
從 npm 安裝的命令如下,但 npm 尚未發佈,當前不要走這條路:
dsh plugin --profile web add dsh-quadrant-todolist
當前推薦的方式是直接從 GitHub 源碼安裝:
dsh plugin --profile web add github:ZIYE-JK/dsh-quadrant-todolist
從源碼安裝適合要跟最新提交的情況,更新按 commit 追,沒有版本號。裝完在側欄「自動化任務」下方出現「待辦」;也可以在宿主的「插件 → 發現」裏搜 dsh-quadrant-todolist 或「待辦」後在市場裏安裝。
本機開發時可以把倉庫目錄直接裝進 profile(鏈接方式,改代碼即時生效):
plugin_manager install_bundle target: <本倉庫目錄>
注意:改 index.js 後要把插件行關再開纔會重新加載模塊;只改 client.js 會被 HMR 自動拾取。
數據與配置¶
數據默認落在 %DSH_PROFILE_DIR%/data/dsh-todolist/todos.json,是普通 JSON,可以直接打開、編輯、備份。結構如下:
{ "version": 1, "todos": [ { "id": "t_...", "title": "交週報", "dueDate": "2026-10-22", "done": false } ] }
文件損壞時會備份爲 todos.corrupt-<時間戳>.json,然後以空清單啓動。
配置在 cordis.patch.yml 的插件行裏改:
- id: dsh-quadrant-todolist
config:
staleDays: 7 # 超過多少天還沒定日期算「積壓」
dataPath: '' # 可選,覆蓋默認數據文件路徑
兼容性與升級後自查¶
README 給出的兼容性表:
| 宿主版本 | 插件版本 | 結論 |
|---|---|---|
0.2.2-rc.1 |
1.0.0 |
已驗證可用(2026-11-06) |
0.2.1-rc.3 |
0.2.1 |
已驗證可用,修復 0.2.0 的啓動崩潰 |
0.2.1-rc.3 |
0.2.0 |
啓動崩潰,請勿使用 |
0.2.1-rc.2 |
0.1.0 |
已驗證可用 |
package.json 裏 engines.dsh 爲 >=0.2.1-rc.2 || >=0.2.2-rc.1,engines.node 爲 >=22。
升級宿主後的自查順序不要跳過前兩步:重載插件(set_plugin 關再開)→ 側欄點開「待辦」→ 讓 agent 調一次 personal_todo list → 跑 node --test。原因是 node --test 只覆蓋 lib/ 和 client.js 的一條靜態約定(註冊 id 等於包名),宿主接口本身斷了測試照樣全綠。
適用場景與注意¶
適合這類需求:想要一個長期存在的待辦清單而不是每次開新會話重說一遍;希望 agent 直接讀寫這份清單;需要按周/月看排期和完成統計,並且需要法定工作日感知的重複。
需要留意的幾點:
1、插件以當前 dsh 進程的權限運行,安裝前應先讀一遍源碼和 LICENSE 再啓用。
2、站點的插件分類頁只是社區目錄,SkillHub 與 DeepSeek / 幻方無官方從屬關係,不是官方應用商店。
3、不要和上游 dsh-sidebar-todo 同時安裝——兩者註冊同一個 /todo/api 路由並共用同一個數據文件。
4、從源碼安裝沒有版本號,升級前先看提交記錄。
結尾¶
這個插件的價值在於把待辦收斂成一個文件、一個界面、一套 agent 工具,人和 agent 不必各自維護一份狀態。星標數量和版本迭代還在早期,README 裏的兼容性表和契約說明寫得相當具體,適合直接照着自查。
- 目錄頁:https://www.skillhub.cn/plugins/ZIYE-JK/dsh-quadrant-todolist
- 倉庫:https://github.com/ZIYE-JK/dsh-quadrant-todolist