后端开发者的自动化实践:我让AI在夜间悄悄工作

0 阅读6分钟

记录一个后端开发者如何从零开始搭建自己的夜间自动化系统,每天节省30分钟


📖 前言

作为一名后端开发者,我一直在思考一个问题:能不能让AI在我睡觉的时候悄悄工作,第二天醒来就能看到成果?

经过几天的实践,我实现了一个完整的夜间自动化系统:

✅ 每天早上8点自动发送早间简报到飞书

✅ 夜间自动收集AI行业最新动态

✅ 定时任务自动执行和状态监控

✅ 任务看板自动归档旧任务

这个系统每天为我节省30分钟,一个月就是15小时。

这些时间可以用来写文章、学习新技术、开发自己的项目,或者陪伴家人。


🏗️ 一、系统架构

1.1 技术栈选择

我的系统运行在树莓派上,技术栈很简洁:

OpenClaw (AI助手框架)
├── cron jobs (定时任务调度)
├── daily-report skill (早间简报生成)
├── auto_execute_tasks.py (任务自动执行)
└── 爱弥儿任务看板 (任务管理)

系统架构图

┌─────────────────────────────────────────┐
│         OpenClaw Gateway             │
│  (调度器 + AI执行引擎)             │
└────────────┬────────────────────────┘
             │
    ┌────────┴────────┬────────────┐
    │                 │            │
┌───▼───┐      ┌────▼────┐  ┌────▼────┐
│Cron    │      │AI Agent │  │Skill    │
│Scheduler│      │ (爱弥儿) │  │ (daily  │
└─────────┘      └────┬────┘  │-report) │
                      │         └─────────┘
             ┌──────────┴──────────┐
             │  各种定时任务      │
             ├─────────┬──────────┤
      ┌────▼─────┐ ┌──▼──────┐
      │早间简报  │ │素材收集 │
      │(08:00)   │ │(02:00)  │
      └───────────┘ └─────────┘

💻 二、核心功能实现

2.1 自动生成早间简报

目标:每天早上8点自动发送包含系统状态、昨日记录、素材摘要的简报到飞书。

实现内容

  1. 系统状态收集(磁盘、内存、负载)
  2. 昨日memory记录检查
  3. 对话总结统计
  4. 素材摘要提取
  5. 自动发送到飞书

踩坑

  • 时间格式不统一 → 统一使用 %Y-%m-%d
  • 路径带空格 → 所有路径用引号包裹
  • 权限问题 → 添加 chmod +x 赋予执行权限
  • 记住,让OpenClaw按照你自己的要求和格式创建每日简报的Skill

2.2 自动执行任务

目标:分配给AI的任务,在指定时间自动执行。

数据库设计

ALTER TABLE tasks ADD COLUMN assignee TEXT DEFAULT 'user';
ALTER TABLE tasks ADD COLUMN scheduled_time TEXT;

assignee字段:

  • user - 用户手动执行
  • ai - AI自动执行
  • subagent - 子代理执行

任务处理器

TASK_HANDLERS = {
    'daily-report''bash .../send_report.sh feishu',
    '简报''bash .../send_report.sh feishu',
    '更新''openclaw update',
}

踩坑

  • 时间解析错误 → 统一使用 '%Y-%m-%d %H:%M'
  • 死循环执行 → 完成后立即标记为done
  • 数据库锁定 → 添加 timeout=10.0 参数

2.3 定时任务配置

Cron表达式

早间简报:0 8 * * *      (每天8点)
素材收集:0 2 * * *      (每天凌晨2点)
自动执行:0 * * * *       (每分钟检查,实际每5分钟)

Cron表达式解释

0 8 * * *
│ │ │ │ │
│ │ │ │ └─ 星期几 (0-60=周日)
│ │ │ └─── 月份 (1-12)
│ │ └───── 日期 (1-31)
│ └─────── 小时 (0-23)
└───────── 分钟 (0-59)

踩坑

  • 时区问题 → 指定 "tz": "Asia/Shanghai"
  • 任务竞争 → 添加 staggerMs 错峰启动
  • 失败未通知 → 配置 consecutiveErrors 阈值,超过后自动通知

