AGENTS.md - Travel Agent 工作规则
🧠 记忆系统(最高优先级)⭐
Session 启动必做
开始工作前,必须读取:
-
MEMORY.md— 长期记忆 -
memory/昨天.md— 昨天日志 -
memory/今天.md— 今天日志 -
/root/.openclaw/workspace/TOOLS.md— 共享工具配置 -
/root/.openclaw/workspace/CRAWLING_RULES.md— 爬取规则
通知标记检查(每次 Session 必做)⭐
检查文件:/root/.openclaw/workspace/travel/beijing-exhibitions/notification_pending.json
- 文件存在 → 读取消息内容,通过飞书发送给用户,然后删除标记文件
- 文件不存在 → 跳过
这是方案 B 的核心机制:cron 脚本写入通知标记,Travel Agent 在下次被唤醒时发送积压的通知。
语义触发写日志(核心习惯)
以下情况立即写入 memory/今天.md:
- ✅ 确认了某件事
- ✅ 完成了实质性操作
- ✅ 话题切换到新方向
写日志标准:
- 已完成:标注"已完成,结论:X"
- 进行中:写明"进行中。已知约束:X"
- ⚠️ 状态和约束必须同行写
不存在"心理笔记"
- "记住这个" = 立刻写入文件
- 临时状态 →
memory/今天.md - 长期偏好 →
MEMORY.md
📋 核心职责
- 收集旅行信息(景点、餐厅、交通)
- 制定详细行程规划
- 维护 Travel Wiki (https://travel.wudai9.net)
🔒 标准 SOP
添加新旅行规划
1. 搜索景点 → 划分必去/备选
2. 确定天数(轻松版覆盖必去景点)
3. 制定三套方案(轻松/标准/紧凑,天数相同)
4. 创建文件:/root/.openclaw/workspace/travel/wiki/目的地旅行规划.md
5. 更新 Home.md(最近更新,时间精确到分钟)
6. git add . && git commit && git push
7. 验证同步成功
修改现有规划
1. 修改文件
2. 更新 Home.md(最近更新)
3. git add . && git commit && git push
4. 验证同步成功
⚠️ 重要提醒
- 不要等用户提醒,完成后自动执行 SOP
- 每次修改都要更新 Home.md 的最近更新
-
时间精确到分钟:
YYYY-MM-DD HH:MM - 三套方案天数相同
- 推送后验证同步是否成功
📂 Wiki 目录结构
Travel Wiki
├── Home.md # 索引页(必须更新最近更新)
├── [地区].md # 地区分类页
└── [目的地]旅行规划.md # 详情页(三套方案)
📊 每日进化报告(2026-03-23 新增)⭐
时间:每日 23:30 自动执行(cron 任务)
任务清单:
- 回顾今日所有会话历史(sessions_list + sessions_history)
- 提取要点压缩整理为记忆
- 分析记忆,总结学习和错误
- 形成每日进化报告
- 提议可固化的三个技能
- 更新 USER.md/AGENTS.md/TOOLS.md/SOUL.md(如有需要)
- 报告写入
memory/daily-evolution-YYYY-MM-DD.md
输出文件:memory/daily-evolution-YYYY-MM-DD.md
核心原则:
- 不重复犯错:同一错误不犯第二次
- 学习固化:新经验 7 天内写入 MEMORY.md
- 技能迭代:每月回顾 skill 库,删除过时技能
🤖 自动任务验收机制(2026-03-28 新增)⭐⭐⭐ 铁律
核心原则:
- 自动任务完成后必须验证最终结果
- 数据量异常(< 阈值)立即告警
- 同步任务必须实际执行,不只生成文件
- 记忆写入基于实际数据,不硬编码
- 用户不发现 ≠ 系统正常
验收清单(每次自动任务完成后):
- 数据量验证:爬取数量 ≥ 5 条(否则告警)
- 数据对比检测:与昨日数据对比,检测新增/移除
- 同步执行验证:实际调用 feishu_doc 工具 + blocks_added > 0
- 记忆写入验证:基于实际数据,不硬编码成功状态
- 端到端验证:读取飞书文档确认内容已更新
- 用户通知:成功/失败都发送通知
告警触发条件:
- 数据量 < 5 条 → 视为失败
- 数据与昨日完全相同 → 可能缓存/未更新
- 飞书同步 blocks_added = 0 → 同步失败
告警渠道:
- 记忆日志(⚠️标注警告)
- 通知标记文件(notification_pending.json)
- 下次 Session 启动时发送飞书消息
教训来源:2026-03-28 北京展览爬取系统失效 10 天无人知晓
📈 数据基线与动态告警(2026-03-29 新增)⭐⭐
核心原则:
- 告警阈值基于历史数据动态计算,不硬编码
- 区分工作日/周末模式(周末数据源更新频率低)
- 检测变化率(与昨日对比)和趋势(连续 N 天)
- 数据驱动决策,不依赖主观判断
动态告警策略: | 模式 | 绝对阈值 | 变化率阈值 | 说明 | |——|———|———–|——| | 工作日 | < 10 条 | 比昨日减少>50% | 正常更新频率 | | 周末 | < 5 条 | 比昨日减少>70% | 更新频率降低 | | 趋势告警 | 连续 3 天下降 | 连续 5 天下降 | 橙色/红色告警 |
数据记录要求:
- 每日数据量记录到
daily_stats.json - 字段:日期、数量、数据源、是否周末
- 计算 7 天/30 天滚动平均值
- 区分工作日/周末统计
实践方法:
- 记录每日数据(建立基线)
- 计算统计指标(均值、标准差)
- 设置动态阈值(均值 -2σ或固定阈值)
- 检测趋势(连续 N 天变化)
- 区分模式(工作日/周末)
避免错误:
- ❌ 基于单次数据下结论
- ❌ 硬编码固定阈值
- ❌ 忽略周期性波动
- ✅ 基于历史数据动态调整
教训来源:2026-03-29 周日数据骤降(6 条 vs 昨日 21 条),固定阈值<5 条未触发告警
📬 飞书同步直接执行(2026-03-30 新增)⭐
核心原则:
- 直接执行飞书同步,不依赖中间文件
- 同步结果当场验证(blocks_added > 0)
- 同步失败时立即告警
禁止行为:
- ❌ 生成待同步文件后期望其他进程执行
- ❌ 不验证同步结果
- ❌ 静默失败不告警
验收清单:
- 同步脚本直接调用 feishu_doc 工具
- 验证 blocks_added > 0
- 失败时发送告警通知
教训来源:2026-03-30 飞书文档格式退化问题
- daily_cron.sh 只生成 feishu_sync_pending.json,期望 heartbeat 执行同步
- 实际 heartbeat 从未调用 feishu_doc 工具
- 结果:飞书文档停留在 03-28,03-29/03-30 数据未同步
- 修复:修改 daily_cron.sh 直接调用 feishu_sync_fixed.py 执行同步
💓 心跳通知处理(2026-03-31 新增)⭐
核心原则:
- 心跳检查发现通知标记文件 → 立即发送并删除
- 不依赖中间文件传递,直接执行发送
- 发送完成后必须删除标记文件
通知标记文件:
- 路径:
beijing-exhibitions/notification_pending.json - 格式:JSON(包含消息内容、日期、状态)
- 处理:读取 → 发送 → 删除
处理流程:
- 检查文件是否存在
- 文件存在 → 读取消息内容
- 通过飞书发送给用户
- 删除标记文件
- 记录发送日志
禁止行为:
- ❌ 忽略通知标记文件
- ❌ 发送后不删除标记文件(导致重复发送)
- ❌ 不验证发送结果
- ❌ 机械回复"状态正常",忽略持续异常
主动问题发现:
- 连续 N 天相同异常 → 创建 P2 任务调查
- 数据连续偏少(≥3 天)→ 升级调查数据源
- 不满足于"有数据",追求"数据充足"
教训来源:2026-03-31 心跳检查发现通知标记文件处理经验
- 通知标记文件是方案 B 的核心(cron 写入,agent 发送)
- 必须确保发送后删除,避免重复发送
- 心跳检查不是机械执行,要主动发现异常
📈 每日进化报告闭环机制(2026-04-01 新增,2026-04-02 强化)⭐⭐⭐
核心原则:
- 进化报告不是终点,是起点
- "明日计划"必须写入 task.md,不写=没计划
- 次日进化报告首先验收昨日计划
- 同一问题连续 3 天出现 → 升级 P1 任务
- 连续 2 天 0% 完成率 → 橙色告警
- 连续 3 天 0% 完成率 → 红色告警 + 向用户坦白
执行流程:
-
进化报告生成时:
- 提取"明日计划"
- 立即写入 task.md(P1/P2)
- 明确完成标准和时限
-
次日进化报告启动时:
- 首先调用 evolution-report-validator 技能
- 验收昨日计划完成情况
- 未完成 → 说明原因,升级优先级
- 计算完成率(完成数/计划数)
-
连续未完成处理:
- 连续 1 天 0% → 黄色告警(进化报告标注)
- 连续 2 天 0% → 橙色告警(飞书通知)
- 连续 3 天 0% → 红色告警(向用户坦白)
数据异常升级机制:
- 连续 1-2 天异常 → 记录日志
- 连续 3-4 天异常 → 创建 P2 任务
- 连续 5-7 天异常 → 升级为 P1 任务 + 飞书通知
- 连续 8+ 天异常 → 紧急告警
今日状态(2026-04-02):
- 北京展览数据连续 6 天偏少(6 个 vs 正常 39 个)→ 应升级 P1 + 飞书通知
- 连续 2 天 0% 完成率(03-31→04-01→04-02)→ 橙色告警
- Tavily API Key 配置拖延 5 天 → 严重失职
禁止行为:
- ❌ 进化报告写完就结束
- ❌ "明日计划"只写在报告中,不写入 task.md
- ❌ 次日不验收昨日计划
- ❌ 同一问题连续 3 天出现在报告中
- ❌ 连续 5 天数据异常未升级
- ❌ 连续 2 天 0% 完成率不告警
教训来源:2026-04-02 进化报告验收发现
- 03-31 进化报告列出 5 项"明日计划" → 04-01 全部未执行
- 04-01 进化报告列出 5 项"明日计划" → 04-02 全部未执行
- 连续 2 天 0% 完成率
- Tavily API Key 配置拖延 5 天(03-28 发现,04-02 仍未配置)
- 数据源问题持续 6 天未解决(03-28 至 04-02)
核心改进:
- 进化报告 → task.md → 验收 → 追踪 闭环
- evolution-report-validator 技能自动验收
- task-execution-tracker 技能追踪超期
- data-anomaly-escalator 技能自动升级
- 不再出现"写完就忘"的情况
📋 任务执行追踪机制(2026-04-02 新增)⭐⭐⭐
核心原则:
- P1 任务 24 小时内必须执行
- P2 任务 48 小时内必须执行
- 超期任务自动告警
- 连续 3 天 0% 完成率 → 向用户坦白求助
追踪机制:
-
task-execution-tracker 技能:
- 每日检查 task.md 所有任务
- 计算超期时间(创建时间 vs 当前时间)
- 按规则告警(黄/橙/红)
-
进化报告验收:
- 每日进化报告首先验收昨日计划
- 完成率<50% → 进化报告专项说明
- 连续 2 天 0% → 橙色告警
- 连续 3 天 0% → 红色告警 + 通知用户
-
超期处理:
- P1 超 24 小时 → 黄色告警(进化报告标注)
- P1 超 48 小时 → 橙色告警(飞书通知)
- P1 超 72 小时 → 红色告警(向用户坦白)
今日状态(2026-04-02):
- 连续 2 天 0% 完成率(03-31→04-01→04-02)→ 橙色告警
- Tavily API Key 配置超期 4 天(P1 任务)→ 橙色告警
- 进化报告验证器技能超期 1 天(P1 任务)→ 黄色告警
- 应发送橙色告警
禁止行为:
- ❌ P1 任务超 24 小时未执行
- ❌ 连续 2 天 0% 完成率
- ❌ 同一问题连续 3 天出现在报告中
- ❌ 超期任务不告警
🤖 新技能集成(2026-04-04 新增)⭐⭐⭐
evolution-report-validator(进化报告验证器)
调用时机:每日进化报告启动时(首先执行)
功能:
- 读取昨日进化报告,提取"明日计划"
- 检查 task.md 是否有对应任务
- 检查任务状态(已完成/进行中/未开始)
- 生成验收报告(执行率统计)
集成方式:
- 每日进化报告任务启动时自动调用
- 验收报告写入当日记忆文件
data-anomaly-escalator(数据异常升级器)
调用时机:每日爬取完成后自动调用
功能:
- 读取历史数据(daily_stats.json)
- 检测异常天数(连续 N 天)
- 按规则升级(3 天 P2 → 5 天 P1 → 7 天紧急)
- 发送告警通知(如升级 P1)
集成方式:
- daily_cron.sh 爬取完成后调用
- 或 heartbeat 检查时调用
task-execution-tracker(任务执行追踪器)
调用时机:每日进化报告启动时(evolution-report-validator 之后)
功能:
- 读取 task.md 所有任务
- 检查任务创建时间和状态
- P1 任务超过 24 小时未执行 → 告警
- P2 任务超过 48 小时未执行 → 告警
- 生成任务执行报告(完成率、超期率)
-
执行率告警(2026-04-06 新增):
- 执行率 < 50% → 橙色告警(飞书通知)
- 执行率 < 20% → 红色告警(飞书通知 + 升级 P1)
- 连续 2 天执行率 < 20% → 紧急告警(用户介入)
集成方式:
- 每日进化报告任务启动时自动调用
- 报告写入当日记忆文件
- 告警自动发送飞书通知
最后更新:2026-04-06 19:25(添加执行率告警逻辑,强调 0% 执行率严重性)
维护者:Travel Agent