前言¶
DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。当需要系统化处理每日任务时,手动维护清单效率低下。dsh-task-dispatcher 作为一个插件,利用 TickTick 作为 DSH 的每日任务调度器:一个定时器拉取今日待办,将其写入任务文件,并通过通知渠道(微信/Flomo/macOS)告知 Agent,Agent 读取文件并执行,最后将结果写回 TickTick。
插件定位¶
- 名称:dsh-task-dispatcher
- 维护者:zhengjy01
- 功能:将 TickTick 的任务列表转换为 DSH 可读取的 Markdown 文件,并支持自动执行与结果回执。
核心功能¶
1. 定时调度与任务拉取
* 定时器:默认每分钟轮询一次(ctx.interval),可通过配置调整间隔,或通过 dispatcher_run 手动触发。
* 任务来源:默认从 TickTick 的 5️⃣AI 列表拉取任务。支持配置 projectName、projectId 以及 dueMode(today 仅拉取今日/逾期/未定日期任务,all 拉取所有未完成任务)。
* 写入文件:将拉取到的任务写入 Markdown 检查清单文件(默认路径:~/.dsh/dsh-task-dispatcher/today-tasks.md)。
2. 执行与结果回执
* 自动执行:开启后,每个任务将在独立的 dsh --profile headless 会话中串行执行。
* 结果回执:任务完成后推送通知(OK/FAIL 及简要结果)。批量执行时会汇总输出。执行日志通过 stdout 输出结果,stderr 输出推理过程。
* 超时控制:每个 Worker 有独立的超时时间,默认 30 分钟(范围 1-1440 分钟)。
3. 通知渠道
* 支持三种通知方式:微信(通过本地 ClawBot 网关)、Flomo、macOS (AppleScript)。
* 变更通知:仅在任务列表变更或任务执行完成时通知,无新任务时不发送。
* 微信配置:通过本地网关 http://127.0.0.1:51235 发送,默认接收者为 ClawBot 状态目录下的账户。
4. 廉价模式
* 支持在 DeepSeek 的非高峰时段自动执行任务,以节省成本。需配置 cheapPreset 和 peakWindows。
5. 工作区与同步
* 工作区:自动执行 Worker 的运行目录可配置(默认为用户家目录),可指定为 DSH 的工作区 ID,以便在 GUI 中按工作区展示。
* 延迟同步面板:提供设置页面,配置静默阈值、会话上限及 Launchd 检查间隔,支持手动强制刷新队列。
6. 代理工具
* 提供命令行工具:dispatcher_status(查看状态)、dispatcher_config(配置)、dispatcher_run(手动运行)、dispatcher_report(查看报告)。
安装与启用¶
前置条件
* 需已安装 dsh-ticktick 插件以提供数据层和 OAuth 凭证。
* DSH 版本需 >= 0.1.5-rc.1(兼容 0.2.0-rc.2)。
* 使用微信通知需本地运行 DSH-WeChatClawBot 网关。
安装步骤
1. 在终端执行安装命令:
dsh plugin --profile web add dsh-task-dispatcher
- 重启 DSH Web 服务,确认无加载错误。
- 确认插件已加载,在 Agent 中运行
dispatcher_status,输出应显示“插件状态:已启用”并列出当前配置。
典型用法¶
- 手动触发调度:
dispatcher_run
- 查看当前配置:
dispatcher_config
- 运行无头会话:
dsh --profile headless
注意事项¶
- 文件路径:任务文件默认位于
~/.dsh/dsh-task-dispatcher/today-tasks.md。 - 微信依赖:微信通知不直接连接微信服务器,必须依赖本地网关
DSH-WeChatClawBot,且默认读取~/.dsh-wechat目录下的状态。 - 生态位置:该插件托管在 SkillHub 目录与 GitHub,与 DeepSeek 官方无直接从属关系。
总结¶
dsh-task-dispatcher 为 DSH 提供了一个标准化的任务调度入口。它通过 TickTick 管理任务流,利用 Markdown 文件与 Agent 交互,并具备自动执行、结果回执和成本控制能力,适合需要将日常任务自动化流转的开发者。