前言¶
在 DeepSeek Harness(DSH)里管理任务计划,常见做法是在会话列表中记录或用脚本批量执行。这种方式难以看到任务排队、实时用量和结果汇总,也无法利用峰谷价差降低成本。
nwasvsad/dsh-task-plan 插件在 DSH 的「任务计划」页面提供一张任务计划表,支持将任务写入、按谷值时段自动并发执行,并记录每条任务的 token、费用、耗时与结果。插件不注册模型侧工具,空闲时不增加请求 token,可与 dsh-task-digest 分离安装、启停。
插件定位¶
- 插件名称:dsh-task-plan
- 维护者:nwasvsad
- 分类:工作流
- 核心价值:把待执行任务变成可排期、可监控的会话队列,利用谷值时段自动并发执行,并在任务表里查看实时用量与结果。
核心功能¶
任务计划表¶
- 每个任务包含标题、说明、类型、工作目录、启用开关等字段。
- 计划数据持久化到本地 JSON,重启不丢失。
- 支持新建、修改(运行中仅允许改标题)、删除任务。
谷值自动执行¶
- 默认北京时间 18:00 执行当天所有
pending任务。 - 若配置时刻落在峰时且
offPeakOnly=true,自动顺延到下一个谷值起点(12:00 或 18:00)。 - 周末/节假日不调整。
- 峰时与计费口径与
dsh-token-cost、dsh-task-digest保持一致: - 峰时 = 周一至周五(排除
holidays配置的法定节假日)09:00–12:00、14:00–18:00;其余为谷值。 - 价格(元 / 百万 token,缓存命中 / 未命中 / 输出):
deepseek-flash:谷 0.02 / 1 / 4,峰 0.04 / 2 / 8deepseek-v4-pro:谷 0.15 / 4.5 / 13.5,峰 0.3 / 9 / 27
并发与费用可见¶
- 每个任务对应一个独立 Session,默认并发 2,可配置 1–8。
- 单个任务失败/超时不影响其他任务。
- 任务完成后,按峰/谷单价估算 token 金额,显示在任务表和结果摘要中。
- 金额为按公开单价估算,非账单;官方调价时需修改
lib/tier.js的RATE_TABLE。
零常驻 token¶
- 不注册任何模型侧工具、skill 或 prompt 片段。
- 空闲时不增加请求 token。
可恢复¶
- Host 重启时,将上次
queued/running的任务标记为interrupted并补一条记录,不自动重跑,可在页面手动重试。
安装与启用¶
本包是标准 DSH 组合包(dsh.bundle.patch + cordis.patch.yml),可直接从 GitHub 安装。
# 推荐固定 commit,避免后续推送改变实际运行内容
dsh plugin --profile web add github:nwasvsad/dsh-task-plan#<commit>
也可以使用插件市场索引(Discover → Index sources):
https://nwasvsad.github.io/dsh-plugin-market/index.json
安装后默认使用 $DSH_HOME/task-plan,可在 profile 的 cordis.patch.yml 里按需覆盖配置。
配置¶
| 键 | 默认 | 说明 |
|---|---|---|
enabled |
true |
false 时 Host 不调度、页面显示禁用 |
dataDir |
$DSH_HOME/task-plan |
plan.json 根目录 |
defaultCwd |
process.cwd() |
任务未写 cwd 时的工作目录 |
agentPreset |
部署默认 | 任务 Session 的 preset;默认不传 |
runAt |
'18:00' |
每日自动执行时刻(北京时间) |
offPeakOnly |
true |
峰时顺延到下一个谷值起点 |
autoRunEnabled |
true |
关闭后只允许手动执行 |
holidays |
[] |
全天谷值的 YYYY-MM-DD |
concurrency |
2 |
1–8 |
maxTasksPerRun |
20 |
单次 run 上限,其余留到下一次/手动 |
taskTimeoutMs |
1800000 |
单任务超时(30 分钟) |
startTimeoutMs |
15000 |
等待 Agent 进入 running 的上限 |
pollIntervalMs |
500 |
Agent 状态轮询 |
currency |
'¥' |
金额前缀 |
非法值会回落到默认值并记日志。
典型用法¶
安装完成后,刷新 http://127.0.0.1:3080,左侧栏会出现「任务计划」图标。
-
打开「任务计划」页面,新建任务:
- 标题:如「每周数据清洗」
- 说明:描述任务目的
- 类型:选择对应类型
- 工作目录:如/workspace/data
- 启用开关:打开 -
在任意会话里点击左侧「任务计划」图标,可切回看板,查看排队/运行/完成状态、耗时、token、金额与结果摘要。
-
点「打开会话」直接跳到对应 Session,查看实时对话、工具调用与输出;会话头部的 token-cost 徽标显示实时用量。
-
当天任务执行完毕后,若需要日报,可安装独立插件
dsh-task-digest。
适用场景与注意¶
- Host 必须常开:本插件不依赖 OS 计划任务;Host 停机则当天不执行,pending 留到下一次。
- 权限审批:任务 Session 继承部署的 sandbox/approval 策略;需要人工审批的操作会挂起到超时。建议把自动任务写成无需审批的工作区操作。
- 一个任务 = 一个 Session:已完成任务不会每天自动重复;需要重复的任务请手动重试或每天新增(暂不做 recurrence)。
- 标题即会话名:Host 会 best-effort
rename,失败时退回首条 prompt 自动标题。 - 卸载影响:卸载本插件不会删除历史 Session 或
plan.json;日报不受影响。
生态背景¶
DSH 理念是「一切皆插件」,社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。