@goodandready/dsh-cron
Scheduled cron tasks, background automation and agent execution for DeepSeek Harness.
Install
dsh plugin --profile web add @goodandready/dsh-cron
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
📦 @goodandready/dsh-cron
<div align="center">
<h3>面向 DeepSeek Harness 的定时 Cron 调度、后台自动化与智能体任务执行引擎</h3>
<p align="center">
<a href="https://www.npmjs.com/package/@goodandready/dsh-cron"><img src="https://img.shields.io/npm/v/@goodandready/dsh-cron.svg?style=for-the-badge&color=6366f1&labelColor=1e1b4b" alt="npm version"></a>
<a href="../LICENSE"><img src="https://img.shields.io/github/license/GooDAnDReaDY/dsh-cron.svg?style=for-the-badge&color=10b981&labelColor=064e3b" alt="license"></a>
<a href="https://github.com/topics/dsh-plugin"><img src="https://img.shields.io/badge/DSH-Plugin-8b5cf6.svg?style=for-the-badge&labelColor=2e1065" alt="DSH Plugin"></a>
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-20%2B-f59e0b.svg?style=for-the-badge&labelColor=451a03" alt="Node version"></a>
</p>
<p align="center">
<a href="https://goodandready.app/"><img src="https://img.shields.io/badge/所有项目-goodandready.app-ff4500.svg?style=for-the-badge&logo=rocket&logoColor=white&labelColor=1a1a2e" alt="所有项目"></a>
</p>
<p align="center">
<a href="README.md"><b>🇬🇧 English</b></a> •
<a href="README.ru.md"><b>🇷🇺 Русский</b></a> •
<a href="README.zh.md"><b>🇨🇳 中文说明</b></a>
</p>
<table align="center">
<tr>
<td align="center">
⭐ <strong>如果您喜欢这个插件,请在 GitHub 上为它点亮 Star</strong> — 这能让我知道插件对您有用,并鼓励我继续开发和维护它。
<br><br>
🐛 <strong>如果您发现 Bug 或希望增加功能</strong>,请使用任意语言在 GitHub 上提交 Issue — 我会评估您的建议,并在后续版本中实现有价值的改进。
</td>
</tr>
</table>
</div>
⚡ 概述与问题
自主 AI 智能体经常需要执行周期性任务:生成每日晨报、整理缺陷跟踪、检查 API 健康状态、同步数据库或定期执行 Git 清理。如果 Harness 内没有专用调度器,用户只能依赖外部 crontab 封装、复杂的 webhook 方案或手动干预。
@goodandready/dsh-cron 是 DeepSeek Harness 的原生全栈调度与后台自动化插件。它将标准 cron 表达式、自然语言间隔语法与自主智能体执行连接起来:
1. 完善的可视化任务管理器 —— 侧边栏按钮带可折叠的活跃任务列表(下次运行时间或实时状态,行数有上限且状态可记忆),以及功能齐全的面板:按类型、模型、渠道筛选,暂停、立即运行、复制、导出/导入与创建任务。
2. 交互式“由 DSH 创建”流程 —— 与智能体对话,把高层需求转化为规范的定时任务。
3. 自主工具调用 —— 原生 cron_* 工具让智能体在会话中自行安排后续执行。
4. 健壮的调度器与原子存储 —— 基于 croner:间隔别名、一次性延时任务、原子写入、运行历史与成本追踪。
5. 六种执行运行时 —— shell、Node.js、Python、HTTP/webhook、远程 SSH 与 Docker,并支持按任务的环境变量、工作区绑定以及面向代码修改任务的隔离 git worktree。
6. 多渠道路由与模板 —— 一次运行可投递到 Telegram、dsh-kanban、Discord、Slack、ntfy、Bark、PushPlus、语音(dsh-tts)与 Gitea,支持 {变量} 消息模板与按 DSH 凭据名称引用的密钥。
🏗️ 架构
graph TD
subgraph Client ["Web 客户端 (DSH UI)"]
SidebarBtn["侧边栏时钟按钮<br/>(DSH 客户端插槽)"]
Overlay["任务管理面板<br/>(标签: 全部 / 活跃 / 暂停 / 已完成)"]
CreateWithDSH["“由 DSH 创建”对话框<br/>(自然语言任务)"]
ManualForm["手动任务表单<br/>(运行时、cron、超时、重叠策略、渠道)"]
SettingsCard["设置卡片<br/>(渠道、模板、凭据)"]
end
subgraph Server ["服务端 (Cordis 与 DSH 服务)"]
HttpRoutes["HTTP REST API<br/>(/dsh-cron/*)"]
AgentTools["工具调用网关<br/>(cron)"]
Scheduler["TaskScheduler 引擎<br/>(Croner 实例 + one-shot 定时器)"]
Store["原子 TaskStore<br/>(tasks.json 原子写入)"]
AgentRunner["智能体会话调度器<br/>(以指定模型执行提示词)"]
Runtimes["执行运行时<br/>(shell、node、python、http、ssh、docker)"]
Notify["投递路由<br/>(模板 + 9 个渠道)"]
Secrets["凭据引用<br/>(DSH credentials / ENV)"]
end
SidebarBtn --> Overlay
Overlay --> CreateWithDSH
Overlay --> ManualForm
SettingsCard --> HttpRoutes
CreateWithDSH -->|POST /chat/start| HttpRoutes
ManualForm -->|POST /tasks| HttpRoutes
HttpRoutes --> Scheduler
AgentTools --> Scheduler
Scheduler --> Store
Scheduler -->|按间隔/一次性触发| AgentRunner
Scheduler --> Notify
✨ 功能与能力
🐝 群蚁协同委托与多智能体并行执行 (Swarm Delegation) (#350)
- 受控工作池:配置并发限制
concurrencyLimit(1..10,默认 3),在不耗尽系统资源的前提下并行处理独立子任务。 - 高容错分解:单个子任务异常完全隔离,群体自动聚合所有成功输出,并在存在异常时清晰上报。
- 智能结果汇编:支持将所有工作节点的执行输出聚合成结构化 Markdown 报告或交由综合模型提炼总结。
- 群体指标与历史:运行历史完整记录成功/失败统计、耗时及每个子节点的执行快照与日志。
🔍 Git Diff 变更查看与交互式补丁审查 (#351)
- 自动 Diff 捕获:在 Git 工作区执行的任务会自动捕获变更文件列表、状态统计及完整 Unified Diff(最高 256 KiB)。
- 一键丢弃 (Discard):一键清空工作区未提交改动,安全重置仓库状态(
git reset --hard HEAD && git clean -fd)。 - 一键应用 (Apply):将保存的 Diff 补丁直接重新注入并应用到工作区(
git apply --whitespace=fix)。 - 交互式审阅面板:在运行详情抽屉中直接查看带有色彩区分的高亮 Diff 变更对比。
🔀 决策节点与条件分支 IF/ELSE (#352)
- 条件路由:任务可配置
branchRules(评估exitCode、output、output.json.<path>等字段),支持equals、notequals、contains、gt、lt、regex等操作符。 - 回退分支:若无匹配规则,自动执行
elseTask。 - 死锁防护:未触发的分支自动标记为
skipped,确保后续汇聚栅栏(joinPolicy: 'all_success')正常通过。 - DAG 可视化:图谱界面直观展示决策标识(
🔀 Decision)与连线判断条件。
🩺 自愈医生(Self-Healing Doctor)(#353)
- 故障诊断分类:自动分类 8 类运行故障(语法错误、缺少依赖、频率限制、认证失效、架构变更、超时、网络错误、运行时异常)。
- 统一代码差分:生成直观的标准 Unified Diff 对比。
- 一键应用与回滚:提供
/doctor/apply与/doctor/revert接口,自动保留多达 10 个历史版本(task.revisions)。 - 受控自主修复:启用
autoHeal: true时,高可信度(high)修复自动生效,且强制 24 小时频次限制防止死循环。
1. 可视化任务管理器
点击 DSH 侧边栏中的时钟图标(位于“新会话”按钮旁)打开管理面板:
- 状态过滤标签:全部、活跃、已暂停、已完成。
- 即时操作:立即运行(Run Now)、暂停/恢复调度、带确认的删除。
- 一键预设模板:每日摘要、每周回顾、待办监控。
- 运行历史:打开任务卡片查看历史运行 —— 时间、耗时、状态(成功 / 失败 / 超时 / 跳过 / 错过)、输出与错误。
- 快捷计划预设:在任务编辑弹窗中通过预设按钮一键填入常用频率(
15m、1h、Daily 09:00、Weekdays、Weekly Mon),并即时更新自然语言预览。 - 自动暂停与预算保护徽章:当任务因预算熔断机制(Burn Guard)自动暂停或手动暂停时,任务卡片上显著展示包含具体原因的状态徽章。
- 汇总统计栏:活跃任务数、总运行次数、总 token 消耗与估算美元成本。
2. “由 DSH 创建”对话框
无需猜测 cron 语法,用自然语言即可创建任务:
1. 点击 Create ⌄ ➔ Create with DSH。
2. 描述要自动化的内容(例如:“每个工作日早上 9 点检查未处理的 PR 并起草评论”)。
3. 插件会创建一个注入了调度器指令的专属智能体会话。智能体会与你确认细节 —— LLM 还是 NO-LLM shell 任务、准确的 cron 表达式、在你的 DSH 安装中可用的经济型模型,以及是否启用“静默规则”(仅在新事件或故障时告警)—— 评估属于对话内定时提醒(schedule_create)还是后台自动化(cron),并在获得您的确认后通过 cron 工具(action: 'create')注册任务。
2. DSH 核心内置 schedule 与 dsh-cron 对比
DeepSeek Harness 内置了轻量级扩展 @deepseek-ai/dsh-schedule,用于会话内的基础定时提醒。下表帮助您根据场景选择合适的工具:
功能维度 · DSH 核心 schedule (@deepseek-ai/dsh-schedule) · @goodandready/dsh-cron
主要定位 · 当前会话内的定时提醒与催办消息 · 无人值守的后台自动化执行器与任务编排引擎
执行上下文 · 当前活动会话内 · 独立的隔离智能体会话或外部后台进程
执行运行时 · 仅当前会话提示词(LLM) · 9 种运行时:llm、script (bash/sh)、node、python、http (REST/webhook)、ssh、docker、skill、workflow
模型工具 · `schedule
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::119,最后更新 2026-11-06