TOOLS.md - Travel Agent 工具配置

共享配置/root/.openclaw/workspace/TOOLS.md
爬取规则/root/.openclaw/workspace/CRAWLING_RULES.md


🔑 API 配置

Tavily API

  • 环境变量TAVILY_API_KEY
  • 配置位置~/.bashrc(cron 需显式 source)
  • 用途:实时搜索(国保开放情况核实)

小红书 MCP

  • 状态:⚠️ Cookie 过期(需用户重新登录)
  • 用途:国保单位开放情况核实

📊 数据源可靠性

来源 可靠性 用途
政府官网 ⭐⭐⭐ 国保名录
国家文物局 PDF ⭐⭐ 国保名录
小红书 ⭐⭐⭐ 开放情况核实
Tavily 搜索 ⭐⭐ 开放情况核实(备选)

🤖 核心技能清单

进化报告闭环

  • evolution-report-validator - 验收昨日计划
  • task-execution-tracker - 追踪超期任务
  • data-anomaly-escalator - 数据异常升级

自动任务监控

  • exhibition-crawler - 北京展览爬取
  • feishu-sync-direct - 飞书直接同步

旅行规划

  • trip-planning - 三套方案生成
  • wiki-province-template - 省份页面模板
  • 12306-train-query - 高铁车次查询

📍 文件位置

北京展览数据目录规范 ⭐(2026-04-11 修复)

文件 路径 说明
爬虫输出 beijing-exhibitions/scripts/data/beijing_exhibitions_YYYY-MM-DD.md ✅ 正确路径
飞书同步读取 beijing-exhibitions/scripts/data/ ✅ 已修复(原 data/ 错误)
历史遗留目录 beijing-exhibitions/data/ ⚠️ 空目录,待清理
通知标记 beijing-exhibitions/notification_pending.json ✅ 正常

教训:04-07 至 04-10 因路径不匹配(爬虫写 scripts/data/,飞书读 data/)导致 4 天数据未同步

其他文件

文件 路径
任务清单 task.md
记忆日志 memory/YYYY-MM-DD.md

📋 Cron 配置

# 每日 00:00 记忆初始化(确保记忆文件存在)⭐
0 0 * * * cd /root/.openclaw/workspace/travel && ./scripts/memory_daily_init.sh >> memory/daily_init.log 2>&1

# 每日 22:55 记忆初始化检查(兜底保障)
55 22 * * * cd /root/.openclaw/workspace/travel && ./scripts/memory_daily_init.sh >> memory/daily_init.log 2>&1

# 每日 9:00 北京展览爬取
0 9 * * * source ~/.bashrc && /root/.openclaw/workspace/travel/beijing-exhibitions/scripts/daily_cron.sh

# 每日 23:00 每日记忆总结
0 23 * * * cd /root/.openclaw/workspace/travel && ./scripts/memory_daily_summary.sh >> memory/daily_summary.log 2>&1

# 每日 23:30 进化报告
30 23 * * * /root/.openclaw/workspace/scripts/daily_evolution.sh

⚠️ 重要:关键任务行首不能有 #(注释符号),否则任务不会执行!


🔍 Cron 配置检查

检查命令

crontab -l | grep -E "(memory|beijing|crawl)"

检查项

  • memory_daily_init.sh 未被注释(行首无 #
  • daily_cron.sh 未被注释
  • memory_daily_summary.sh 未被注释

故障排查

  1. 检查 cron 配置:crontab -l
  2. 取消注释:crontab -e,移除行首的 #
  3. 验证服务:systemctl status cron
  4. 手动执行测试:./scripts/memory_daily_init.sh
  5. 检查日志:cat memory/daily_init.log

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

修复方案

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

状态:✅ 已修复(2026-04-17 19:26)


⚠️ Tavily API Key 未配置(2026-04-18 更新)⭐ 紧急

现象

[ERROR] ❌ Tavily API Key 未配置
[WARNING] ⚠️ 爬取数据过少 (0 条),使用已知展览兜底
[INFO] 去重后:6 个

影响

  • 北京展览爬取只能使用兜底数据(6 个已知展览)
  • 无法获取实时展览信息
  • 飞书文档数据停滞(最后更新 04-06)
  • 数据目录为空(beijing-exhibitions/data/

根本原因

  • TAVILY_API_KEY 环境变量未配置
  • 可能原因:API Key 过期/被删除/从未配置

解决方案(P1 紧急):

  1. 检查 ~/.bashrc 中是否配置 TAVILY_API_KEY
  2. 如未配置,需要用户重新获取 Tavily API Key
  3. 或寻找替代数据源(直接爬取北京市文物局官网)
  4. 配置后验证:echo $TAVILY_API_KEY | head -c 10

状态:✅ 根因已修复(2026-05-07)

  • daily_cron.sh 中 set -e + source ~/.bashrc 导致脚本静默退出(连续 31 天)
  • 已将 source ~/.bashrc 移到 set -e 之前
  • Tavily API 已恢复(手动测试获取 18 个展览)
  • 等待明天 09:00 CST cron 自动触发验证

根因确认(2026-04-25):

  • Tavily API 返回 HTTP 432This request exceeds your plan's set usage limit
  • 不是 Key 未配置,是免费套餐配额已耗尽
  • 修复方案:升级 Tavily 套餐 或 切换到替代数据源(Searxng/DuckDuckGo/直接爬取官网)

状态更新(2026-04-29):

  • 连续 23 天未修复,已触发无效循环检测
  • 暂停每日重复告警,等待用户决策

API 错误码速查(2026-04-25 新增)

HTTP 状态码 含义 修复建议
401/403 Key 未配置或无效 检查环境变量
429 限流 增加请求间隔
432 配额耗尽 升级套餐或更换 API

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

规则 说明
source 在 set -e 之前 source ~/.bashrc 必须在 set -e 之前执行
避免非交互 source cron 脚本中尽量只加载必要环境变量
第一行输出标识 脚本第一行有效输出必须是标识性日志

根因/etc/profile.d/colorxzgrep.sh/usr/libexec/grepconf.sh -c 返回 exit 1,在 set -e 模式下导致整个脚本静默退出


🆕 提议新技能

技能 1:Wiki 三级校准器 (wiki-calibrator)

功能

  • 批量检查所有省份页面格式一致性
  • 验证 Home.md 统计表与省份页面数据对齐
  • 自动统一格式(表格、面包屑、链接结构)

状态:提议中(04-29 首次完成手动校准,建议脚本化)

技能 2:Git 提交完整性检查器 (git-commit-checker)

功能

  • 每次进化报告末尾自动检查 git status
  • 检测到 unstaged 变更时自动执行提交
  • 记录提交状态到当日记忆文件

状态:提议中(反复出现未提交变更问题)


🔧 记忆初始化脚本

路径scripts/memory_daily_init.sh

功能

  • 创建 memory/YYYY-MM-DD.md 模板文件
  • 确保每日记忆总结有写入目标
  • 记录执行日志到 memory/daily_init.log

故障排查

  1. 检查脚本是否存在:ls -la scripts/memory_daily_init.sh
  2. 检查脚本权限:chmod +x scripts/memory_daily_init.sh
  3. 检查 cron 配置:crontab -l
  4. 手动执行验证:./scripts/memory_daily_init.sh
  5. 检查日志:cat memory/daily_init.log

*最后更新:2026-05-07(daily_cron.sh 根因修复 Tavily API 恢复 Cron 脚本安全规范)*