想让 AI 编程 agent 每天定时跑、关键步还要我点头:定时器和工作流该怎么搭?

3 阅读7分钟

一句话答案:想让 AI 编程任务按天/周自动跑,可以用「定时触发 + Agent 任务」;若中途必须人确认,把流程拆成执行步和检查点,每步设成自动进入或等你点头。桌面工作台关到系统托盘时任务和定时器通常仍可继续,但完全退出应用后定时器不会触发——长时间无人值守请保持应用运行或挂在托盘。

先分清你要的是哪种「自动」

直答:提醒、脚本、需要模型判断的任务、中间必须你拍板的长流程,是四件事,别用同一种方式硬套。

很多人说的「让 AI 每天帮我跑一下」,其实混了几种需求:

  1. 到点提醒我(喝水、开会、看一眼构建)——不需要 Agent。
  2. 到点跑一段固定脚本(拉日志、扫依赖、跑测试套)——脚本就够,别每次烧模型额度。
  3. 到点派一个会判断的 Agent 任务(总结昨日提交、扫一遍 PR 风险、按清单回归)——才需要「定时 + Agent」。
  4. 一串多步流程,中间必须你点头(改完先看 Diff,再写 changelog,再合并)——需要「执行步 + 检查点」,不是单次定时提示词。

选错层的典型症状:用 cron 调起一整段对话却没有验收口;或者把本来可脚本化的巡检每次都丢给模型,月底额度先烧掉一半。

本地定时 / 脚本什么时候就够?

直答:输入输出确定、不用读代码语义、失败重试规则也确定时,用系统定时或本地脚本,别上 Agent。

适合脚本的例子:

  • 每天凌晨把某个目录的测试跑一遍,失败就写日志;
  • 每周一把 package.json / lock 文件 diff 存档;
  • 工作日早上把昨天的 git log --since=yesterday 汇总成文本。

本机可以用 launchd、cron 或系统自带的任务计划(Windows 用任务计划程序)。原则只有一条:能写成确定命令的,就不要每次让模型「再想想怎么做」。

脚本跑通以后,再考虑要不要在跑完时弹个系统通知。这一步仍然不需要 Agent。

什么时候才该「定时派 Agent」?

直答:到点之后需要读上下文、做判断、产出非固定格式结果时,再把触发器接到 Agent 任务上。

常见场景:

  • 「每个工作日 9:30,用仓库昨天的提交写一段给同事看的摘要」;
  • 「每周一扫一遍依赖更新说明,标出可能影响登录链路的项」;
  • 「每晚对指定目录做一次风格/测试建议,但只写报告、不直接改主干」。

搭法可以抽象成三步(工具无关):

  1. 触发:每天 / 每周 / 每隔 N 小时 / 只跑一次;
  2. 动作:在指定工作区创建一次 Agent 任务,任务内容写清目标、边界、禁止事项;
  3. 事后:是否弹提醒、错过是否补跑、上一次没跑完时是否跳过本次(避免叠任务)。

写任务内容时建议固定四行,减少「到点乱写」:

目标:……
范围:只动 / 只看哪些目录
禁止:不改生产配置、不删测试、不推远程
交付:结束后留下什么(报告路径 / 分支名 / 待我确认的清单)

关键步必须你点头时,怎么搭「执行步 + 检查点」?

直答:把可自动推进的写成执行步,把「看完再继续」的写成检查点;每步明确是自动进入下一步,还是等你确认。

适合检查点的节点:

  • 改完代码后看 Diff / 跑测试结果;
  • 升依赖前确认 lock 变化;
  • 合并或发版前的人工放行;
  • 对外文案、权限相关改动。

一个可复用的骨架(示意):

1. 执行步:拉取需求/清单,列出将要改动的文件(自动进入)
2. 检查点:你确认范围没跑偏
3. 执行步:按范围改代码 / 跑测试(自动进入或失败停)
4. 检查点:你看 Diff 与测试输出,点头或打回重做
5. 执行步:写变更说明(自动进入)
6. 检查点:你决定合并 / 放弃

