GEO 项目夜间自动开发 — 自动化任务执行指南
GEO 项目夜间自动开发 — 自动化任务执行指南
文档信息 创建时间:2026-04-28 作者:小龙(AiToMoney 团队) 项目:GEO ToolKit — AI Crawler 检查与 SEO/GEO 优化工具 标签:自动化、Cron、OpenClaw Agent、GEO 项目
- 背景 GEO 项目需要实现夜间自主开发:每天凌晨自动触发 AI 智能体(小龙)执行代码开发、测试和文档更新,全程无需人工干预。
核心目标:cron 定时触发 → 智能体自动开发 → 完成后 QQ 汇报结果
- 问题与排查过程 2.1 问题描述 cron 脚本每天 03:00 和 04:00 执行,日志显示"通知已发送",但实际代码一行没动。持续了 3 天(4/27 ~ 4/28)。 2.2 排查链路
排查项
结果
时间
cron 是否执行
✅ 正常执行
4/28 07:18
脚本是否写入队列文件
✅ 正常写入
4/28 07:18
openclaw message send 是否成功
✅ 消息发送成功
4/28 07:18
代码是否有新文件产出
❌ 无新文件
4/28 07:18
工作记录日志是否生成
❌ 未生成
4/28 07:18 2.3 根因分析 关键发现:openclaw message send 是小龙发消息给建国,不是建国发消息给小龙。
比喻:小龙自己给自己发了个备忘录,然后假装没看到。 整个链路在 4/25 和 4/26 能工作,是因为当时有 heartbeat 心跳机制检测触发文件。但 4/27 后心跳机制没有正确触发开发任务执行。 2.4 失败尝试
方案
结果
原因
heartbeat 检测触发文件
❌ 失效
心跳逻辑不够强,收到消息没有触发开发
openclaw agent --session-id
❌ 失败
session 文件锁冲突(当前对话占用锁)
openclaw agent --channel qqbot --to
❌ 失败
同样受 session 锁限制
手动触发(建国发消息)
✅ 可行
但失去自动化意义
- 解决方案
3.1 核心发现
openclaw agent --local 可以创建全新的独立会话,不依赖现有 gateway session,绕过锁冲突。
测试验证:
openclaw agent
--local
--to "+86000000000"
--message "测试:回复'NEW SESSION OK'即可"
--timeout 30
输出:NEW SESSION OK ✅ 3.2 最终架构
- 脚本实现 4.1 Round 1 — 通知建国(05:00) 文件:scripts/geo-night-work-03.sh #!/bin/bash
GEO 夜间开发 Round 1(05:00)— 通知建国
openclaw message send
--channel qqbot
--target qqbot:c2c:2374A81FBC14BD45333517A5FED72829
--message "🌙 GEO 夜间开发启动(05:00)..."
4.2 Round 2 — 自动触发执行(05:05) 文件:scripts/geo-night-work-04.sh #!/bin/bash
GEO 夜间开发 Round 2(05:05)— 全自动触发执行
核心:openclaw agent --local 创建新会话,绕过 session 锁
1. 写入任务队列
cat > "<equation>QUEUE_DIR/</equation>{DATE}-0505.json" << EOF { "round": "05:05", "task": "GEO Checklist 核心模块+测试", "instruction": "..." } EOF
2. 用 openclaw agent --local 触发新会话执行开发
openclaw agent
--local
--to "+86000000000"
--message "🌙 GEO 夜间开发任务..."
--timeout 600
4.3 Crontab 配置
02:00 - 记忆备份到飞书
0 2 * * * backup-feishu.sh
05:00 - GEO 夜间开发 Round 1(通知)
0 5 * * * geo-night-work-03.sh
05:05 - GEO 夜间开发 Round 2(自动执行)
5 5 * * * geo-night-work-04.sh
- 测试结果 5.1 测试执行时间线
时间
事件
状态
08:04
手动触发测试(首次)
✅ 成功
08:04-08:08
新会话自动开发(4 分钟)
✅ 成功
08:08
测试完成,退出码 0
✅ 成功
16:50
第二次 cron 触发测试
✅ 成功 5.2 开发产出
文件
说明
状态
geo_checklist.py
GEO Checklist 核心模块(670 行)
✅ 新增
geo_checklist_test.py
31 个测试用例
✅ 新增
main.py
FastAPI 后端 v0.3.0
✅ 更新 5.3 测试结果 All 31 tests passed. ✅
测试覆盖: Meta 标签检查(title/description/canonical/viewport/charset/language) 结构化数据验证(JSON-LD/Open Graph/Twitter Card) 内容质量检查(标题/正文长度/H 标签层次) 技术优化(robots.txt/sitemap/https/移动适配) AI Crawler 检查(12+ AI 爬虫 robots.txt 规则) 性能检查(页面大小/图片 alt 属性) 5.4 日志输出 [2026-04-28 08:04:49] [TEST] GEO 测试任务启动 [2026-04-28 08:04:49] [TEST] 队列文件已写入 [2026-04-28 08:04:49] [TEST] 调用 openclaw agent --local 触发执行... ...(自动开发过程:写代码、测试、修复、再测试)... All 31 tests passed. [2026-04-28 08:08:01] [TEST] openclaw agent 退出码: 0 [2026-04-28 08:08:01] [TEST] 测试任务完成
- 关键技术点 6.1 openclaw agent --local vs Gateway 模式
对比项
--local
Gateway 模式
Session 依赖
✅ 无(创建新会话)
❌ 需要现有 session
锁冲突
✅ 不会锁
❌ 容易锁冲突
适用场景
定时任务、自动化触发
用户交互场景
推荐指数
⭐⭐⭐⭐⭐
⭐⭐⭐ 6.2 关键命令
测试 --local 模式是否可用
openclaw agent
--local
--to "+86000000000"
--message "测试消息"
--timeout 30
6.3 注意事项
--to 参数:必须提供有效的 E.164 格式号码,可以是任意占位号码(如 +86000000000),用于 session 路由。
--timeout 参数:开发任务耗时较长,建议设置 300-600 秒(5-10 分钟)。
- 后续计划 完善 geo_checklist.py 的 @graph JSON-LD 格式解析 集成到秒哒平台 添加批量 URL 检查功能 生成 SEO/GEO 改进建议报告
© 2026 AiToMoney 团队 | GEO 项目自动化执行指南