Infrastructure — 03-10 Cron任务与自动化¶
定时能力确认¶
[03-10] work_assistant 明确说明支持 Cron Job 定时任务,每个任务可绑定到指定 Agent 执行。这是后续"事项提醒 / 工时提醒 / 自动更新"能力的起点。
工作区路径:
单次事项提醒¶
需求场景¶
Dad 需要临时提醒,支持一次性触发和二次追加提醒。
实际运行案例¶
AIIB 报表改进提醒(03-11 → 03-12): - Dad 要求次日 10:00 提醒,内容包括 Generate 传入时间和列表显示报表日期 - [03-12 10:02] 提醒成功触发 - Dad 要求同日 15:00 再提醒一次,提醒后自动删除 - [03-12 15:00] 二次提醒成功触发
公司培训提醒(03-13): - Dad 说"今天提醒我做公司的培训",Bot 自动选择当天 10:00 - [03-13 10:02] 提醒成功触发 - Dad 要求下午 3 点再提醒 - [03-13 15:00] 二次提醒成功触发
设计要点:单次提醒触发后自动删除,Bot 具备简单的时间推断能力(当前已过早晨则选 10:00)。
工时填报自动化¶
持续运行的定时任务¶
从 03-10 起,每日 17:00 自动发送工时填报提醒,形成固定节奏。
Dad 的排期策略¶
[03-17] 核心决策: - 除 AIIB 外,其它项目一天只填一个 - 不要同一天填多个项目 - 一个项目尽量一次填完再切下一个 - AIIB 的周二定期除外
Bot 据此读取当前计划,重新排布剩余工作日的工时分配。
全貌视图升级¶
[03-18] Dad 要求:每天提醒不只发当天要填什么,还要附带已填进度。
这是提醒内容从"单点通知"升级为"计划 + 进度总览"的关键转折。
实时状态更新¶
状态持久化文件:
踩坑:已完成仍重复提醒¶
问题(03-19)¶
Dad 下午已确认填完工时,但 17:00 cron 仍然发送了提醒。
Dad 反馈:"今天已经填过了,为什么又发一个?"
根因¶
5 点的定时提醒是自动发出的,没有检查当天是否已完成。
修复方案¶
增加"完成确认状态"判断,当天已确认完成则不再发送提醒。
核心规则确立:
提醒发送 ≠ 状态完成。只有 Dad 明确确认后才更新 tracking。
踩坑:自动提醒导致误记账¶
问题(03-19)¶
自动提醒内容 6355 7h 被误当成实际填报结果记录。
Dad 指出:"刚刚自动提醒里的 6355 7h 不要记录,否则会错。"
修复¶
- 回滚错误记录:
6355保持24h,不记录误加的+7h - 仅保留当天真实完成的
8429 +5h
这是本主题中最关键的自动化修正点——将"提醒触发"与"状态更新"逻辑彻底分离。
新增任务后自动重排¶
[03-19] Dad 新增 1867 +30h,要求 Bot 自行决定分配方式,之后每天提醒即可。
Bot 将新任务纳入工时池,自动完成排期,承诺: - 每天 5 点提醒 - 填完确认后当天不再重复提醒
工时自动化至此从"提醒"升级为完整闭环:任务池管理 → 自动排期 → 定时提醒 → 完成确认 → 当日去重。
自动化架构总结¶
技术方案¶
调度:Cron Job(每个任务绑定指定 Agent)
状态:memory/labor_hours_tracking.json
提醒:定时触发 + 全貌视图
确认:用户反馈后更新状态
去重:当日已确认则抑制提醒
自动化规则¶
- 每天 17:00 发送工时提醒
- 填完确认后当天不再重复提醒
- 单次事项提醒后自动删除
- 只有用户确认完成后才更新工时状态
- 每日提醒附带整体进度全貌
- 新增任务自动重排剩余工作日
关键经验¶
- 提醒 ≠ 完成:自动提醒不能自动视为已完成,必须等用户确认
- 误记账要能回滚:自动化系统必须支持状态回退
- 单点通知不够:用户需要看到全局进度才能做决策
- 排期策略要人性化:一天只填一个项目、集中完成再切换