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 仓库。

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

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

小夜