前言¶
做智能體應用的人大多會遇到一個同樣的取捨:任務列表放在哪。單獨開個待辦工具,意味着要在當前會話和那個工具之間來回切;直接讓智能體在對話裏記一嘴,過兩天就散了,也說不清哪天做了哪件事。dsh-tasks-panel 的做法是把這個面板做進 DeepSeek Harness 自己的側欄:智能體通過 tool 讀寫任務,人在同一會話裏點着看,需要提醒時在到點那一分鐘往手機推一條飛書消息。
下面介紹這個插件。它由 tortoise014 維護,分類爲客戶端,GitHub 上目前 1 個星標,版本 0.5.4,協議 MIT。它不解決任務管理本身的複雜度,只解決「任務清單和當前工作不在同一個地方」這件事。
這是不是一個合適的選擇¶
先講清楚邊界。它做的是三件事:一個帶日期和時刻的待辦清單;一張按月回溯任務歷史的月曆;一次到點觸發的飛書羣機器人推送。它不做協作、不做多端同步、不做優先級排序,也不會替代項目管理工具。如果你的需求是把一個完整項目拆成可分配的子任務,這個面板不合適。
它寫成 DSH bundle 的形式,命令行安裝,不需要 git clone。瀏覽器端和宿主端通過 POST /api/dsh-tasks-panel/op 通信,數據全部落在本機的 dsh_tasks 存儲域裏。除了飛書那次推送本身,沒有別的出網請求。
核心功能¶
- 側欄入口。DSH 的 rail 上多一個圖標,點開是面板,
Back可以回到你剛纔所在的會話、插件頁或 Schedules。 - 待辦清單。支持新增、完成、重新打開、刪除。日期默認今天,時刻默認下一個五分鐘整點;點
×清掉日期,就變成一條沒有日期的備註。 - 懸停看今天。鼠標停在側欄圖標上,會浮出今天任務的時刻表,包括過期項和未完成的數量,不用點開、不用換上下文。
- 歷史月曆。新增、完成、重開、編輯、刪除都在這個月的格子裏落一個事件,點某一天可以讀當天的記錄。注意這張表只記錄發生過什麼,不做排期。
- 懸停卡片預覽。鼠標指向某個任務或某一天,會顯示標題、備註、到期日期和時刻、來源、所屬會話、時間戳。卡片會避開側欄重疊,不會蓋住它。
- 飛書到點提醒。在設置裏貼一次羣機器人 webhook,到點宿主推送
⏰ title / time / note到手機。推送成功後會順手把任務關閉;如果不想自動關,設置裏取消「Close the task once it is pushed」。 - 智能體工具。
task_write讓助手新增和關閉任務,操作集合和 UI 一致,兩條路不會走偏。
界面和細節¶
插件裏有幾處設計值得單獨說,因爲它們直接影響日常怎麼用。
一是提醒規則比較嚴:只有同時填了日期和時刻的任務纔會被提醒。只填日期表示「今天要做」,不是約會,默認靜音。
二是宿主每 30 秒掃一次,要求 DSH 在運行。所以關掉應用就不可能推送。同一個日期加時刻的槽位只推一次,重啓也不會重複通知。把任務挪到新時刻會重新武裝一次提醒。
三是有一個 6 小時的寬限窗口。如果某個時刻已經過了 6 小時以上,插件只會在界面上標記它,不會補推。這樣筆記本睡一晚起來,不會在早上 9 點把昨天的東西全倒給你。被這個窗口跳過的任務保持打開狀態,沉默不等於完成。
四是設置那個開關會自己保存,webhook 也包括在內。否則「按了開關然後忘了點保存」就是 enabled: false 的來源。
五是 task_write 沒有提醒相關的動作。給手機推送這件事由人來開,不由智能體決定。面板會顯示最近一次發送時間和最近一次投遞錯誤,設置裏有 Send a test,可以在信任它之前先確認手機能收到。支持簽名校驗的飛書機器人,把 secret 也貼上就行。
安裝與啓用¶
安裝命令來自 README,一共是這一行:
plugin_manager install_bundle target:"dsh-tasks-panel"
如果本地 checkout 放在某個絕對路徑下,也可以用 target:"<absolute path to a local checkout>"。安裝完成後打開面板,第一次會有一個簡短引導,講三件事:寫一條任務、懸停側欄看今天、貼 webhook 開提醒。UI 和這個引導都是中英雙語,跟隨應用的 locale 走。
需要 Node 20 及以上,因爲 engines 寫明瞭 node >=20。依賴只有一個 zod@^3.25.76。README 裏提到,鏈接安裝時 pnpm 不會裝依賴,所以倉庫裏把 zod@3.25.76 vendored 在 node_modules/zod 下;npm 安裝則從 registry 拉取,因此發佈的 tarball 故意不帶 node_modules。
數據存放在哪裏¶
全部放在 dsh_tasks 存儲域裏,包含 tasks 和 events 兩張表,外加一條存提醒設置的 global 記錄。瀏覽器端和宿主端之間的接口是 POST /api/dsh-tasks-panel/op。沒有服務端,沒有云同步,換機器需要自己遷數據。
測試與維護¶
npm test 按順序跑三個套件,全部針對真實 bundle,沒有自己 mock 自己。
node test/host.mjs(38 項),覆蓋存儲操作、時刻規範化、HTTP op 面、task_write工具。node test/reminders.mjs(34 項),覆蓋飛書調度、到點識別、每槽位只推一次、6 小時寬限窗口、投遞後自動完成、0.5.2 之前已提醒任務的一次性清理、簽名、錯誤上報、設置守衛。node test/ui.mjs(73 項),在 jsdom 裏渲染客戶端:槽位註冊、待辦行、三種懸停卡片、輸入框默認值、首啓引導、設置卡片和兩個開關。
宿主端套件用假的 Cordis context 和內存表來導入 index.js,UI 套件通過替身 window.__ModuleLoader__ 加載 client.js 再渲染進 jsdom。GitHub Actions 在 Node 20 和 22 上跑同一套測試,並從 tag 通過 OIDC trusted publishing 發佈到 npm。
適用場景與注意¶
適合的人:日常工作就在 DSH 會話裏,希望任務清單和會話放在一起,並且希望到點用手機收到一條提醒的人。也適合想通過 task_write 讓智能體自己維護任務、同時不把提醒權限交給智能體的開發者。
要注意的點:
- 插件以當前 DSH 進程的權限運行,能讀到宿主能讀到的東西。安裝前應當打開源碼過一遍,確認
client.js、index.js和你看到的這份一致。 - 協議是 MIT,倉庫裏可以看到 LICENSE。
- 飛書推送需要羣機器人 webhook,這是唯一齣網的一步。貼之前確認 webhook 所在羣的邊界,貼之後如果不再使用,建議撤銷或刪除。支持簽名校驗的機器人,secret 貼進面板即可,不要寫進倉庫或提交記錄。
- 倉庫裏沒有聲明數據遷移工具。換機器、重裝或清空
dsh_tasks之前,先確認自己是否還需要tasks和events裏的歷史。 - 這個插件來自社區目錄,目錄站點是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係。它不是官方應用商店裏的項目,也不要按官方插件來引用。
小結¶
如果任務清單已經散落在幾個地方,或者需要一條不帶打開應用的到點提醒,裝一個側欄面板比多開一個工具更省事。它的範圍很小:待辦、歷史月曆、飛書到點提醒,再加上 task_write。想自己看一眼實現的話,目錄頁在 https://www.skillhub.cn/plugins/tortoise014/dsh-tasks-panel ,源碼在 https://github.com/tortoise014/dsh-tasks-panel 。