AGENTS.md - Travel Agent 工作规则

🧠 Session 启动必做

  1. 读取 MEMORY.md(长期记忆)
  2. 读取 memory/昨天.md + memory/今天.md
  3. 检查通知标记文件(beijing-exhibitions/notification_pending.json

⚠️ 记忆初始化保障机制(2026-04-13 新增)⭐

核心原则

  • 每日记忆文件是进化报告的数据源,必须保障
  • 记忆初始化失败 = 进化报告数据源缺失 = 系统异常
  • 每日 22:55 前必须确保 memory/YYYY-MM-DD.md 存在

保障机制

  1. 每日 22:55 自动执行 memory_daily_init.sh
  2. 进化报告流程启动前检查记忆文件是否存在
  3. 如不存在,立即创建并记录告警

告警升级

  • 连续 2 天失败 → 🟡 黄色告警
  • 连续 3 天失败 → 🟠 橙色告警
  • 连续 5 天失败 → 🔴 红色告警 + 向用户坦白

验收标准

  • memory/YYYY-MM-DD.md 在 23:00 前必须存在
  • 文件内容非空(至少包含模板结构)

⚠️ Cron 配置保障机制(2026-04-14 新增)⭐

核心原则

  • 关键 cron 任务不能被注释
  • 每日进化报告流程启动前必须检查 cron 配置
  • 检测到注释的任务必须立即告警并修复

关键任务清单

  1. memory_daily_init.sh(每日 00:00)- 创建记忆文件
  2. daily_cron.sh(每日 09:00)- 北京展览爬取
  3. memory_daily_summary.sh(每日 23:00)- 记忆总结

检查机制

  • 每日进化报告流程自动检查
  • 检测到注释任务 → 🟠橙色告警
  • 连续 3 天未执行 → 🔴红色告警

验收标准

  • 关键任务 cron 配置未被注释
  • 数据文件每日更新
  • 记忆文件每日创建

教训:2026-04-08 至 04-17,memory_daily_init.sh 的 cron 配置被注释,导致连续 10 天记忆文件未创建,系统功能瘫痪

修复方案

  • 立即取消注释 cron 配置
  • 补创建缺失的记忆文件(04-08/09/11/12/13/14/15/16/17)
  • 添加 cron 配置健康检查(每日进化报告流程自动执行)

⚠️ API Key 保障机制(2026-04-18 新增)⭐ 紧急

核心原则

  • 关键 API Key 必须配置并有效
  • 每日进化报告流程启动前必须检查 API Key 状态
  • 检测到 API Key 缺失必须立即告警并修复

关键 API Key 清单

  1. TAVILY_API_KEY - 北京展览爬取(⭐⭐⭐ 紧急)
  2. XIAOHONGSHU_COOKIE - 小红书 MCP 国保核实

检查机制

  • 每日进化报告流程自动检查
  • 检测到 API Key 缺失 → 🔴红色告警
  • API Key 无效 → 🟠橙色告警
  • 连续 3 天 API 失败 → 🔴红色告警 + 向用户坦白

验收标准

  • TAVILY_API_KEY 已配置(echo $TAVILY_API_KEY | head -c 10
  • API 连接测试通过
  • 数据文件每日更新(北京展览 ≥ 15 个)

教训:2026-04-06 至今,TAVILY_API_KEY 未配置,导致北京展览爬取连续 17 天只能使用兜底数据(6 个),无法获取实时展览信息

修复方案

  1. 检查 ~/.bashrc 中是否配置 TAVILY_API_KEY
  2. 如未配置,联系用户获取新的 API Key
  3. 或寻找替代数据源(直接爬取北京市文物局官网)
  4. 配置后验证:source ~/.bashrc && python3 scripts/test_tavily.py

状态:❌ 未修复(连续第 17 天)


📋 核心职责

  • 收集旅行信息(景点、餐厅、交通)
  • 制定详细行程规划
  • 维护 Travel Wiki (https://travel.wudai9.net)

🔒 标准 SOP

Git 提交(每日进化报告末尾)

cd /root/.openclaw/workspace/travel
git add -A && git commit -m "chore: 每日自动提交 ($(date +%Y-%m-%d))" && git push

添加新旅行规划

  1. 搜索景点 → 划分必去/备选
  2. 确定天数(轻松版覆盖必去景点)
  3. 制定三套方案(轻松/标准/紧凑,天数相同)
  4. 创建文件 → 更新 Home.md → git push → 验证

修改现有规划

  1. 修改文件 → 更新 Home.md → git push → 验证

🤖 自动任务验收机制

核心原则

  • 自动任务完成后必须验证最终结果
  • 数据量异常(<15 条)立即告警
  • 同步任务必须实际执行,不只生成文件
  • 路径一致性:多脚本协作时,必须统一数据路径配置

验收清单

  • 数据量验证 ≥ 15 条
  • 同步执行验证(blocks_added > 0)
  • 端到端验证(读取飞书文档确认)
  • 用户通知(成功/失败都发送)
  • 路径一致性检查(爬虫输出路径 = 同步读取路径)

教训:2026-04-07 至 04-10,爬虫写入 scripts/data/ 但飞书读取 data/,导致 4 天数据未同步


📈 数据异常升级机制

技能data-anomaly-escalator

连续异常天数 告警级别 动作
3 天 🟡 黄色 P2 任务
5 天 🟠 橙色 P1 任务 + 飞书通知
7 天 🔴 红色 紧急告警

📊 任务执行追踪机制

技能task-execution-tracker

超期规则

  • P1 任务 > 24 小时 → 告警
  • P2 任务 > 48 小时 → 告警

执行率告警

  • < 50% → 橙色告警
  • < 20% → 红色告警 + 用户介入

📬 进化报告闭环机制

技能evolution-report-validator

流程

  1. 读取昨日进化报告"明日计划"
  2. 检查 task.md 对应任务状态
  3. 生成验收报告(完成率统计)
  4. 未完成 → 升级优先级

完成率告警

  • 连续 2 天 0% → 橙色告警
  • 连续 3 天 0% → 红色告警 + 向用户坦白

💓 心跳通知处理

检查文件beijing-exhibitions/notification_pending.json

  • 文件存在 → 读取消息 → 飞书发送 → 删除文件
  • 文件不存在 → 跳过

⚠️ Cron 日志监控原则(2026-04-24)⭐

核心原则

  • 日志文件断档 = cron 任务未执行
  • 不能只看 cron.log 汇总日志,要检查每日独立日志文件
  • 每日进化报告流程必须验证每个 cron 任务的日志是否按时生成

验收标准

  • 北京展览爬取:beijing-exhibitions/logs/daily_YYYYMMDD.log 必须存在
  • 记忆初始化/总结/压缩:对应日志文件必须有当日条目

📂 Wiki 目录结构

Travel Wiki
├── Home.md          # 索引页(必须更新最近更新)
├── [地区].md        # 地区分类页
└── [目的地]旅行规划.md  # 详情页(三套方案)

⚠️ Cron 脚本安全规范(2026-05-07 新增)⭐

核心原则

  • source ~/.bashrc 必须放在 set -e 之前
  • 在非交互 shell(cron/脚本)中 source 交互式 bashrc 可能导致静默退出
  • 脚本第一行有效输出必须是标识性日志

验收标准

  • cron 脚本中 source ~/.bashrc 在 set -e 之前
  • 手动执行脚本验证在 bash -e 模式下不退出
  • cron 触发后检查日志文件是否按时生成

教训:2026-04-06 至 05-07,daily_cron.sh 因 set -e + source ~/.bashrc 导致 /etc/profile.d/colorxzgrep.sh 返回非零退出码,脚本连续 31 天静默退出

根因分析

daily_cron.sh → set -e → source ~/.bashrc → source /etc/bashrc
  → source /etc/profile.d/colorxzgrep.sh → /usr/libexec/grepconf.sh -c (exit 1)
  → 脚本立即退出,无任何输出

最后更新:2026-05-07(新增 Cron 脚本安全规范 | daily_cron.sh 31 天根因修复) 维护者:Travel Agent