⏰ 三、完整的一天

02:00 - 夜间素材收集

爱弥儿自动醒来,使用Tavily搜索收集昨日的AI行业动态。

🤖 爱弥儿开始夜间素材收集...
✅ 收集到5篇行业动态
✅ 生成收集摘要
✅ 归档到第二大脑

08:00 - 早间简报生成并发送

爱弥儿再次醒来,生成完整的早间简报并发送到飞书。

📊 收集系统状态...
✅ 磁盘: 23G/60G (38%)
✅ 内存: 3.2G/8G (40%)
✅ 负载: 0.450.520.48

📝 检查昨日memory...
✅ 发现 2026-02-21.md 记录

🗣️ 统计会话...
✅ 昨日会话数: 23个

📚 检查素材收集...
✅ 新增素材: 2篇

⏰ 检查定时任务...
✅ 定时任务总数: 5
✅ 昨日执行: 1个

💾 生成简报完成

📤 发送到飞书...
✅ 发送成功

09:00 - 我醒来查看飞书

打开飞书,看到完整的早间简报:

  • 系统状态正常 ✅
  • 昨日记录完整 ✅
  • 素材已收集 ✅
  • 定时任务正常运行 ✅

一切井然有序,美好的一天开始了! ☀️


⚠️ 四、遇到的问题和解决方案

问题1:早间简报发送失败

现象:08:00定时任务执行,但简报没有发送到飞书

原因:飞书插件版本过旧(2026.2.19),最新版本是2026.2.21

解决

npm update -@openclaw/feishu
openclaw gateway restart

教训:定期检查插件更新


问题2:任务没有自动归档

现象:任务完成后,旧任务没有自动归档到归档表

原因:任务执行完成后只更新为in_progress,没有更新为done

解决:完成时立即标记为done,触发自动归档

教训:确保状态流转完整


问题3:数据库锁定

现象:多个进程同时访问数据库,导致操作失败

原因:Gateway重启时,旧的进程没有完全停止

解决pkill 旧进程,添加超时

教训:确保单例运行,合理设置超时


📈 五、系统收益

5.1 时间节省

每天节省30分钟:

  • 查看系统状态:2分钟 → 自动
  • 阅读AI动态:15分钟 → 自动
  • 整理素材:10分钟 → 自动
  • 发送简报:3分钟 → 自动

每月节省15小时,每年节省180小时


5.2 信息质量提升

之前:被动接收、信息碎片化、无法追踪 现在:主动收集、系统化整理、可追溯来源


5.3 生产力提升

  • 任务自动追踪和实时更新
  • 自动执行和自动归档
  • 自动生成早间简报

💡 六、给你的建议

1. 从小处开始

  • 先实现一个简单的定时任务
  • 例如:每天早上发送一句励志语录
  • 成功后再逐步增加功能

2. 善用现有工具

  • 不要重复造轮子
  • OpenClaw、GitHub Actions、IFTTT等
  • 组合使用效果更好

3. 充分测试

  • 先在测试环境验证
  • 手动执行验证结果
  • 再配置为自动任务

4. 记录日志

  • 所有的自动化都要有日志
  • 出问题时能快速定位
  • 优化时有数据支撑

5. 持续迭代

  • 不要追求一步到位
  • 先跑起来,再持续优化
  • 记录每次改进的收获

📝 结语

经过几天的实践,我的夜间自动化系统已经稳定运行:

✅ 每天08:00自动发送早间简报到飞书

✅ 每天02:00自动收集AI行业动态

✅ 每小时自动检查并执行任务

✅ 任务完成后自动归档

我学会了一个重要道理:

自动化不是减少工作量,而是让工作更有价值。

机器做的,是重复的、机械的、可预测的工作。人做的,是创造性的、决策性的、需要智慧的工作。

这才是AI时代人机协作的正确姿势。


感谢阅读!如果你也想搭建自己的自动化系统,欢迎在评论区讨论。