前言¶
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 進程權限運行,安裝前應檢查源碼與許可證。