OpenViking
volcengine
Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.
LouisHaoL/dsh-timer-agent
DSH plugin: host-resident scheduled-jobs × AI-agent engine (hermes-agent cron inspired) — 60s ticker fires real agent sessions via cron; pinned-session / project-workdir / default-workspace targeting; timer_agent model tool + web board
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:LouisHaoL/dsh-timer-agent
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
English | 中文
一个 DeepSeek Harness (DSH) Web GUI 插件:调研 NousResearch/hermes-agent 的 cron 系统后,按其「定时器 ↔ Agent 协同」思路实现的 host 常驻定时任务引擎——dsh web 服务启动即生效,GUI 页面关闭也照常触发。

到点(5 段 cron)通过真实 agent 会话执行你写好的 prompt:
对话中可直接用 timer_agent 工具管理任务(create / list / update / pause / resume / remove / run);Web GUI 侧边栏「定时任务」面板管理同一批任务——一个台账,三个入口(工具 / WebUI / 文件)。
┌─ dsh web 宿主进程 ────────────────────────────────┐
│ 60s ticker(常驻,GUI 关闭也运行) │
│ ├─ HostJobStore ~/.dsh/timer-agent/jobs.json │
│ │ (原子写,损坏降级不崩溃) │
│ ├─ TimerRunner at-most-once:先顺延 nextRunAt │
│ │ 再触发;运行中跳过;错过即跳过 │
│ │ ├─ agents.resume(钉住会话) │
│ │ └─ agents.create + workspaceRegistry │
│ │ (新会话挂到正确项目) │
│ ├─ timer_agent 工具(模型可调用) │
│ └─ /api/dsh-timer-agent/* 路由(仅回环) │
└────────────────────────┬──────────────────────────┘
│ HTTP 轮询镜像(5s)
┌─ 浏览器半边(薄)────────┴──────────────────────────┐
│ 侧边栏入口 + 任务面板(React) │
│ 可折叠项目/会话树 · cron 预设 · 执行历史 │
└───────────────────────────────────────────────────┘
执行结算通过 session/event(turn/end 的 reason.kind)判定成功/失败,失败原因精确写入台账。
* / */n / a-b / 逗号列表)+ 预设下拉(每天 09:00 / 每小时 / 每 10 分钟 / 每周一 09:00,新建与编辑页均有)timer_agent 直接创建与管理定时任务plugin:timer-agent 播报段,agent 知晓本插件能力与协作方式dsh plugin --profile web add link:<本目录绝对路径>
安装后重启 dsh web,侧边栏出现「定时任务」入口即生效(浏览器侧改动强刷 Ctrl+F5 即可)。
pnpm install
pnpm run build # lib/index.js(host) + lib/client.js(浏览器,CSS 已内联)
pnpm run typecheck
pnpm test # 49 项行为级 E2E(fake host faces,无需 dsh 运行时)
pnpm run smoke-test # 静态结构冒烟(23 项)
E2E 覆盖:cron 解析与下次运行计算(本地时间语义)、台账原子写与损坏降级、at-most-once 调度触发、钉住会话 resume、turn/end 成功/失败结算(含失败原因入账)、运行中拒绝重复触发、禁用调度不触发、手动触发通道、workdir 传递、timer_agent 工具全动作(含非法参数拒绝)、HTTP 路由 CRUD + run + 回环/同源防线 + 非法输入 400。
| hermes-agent | 本插件 |
|---|---|
| gateway 进程内 60s ticker | dsh web 宿主进程内 60s ticker |
| 触发即新 AIAgent(platform=cron) 会话 | agents.create/resume 真实 dsh 会话 |
| ~/.hermes/cron/jobs.json 台账 | ~/.dsh/timer-agent/jobs.json(原子写) |
| at-most-once(先推进 next_run_at) | 先顺延 nextRunAt 再触发 |
| claim 去重 + 心跳 | 运行中跳过 + 5s 手动触发快通道 |
| deliver 回投/指定平台续跑 | 钉住会话 / workdir 新会话 / 默认空间 |
| cron_hint → notepad → script 组装 prompt | 自包含 prompt(无人在场,不可提问) |
| turn/end reason.kind=error 结算 | 同款 session/event 结算 |
dsh web 服务进程存活(服务停了自然不触发;重启后只跑已顺延到期的任务,错过即跳过)Apache-2.0
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: agent-workflow、automation、cron、prompt-engineering。