dsh-todos:類 Todoist 的待辦管理 + 儀表盤

前言

DeepSeek Harness(DSH)的核心理念是“一切皆插件”。在智能體開發場景中,任務管理往往是斷點:模型無法直接讀寫外部任務列表。dsh-todos 插件解決了這個問題,它爲 DSH 提供了一個類 Todoist 的待辦管理界面,掛在 Web GUI 的側邊欄與主面板上。同時,它將待辦事項開放給 Agent,允許 DeepSeek 直接讀寫這些任務,從而實現任務流與對話流的結合。

核心功能

該插件主要包含以下能力:

  • 儀表盤:主面板展示 6 個 KPI、完成/新增趨勢、優先級與項目/標籤分佈,以及 90 天熱力圖和每週目標。
  • 自然語言快速添加:支持直接在輸入框或通過指令使用自然語言添加任務。
  • Agent 工具:提供 7 個工具接口,供 Agent 調用。
  • 到點提醒:使用 shell.overlay 渲染全局浮層提醒,支持一鍵完成或推遲到明天。
  • 導入導出:支持 JSON 整庫備份與 Markdown 清單導出。

安裝與啓用

安裝需要使用 plugin_manager 工具。

plugin_manager install_bundle target=<本目錄的絕對路徑>

安裝完成後,cordis.patch.yml 會自動插入插件行 id: todos。重啓 DSH 後,側邊欄會出現「待辦」圖標,點擊進入主面板。

典型用法

自然語言添加

在對話框中直接輸入自然語言即可創建任務:

明天下午3點 交報告 #Q4彙報 @寫作 p1

Agent 工具調用

Agent 可以通過以下工具管理任務:
* todos_list:列出任務
* todos_create:創建任務
* todos_update:更新任務
* todos_complete:完成任務
* todos_delete:刪除任務
* todos_stats:獲取統計信息
* todos_projects:獲取項目列表

架構與配置

數據存儲

數據存儲在 $DSH_HOME/dsh-todos/todos.json。插件採用單文件 JSON 持久化,寫入使用“臨時文件 + rename”的原子操作,並在讀壞時自動備份現場。

配置項

在配置文件中可以調整以下參數:
* weekGoal:每週目標
* remindEnabled:是否啓用提醒
* dailyDigest:每日摘要

設計取捨

  • 零依賴:宿主半不依賴 @deepseek-ai/* 包,客戶端半僅依賴平臺凍結的 react。因此不需要構建工具鏈。
  • 提醒機制:不使用 agent.inject 循環調用模型,而是渲染到 shell.overlay。這避免了在無用戶輸入時模型自動發起一輪對話,同時讓用戶可以直接在浮層中操作任務。
  • 鑑權:路由鑑權委託給官方 connection。迴環請求不再免鑑權,與官方 /api 保持一致,這比單純校驗 Host 更安全。
  • 客戶端構建:客戶端 bundle 手寫,不使用 JSX。宿主 HMR 每 500ms 輪詢 bundle 狀態,修改 lib/client.js 可即時生效。

開發與測試

測試命令

運行插件自帶的測試套件:

node test/quickadd.mjs      # 自然語言解析:26 例
node test/smoke.mjs         # 數據層 + 路由處理函數:25 例
node test/tools.mjs         # Agent 工具:19 例
node test/client-render.mjs # 客戶端渲染測試:49 例
node scripts/preflight.mjs  # 發佈前自檢

開發注意事項

  • 客戶端半支持熱重載,宿主半修改需要重啓 DSH。
  • 主題樣式需引用真實存在的 token,否則會靜默失效導致顯示異常。
  • 修改 package.json 或包名後必須重啓 DSH。

適用場景與注意

該插件適合需要在 DSH 環境中統一管理待辦、並希望讓 Agent 能夠直接參與任務流轉的開發者。由於插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證。

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

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

小夜