定时任务
使用 CronAdd / CronUpdate / CronRemove 创建和管理持久化定时任务。
定时任务 / Cron Jobs
OpenCowork 的 Cron 系统把“让 Agent 稍后执行”变成了可持久化、可审计、可回放的任务。入口工具是 CronAdd。
支持的调度 / Supported schedules
| kind | 含义 | 示例 |
|---|---|---|
at | 一次性延迟执行 | +10m、+2h、+1d |
every | 固定间隔重复执行 | 3600000(1 小时) |
cron | 标准 5 段 cron 表达式 | 0 9 * * * |
关键规则 / Important rules
at必须使用相对时间偏移,不要传 ISO 时间戳deleteAfterRun=true时,任务默认会在执行后清理- CronAgent 默认会把结果发到桌面通知
- 如果你传了
pluginId + pluginChatId,结果可以转发到消息平台
工具入口 / Tool API
CronAdd
CronAdd 接受的核心字段包括:
nameschedulepromptagentIdmodelworkingFoldersshConnectionIddeliveryModedeliveryTargetdeleteAfterRunmaxIterationspluginIdpluginChatIdsourceProviderIdsourceSessionTitlesourceProjectIdsourceProjectName
其他操作
CronUpdateCronRemoveCronList
数据库结构 / Database structure
Cron 相关数据落在这些表里:
cron_jobscron_runscron_run_messagescron_run_logs
cron_jobs 关键字段
| 字段 | 作用 |
|---|---|
schedule_kind | at / every / cron |
schedule_at | 一次性执行时间 |
schedule_every | 间隔毫秒数 |
schedule_expr | cron 表达式 |
schedule_tz | 时区 |
agent_id | 指定子代理 |
model | 模型覆盖 |
working_folder | 执行目录 |
ssh_connection_id | 远程执行上下文 |
session_id | 来源 session |
delivery_mode | desktop / session / none |
delivery_target | session 目标 |
plugin_id / plugin_chat_id | 消息平台投递目标 |
enabled | 是否启用 |
delete_after_run | 运行后删除 |
last_fired_at | 最近触发时间 |
fire_count | 触发次数 |
deleted_at | 软删除时间 |
cron_runs 会保存快照
每次执行都会记录:
- job 名称快照
- prompt 快照
- session / project / provider 快照
- model / working folder / delivery 快照
- 执行状态和输出摘要
运行方式 / Runtime behavior
- 应用启动时会恢复已持久化且启用的 jobs
- 运行时会做并发限制
- 每次触发都会更新统计并写 run history
Notify和 plugin 投递会共享一套 delivery 语义
典型场景 / Typical use cases
- 每天固定时间生成汇报
- 每小时检查日志并通知
- 周期性拉取外部系统数据
- 在指定 SSH 环境里执行巡检脚本
- 用消息平台定时推送结果