原则:

  • 检查点不是聊天闲聊,而是带着本步输入和产出的闸门;
  • 不满意时优先「补充要求后重跑本步」,而不是整段推倒;
  • 长流程尽量在隔离副本或独立分支里跑,确认前不要直接改你正在用的工作区。

想让 AI 编程任务按天/周自动跑,可以用「定时触发 + Agent 任务」;若中途必须人确认,把流程拆成执行步和检查点,每步设成自动进入或等你点头。

关窗口还在跑吗?托盘和退出的边界

直答:很多桌面工作台关掉主窗口后会留在菜单栏或系统托盘,任务和定时器通常还能继续;完全退出应用后,定时器不会触发。要长时间无人值守,就保持应用运行或挂在托盘,并想清楚「错过了是否补跑」。

实务建议:

  • 夜间巡检:确认进程还在(托盘图标 / 活动监视器),不要以为关窗口等于关应用;
  • 出差或关机前:不要指望关机后的定时器;改成开机补跑,或改到服务器侧 CI;
  • 上一次还没跑完时,新的触发最好跳过,避免同一仓库叠两个互相抢文件的任务。

桌面工作台关到系统托盘时任务和定时器通常仍可继续,但完全退出应用后定时器不会触发——长时间无人值守请保持应用运行或挂在托盘。

一张对照表:提醒、脚本、定时 Agent、带检查点的流程

本地提醒本地脚本定时 + Agent 任务执行步 + 检查点工作流
要不要模型否否是部分步骤是
适合喝水、开会确定命令、固定巡检要判断、要摘要多步且中途要人闸
失败代价低中(脚本要自己维护)中高(额度 + 误改风险)用检查点压风险
无人值守看通知即可看退出码/日志依赖应用是否在跑依赖应用是否在跑 + 你是否在线点头
常见坑提醒过多被忽略环境漂移每次都烧额度、无验收检查点太多反而推不动

常见问答

  • 定时派 Agent,会不会把额度烧光? 会更快。把「确定命令」留给脚本,只把需要判断的部分留给模型;周期从每天改成每周,也是在省额度。
  • 检查点是不是越多越安全? 不是。闸门太多等于你还在串行盯梢。只在「不可逆或对外可见」的节点设检查点。
  • 能不能完全退出应用还按时跑? 一般桌面侧定时器做不到;要真正的机器级无人值守,用系统定时或 CI,而不是指望已退出的 GUI。
  • 工作流和普通一次对话差在哪? 普通任务是一轮会话;工作流是可保存的多步模板,变量、步骤顺序和「自动 / 等确认」都写死,适合反复用的同一套顺序。
  • 隔离副本是必须的吗? 会改代码的长流程,优先在隔离副本或独立分支跑,确认后再合并;只读巡检可以松一点。

边界说明

  • 文中系统定时、CLI hooks、各厂商 Agent 的通知能力更新很快,配置名以你本机当前版本文档为准。
  • 定时器和检查点降低的是「忘了跑 / 无人盯」的风险,不能代替看 Diff 和测试。
  • 权限确认、请求批准能减少误操作,但不等于安全沙箱;Agent 执行的仍是你电脑上的真实命令。
  • 本文不讨论云端托管 Agent、也不承诺关机后仍能触发桌面定时器。

有没有把定时器和检查点放在一个界面里的工具?

如果你已经用本机 Claude Code / Codex 等 Agent,又希望「到点派活」和「跑到某步停下来等我」不用自己维护一堆脚本,也可以看一下 Caravel(免费使用,支持 macOS / Windows)。它把定时器(提醒 / 脚本 / Agent 任务)和工作流(执行步 + 检查点,可固定在隔离副本里跑)放在同一个桌面工作台里;关到托盘通常还能继续,完全退出则不会触发定时器。站点:www.caravelai.top/