dsh-ticktick:DeepSeek Harness 下的 TickTick/Dida365 雙向任務同步插件

前言

DeepSeek Harness (DSH) 的核心設計理念之一是“一切皆插件”。在開發智能體時,讓 Agent 能夠直接讀寫用戶的任務管理工具(如滴答清單)是一個常見需求。現有的集成方式往往依賴第三方庫或非官方接口,存在安全風險和兼容性問題。dsh-ticktick 插件通過調用官方 Open API,爲 DSH 提供了標準化的雙向任務同步能力。

插件介紹

dsh-ticktick 是由用戶 zhengjy01 維護的 DSH 插件,旨在解決智能體與 TickTick / Dida365(滴答清單)之間的數據同步問題。該插件基於官方 OAuth 2.0 Open API 構建,支持拉取任務、創建任務、更新狀態以及一鍵去重同步,並提供了一個 Web 端設置面板用於管理憑證。

核心功能

該插件提供以下核心能力:

  1. 官方 API 集成:使用 OAuth 2.0 授權碼模式對接 TickTick / Dida365 開放平臺(/open/v1),支持 401 響應時的令牌自動刷新。
  2. 多區域支持:支持國內版 Dida365(默認)和國際版 TickTick,可在設置面板或通過 ticktick_config 切換。
  3. 拉取任務:ticktick_tasks / ticktick_sync 可跨所有列表(包括收集箱 Inbox,儘管 Open API 的項目列表可能不包含它)拉取未完成或已完成的任務,按截止日期排序並附帶列表名稱。
  4. 創建任務:ticktick_add 支持創建任務,參數包括標題、列表(通過 ID 或名稱,inbox/收集箱 映射到 Inbox)、截止日期(ISO 8601 或 YYYY-MM-DD)、優先級(0-5 或 none/low/medium/high)、標籤及內容。
  5. 單次同步:ticktick_sync 提供單向同步能力。direction=pull 返回分組摘要;direction=push 會創建缺失的任務,並在列表內按標題去重(包括 Inbox,重複運行不會產生重複任務)。
  6. 任務維護:提供 ticktick_update(更新)、ticktick_complete(完成)、ticktick_delete(刪除)接口,支持可選的項目 ID(自動解析,包含 Inbox)。
  7. Web 設置面板:在 DSH Web 設置中,可配置憑據、運行授權流程(彈窗 + 手動輸入驗證碼)、刷新令牌、快速添加任務(列表選擇器優先顯示 Inbox,排除已歸檔列表)。
  8. 安全存儲:憑證和令牌持久化至 ~/.dsh/dsh-ticktick.(權限 0600),狀態查詢命令 ticktick_status 不會回顯密鑰。

安裝與啓用

安裝此插件需要 DSH 環境。

  1. 執行以下命令安裝:
    dsh plugin --profile web add github:zhengjy01/dsh-ticktick
  1. 安裝完成後,重啓 dsh web 服務。
  2. 插件無需構建步驟,依賴 Node.js 內置的 fetch 和 crypto(要求 Node 22+),無額外運行時依賴。

配置

在首次使用前,需完成 OAuth 授權並配置憑證。

  1. 創建應用:
    在 TickTick / Dida365 開放平臺控制台創建應用,並設置重定向 URI。該 URI 必須與 DSH Web 服務監聽的本地地址匹配,例如:
    http://127.0.0.1:3080/api/dsh-ticktick/oauth/callback
  1. 輸入憑據:
    在 DSH 設置面板進入 TickTick 配置頁面,輸入 client_id 和 client_secret。你也可以通過對話讓 Agent 執行 ticktick_config 來設置這些參數。
  2. 授權登錄:
    在設置面板點擊“開始授權”,登錄後完成回調;若回調失敗,可手動粘貼驗證碼並調用 ticktick_oauth_finish。
  3. 系統提示:
    插件會向系統提示詞注入相關說明,告知智能體在何時應當使用此工具。

典型用法

配置完成後,Agent 可通過自然語言調用相關接口:

  • 拉取今日未完成任務:
    把今天滴答清單裏沒做完的任務同步給我
對應操作:`ticktick_sync` (pull)
  • 推送新任務並去重:
    幫我把這些任務同步到滴答清單:買牛奶、寫週報
對應操作:`ticktick_sync` (push, dedupes)
  • 添加指定任務:
    明天下午3點提醒我開會,加到「工作」清單
對應操作:`ticktick_add`

注意事項

  1. 安全風險:client_secret 和 OAuth 令牌是高權限憑證。插件將其存儲在本地文件 ~/.dsh/dsh-ticktick.(權限 0600)中。如果憑證泄露,請立即運行 ticktick_config(reset: true) 清除。
  2. 網絡限制:OAuth 回調路由僅允許本地迴環訪問;其餘 /api/dsh-ticktick/* 路由僅允許本地和同源訪問。
  3. API 覆蓋範圍:Open API 不支持智能列表過濾和時間觸發提醒(reminders/repeatFlag 僅在存在時透傳,未建模爲參數)。

結語

dsh-ticktick 通過官方 Open API 實現了與滴答清單的雙向同步,爲 DSH 智能體提供了可靠的任務管理能力。無論是日常任務整理還是自動化流程編排,該插件都能提供落地的工具支持。更多細節與源碼,可訪問 GitHub 倉庫。

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

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

小夜