5dc715fec880560bbd1e6f1082a3041f3be1c06a
MEMORY.md
| ... | ... | @@ -13,6 +13,137 @@ |
| 13 | 13 | |
| 14 | 14 | --- |
| 15 | 15 | |
| 16 | +## 🧠 三层记忆法则(2026-03-06 添加)⭐ 重点 |
|
| 17 | + |
|
| 18 | +### 第 1 层 预防(写入时) |
|
| 19 | +- 完成任务后**立即**写入 `memory/YYYY-MM-DD.md` |
|
| 20 | +- 长期经验写入 `MEMORY.md` |
|
| 21 | +- **不等提醒,不等心跳** |
|
| 22 | + |
|
| 23 | +### 第 2 层 侦测(恢复时) |
|
| 24 | +- **Session 开始前必做**: |
|
| 25 | + 1. 读取 `MEMORY.md`(长期记忆) |
|
| 26 | + 2. 读取 `memory/昨天.md` |
|
| 27 | + 3. 读取 `memory/今天.md` |
|
| 28 | + |
|
| 29 | +### 第 3 层 兜底(执行时) |
|
| 30 | +- 高风险操作前搜索记忆找约束 |
|
| 31 | +- 不可逆操作前当场确认 |
|
| 32 | + |
|
| 33 | +--- |
|
| 34 | + |
|
| 35 | +## ⚠️ 端到端验收原则(2026-03-06 添加)⭐ 铁律 |
|
| 36 | + |
|
| 37 | +**违反记录**: |
|
| 38 | +1. 2026-03-06 11:50 - 创建飞书文档但没有推送内容 |
|
| 39 | +2. 2026-03-06 11:52 - 用户指出后才检查修复 |
|
| 40 | + |
|
| 41 | +**验收清单(必须逐项检查)**: |
|
| 42 | +- [ ] 代码部署前手动执行一次 |
|
| 43 | +- [ ] 飞书文档创建后读取验证内容非空 |
|
| 44 | +- [ ] 表格、列表都已正确渲染 |
|
| 45 | +- [ ] 发送通知包含文档链接 |
|
| 46 | +- [ ] 用户确认收到 |
|
| 47 | + |
|
| 48 | +**核心原则**: |
|
| 49 | +- **"创建了"≠"完成了"** |
|
| 50 | +- **"执行了"≠"成功了"** |
|
| 51 | +- **必须验证最终结果,不能只验证中间步骤** |
|
| 52 | + |
|
| 53 | +--- |
|
| 54 | + |
|
| 55 | +## 🔧 工具选择原则(2026-03-06 最终版)⭐ |
|
| 56 | + |
|
| 57 | +**核心原则**: |
|
| 58 | +- **所有网站** → ⭐⭐⭐⭐⭐ **Playwright**(统一工具,稳定可靠) |
|
| 59 | +- **小红书** → ⭐⭐⭐⭐⭐ **小红书 MCP 专用工具**(官方 API) |
|
| 60 | +- **web_fetch** → ⭐ **仅作为备选**(Playwright 不可用时) |
|
| 61 | +- **❌ 禁止**:优先使用 web_fetch 爬任何网站 |
|
| 62 | + |
|
| 63 | +**教训**: |
|
| 64 | +- 之前错误:根据不同网站类型选择不同工具 |
|
| 65 | +- 正确做法:统一使用 Playwright,避免 web_fetch 的 DNS 问题 |
|
| 66 | + |
|
| 67 | +--- |
|
| 68 | + |
|
| 69 | +## 🔧 北京展览爬取系统(2026-03-07 添加)⭐ 重点 |
|
| 70 | + |
|
| 71 | +### 数据源清单(10 个,已验证成功) |
|
| 72 | + |
|
| 73 | +**官方权威(7 个)**: |
|
| 74 | +1. 故宫博物院官网 → Playwright 浏览器自动化 |
|
| 75 | +2. 中国美术馆官网 → web_fetch + Jina Reader |
|
| 76 | +3. 国家博物馆官网 → 北京市文物局官网汇总(**最佳方案**) |
|
| 77 | +4. 首都博物馆官网 → Playwright + HTTPS |
|
| 78 | +5. 中国地质博物馆 → 北京市文物局官网 |
|
| 79 | +6. 中国园林博物馆 → 北京市文物局官网 |
|
| 80 | +7. 中国非物质文化遗产馆 → 北京市文物局官网 |
|
| 81 | + |
|
| 82 | +**民间数据(3 个)**: |
|
| 83 | +1. 豆瓣同城 → web_fetch + Jina Reader |
|
| 84 | +2. 小红书 → Playwright + Cookies |
|
| 85 | +3. 北京市文物局 → 官方汇总(**最推荐**) |
|
| 86 | + |
|
| 87 | +### 核心教训(2026-03-06 血泪经验) |
|
| 88 | + |
|
| 89 | +**❌ 犯过的错误**: |
|
| 90 | +1. 脚本有 bug 就部署(log_message 函数未定义) |
|
| 91 | +2. 没有消息通知(执行失败用户不知道) |
|
| 92 | +3. 没有飞书同步(数据爬取了但没更新文档) |
|
| 93 | +4. 创建了飞书文档但没有推送内容(只有标题) |
|
| 94 | +5. 没有复用昨天成功经验 |
|
| 95 | + |
|
| 96 | +**✅ 正确做法**: |
|
| 97 | +1. 部署前必须手动测试一次 |
|
| 98 | +2. 集成消息通知(成功/失败都发送) |
|
| 99 | +3. 端到端验收(飞书文档内容验证非空) |
|
| 100 | +4. 固化成功经验(创建 Skill) |
|
| 101 | +5. 每日 9 点自动执行(cron) |
|
| 102 | + |
|
| 103 | +### 文件位置 |
|
| 104 | +- 主爬虫:`/root/.openclaw/workspace/travel/beijing-exhibitions/scripts/crawler.py` |
|
| 105 | +- 定时任务:`/root/.openclaw/workspace/travel/beijing-exhibitions/scripts/daily_cron.sh` |
|
| 106 | +- Skill: `~/.openclaw/skills/exhibition-crawler/SKILL.md` |
|
| 107 | +- 飞书文档:https://feishu.cn/docx/IIpVd0zDZoJgSSxPdsXc0DzHneh |
|
| 108 | + |
|
| 109 | +### Cron 配置 |
|
| 110 | +``` |
|
| 111 | +0 9 * * * /root/.openclaw/workspace/travel/beijing-exhibitions/scripts/daily_cron.sh |
|
| 112 | +``` |
|
| 113 | + |
|
| 114 | +--- |
|
| 115 | + |
|
| 116 | +## 🏛️ 山东国保单位核实(2026-03-07 添加)⭐ 重点 |
|
| 117 | + |
|
| 118 | +### 任务进度 |
|
| 119 | +- **目标**:核实山东省 250 处国保单位开放情况 |
|
| 120 | +- **方法**:小红书 MCP 搜索(关键词:`{城市} {景点} 开放 门票`) |
|
| 121 | +- **判断标准**:笔记数 ≥ 5 篇 → 高置信度开放 |
|
| 122 | + |
|
| 123 | +### 已完成任务 |
|
| 124 | +1. **P2-6-1**(2026-03-07 10:33):济南 + 青岛 36 处,累计 81/250(32.4%) |
|
| 125 | +2. **P2-6-2**(2026-03-07 11:30):烟台 + 威海 20 处,累计 101/250(40.4%) |
|
| 126 | +3. **P2-6-3**(2026-03-07 15:00):潍坊 + 淄博 22 处,累计 123/250(49.2%) |
|
| 127 | + |
|
| 128 | +### 核实结果规律 |
|
| 129 | +- **全部开放**:已核实的 123 处全部开放(100%) |
|
| 130 | +- **高置信度**:大部分景点笔记数 ≥ 10 篇 |
|
| 131 | +- **中置信度**:部分遗址/墓葬类景点笔记数 5-10 篇 |
|
| 132 | + |
|
| 133 | +### 剩余任务 |
|
| 134 | +- **P2-6-4**:泰安 + 济宁剩余 31 处 |
|
| 135 | +- **P2-6-5**:枣庄 + 东营 |
|
| 136 | +- **P2-6-6**:临沂 + 德州 |
|
| 137 | +- **P2-6-7**:聊城 + 滨州 |
|
| 138 | +- **P2-6-8**:菏泽 |
|
| 139 | + |
|
| 140 | +### 文件位置 |
|
| 141 | +- 脚本:`/root/.openclaw/workspace/travel/scripts/verify_shandong_p2-6-*.py` |
|
| 142 | +- 数据:`/root/.openclaw/workspace/travel/scripts/data/shandong_guobao_*.json` |
|
| 143 | +- Wiki:`wiki/山东/国保单位开放情况.md` |
|
| 144 | + |
|
| 145 | +--- |
|
| 146 | + |
|
| 16 | 147 | ## 👤 用户偏好(涛哥)- 2026-03-05 更新 ⭐ 重点 |
| 17 | 148 | |
| 18 | 149 | ### 🏛️ 博物馆选择标准 |
memory/2026-03-07.md
| ... | ... | @@ -1,62 +1,217 @@ |
| 1 | -# 2026-03-07 - Travel Agent 记忆日志 |
|
| 1 | +# 2026-03-07 工作日志 |
|
| 2 | + |
|
| 3 | +## ✅ 已完成 |
|
| 4 | + |
|
| 5 | +### 1. 小红书 MCP 登录问题修复 ⭐ 重点 |
|
| 6 | + |
|
| 7 | +**问题描述**: |
|
| 8 | +- 二维码显示只显示文字提示,不显示图片 |
|
| 9 | +- subprocess 调用 mcporter 时报 "Unknown MCP server 'xiaohongshu'" |
|
| 10 | + |
|
| 11 | +**解决方案**: |
|
| 12 | +1. **二维码获取**:使用 `mcporter call --output raw` 获取完整响应,然后提取 Base64 图片 |
|
| 13 | + ```bash |
|
| 14 | + mcporter call xiaohongshu.get_login_qrcode --output raw |
|
| 15 | + ``` |
|
| 16 | +2. **配置文件位置**:系统配置在 `/root/.mcporter/mcporter.json`,项目配置在 `./config/mcporter.json` |
|
| 17 | +3. **subprocess 调用**:需要设置 `HOME=/root` 和 `cwd='/root'` |
|
| 18 | + |
|
| 19 | +**关键配置**(已更新到 `/root/.mcporter/mcporter.json`): |
|
| 20 | +```json |
|
| 21 | +{ |
|
| 22 | + "mcpServers": { |
|
| 23 | + "xiaohongshu": { |
|
| 24 | + "baseUrl": "http://localhost:18060/mcp" |
|
| 25 | + } |
|
| 26 | + } |
|
| 27 | +} |
|
| 28 | +``` |
|
| 29 | + |
|
| 30 | +### 2. P2 任务:山东国保单位核实 |
|
| 2 | 31 | |
| 3 | -## 📋 今日任务 |
|
| 32 | +#### 第一阶段(18:20 完成) |
|
| 33 | +**核实结果**: |
|
| 34 | +- 总计核实:45 处(8 个城市) |
|
| 35 | +- ✅ 开放:45 处 (100.0%) |
|
| 36 | +- ❌ 关闭:0 处 (0.0%) |
|
| 37 | +- 搜索笔记:约 950 篇 |
|
| 4 | 38 | |
| 5 | -### P1 任务(最高优先级) |
|
| 6 | -- [ ] |
|
| 39 | +**工作流程**: |
|
| 40 | +1. 小红书 MCP 扫码登录 |
|
| 41 | +2. 使用 `search_feeds` 搜索关键词 |
|
| 42 | +3. 统计 `noteCard` 数量判断开放状态 |
|
| 43 | +4. 笔记数 >= 5:高置信度;>= 2:中置信度 |
|
| 7 | 44 | |
| 8 | -### P2 任务(正常优先级) |
|
| 9 | -- [ ] |
|
| 45 | +**脚本位置**: |
|
| 46 | +- `/root/.openclaw/workspace/travel/scripts/verify_shandong_mcp_simple.py` |
|
| 10 | 47 | |
| 11 | -### P3 任务(低优先级) |
|
| 12 | -- [ ] |
|
| 48 | +**结果文件**: |
|
| 49 | +- `/root/.openclaw/workspace/travel/scripts/data/shandong_guobao_mcp.json` |
|
| 50 | + |
|
| 51 | +#### P2-6-1 任务(10:33 完成)⭐ |
|
| 52 | +**任务**:核实济南 + 青岛剩余 36 处国保单位 |
|
| 53 | + |
|
| 54 | +**核实结果**: |
|
| 55 | +- 济南:23 处 ✅ 全部开放 |
|
| 56 | +- 青岛:13 处 ✅ 全部开放 |
|
| 57 | +- **总计**:36 处,累计 81/250(32.4%) |
|
| 58 | + |
|
| 59 | +**输出文件**: |
|
| 60 | +- `scripts/data/shandong_guobao_jinan_qingdao.json` |
|
| 61 | +- `scripts/verify_shandong_jinan_qingdao.log` |
|
| 62 | + |
|
| 63 | +**Wiki 更新**: |
|
| 64 | +- `wiki/山东/国保单位开放情况.md` - 添加济南 + 青岛剩余 36 处详情 |
|
| 65 | +- `wiki/山东.md` - 更新进度为 32.4% |
|
| 66 | +- `wiki/Home.md` - 添加最近更新 |
|
| 67 | + |
|
| 68 | +**Git 提交**: |
|
| 69 | +- Wiki 子模块:`16f335a` - 山东国保核实:济南 + 青岛(P2-6-1) |
|
| 70 | +- 主仓库:`d78774a` - 更新 task.md:标记 P2-6-1 已完成 |
|
| 71 | + |
|
| 72 | +**下一步**:P2-6-2 任务(烟台 + 威海剩余 16 处) |
|
| 73 | + |
|
| 74 | +#### P2-6-2 任务(11:30 完成)⭐ |
|
| 75 | +**任务**:核实烟台 + 威海剩余 20 处国保单位 |
|
| 76 | + |
|
| 77 | +**核实结果**: |
|
| 78 | +- 烟台:12 处 ✅ 全部开放 |
|
| 79 | +- 威海:8 处 ✅ 全部开放 |
|
| 80 | +- **总计**:20 处,累计 101/250(40.4%) |
|
| 81 | + |
|
| 82 | +**输出文件**: |
|
| 83 | +- `scripts/data/shandong_guobao_yantai_weihai_p2-6-2.json` |
|
| 84 | +- `scripts/verify_shandong_yantai_weihai.log` |
|
| 85 | + |
|
| 86 | +**Wiki 更新**: |
|
| 87 | +- `wiki/山东/国保单位开放情况.md` - 添加烟台 + 威海剩余 20 处详情 |
|
| 88 | +- `wiki/山东.md` - 更新进度为 40.4% |
|
| 89 | +- `wiki/Home.md` - 添加最近更新 |
|
| 90 | + |
|
| 91 | +**Git 提交**: |
|
| 92 | +- Wiki 子模块:`5c6e823` - 山东国保核实:烟台 + 威海(P2-6-2) |
|
| 93 | +- 主仓库:`71dcd53` - 更新 task.md:标记 P2-6-2 已完成 |
|
| 94 | + |
|
| 95 | +#### P2-6-3 任务(15:00 完成)⭐ |
|
| 96 | +**任务**:核实潍坊 + 淄博剩余 22 处国保单位 |
|
| 97 | + |
|
| 98 | +**核实结果**: |
|
| 99 | +- 潍坊:13 处 ✅ 全部开放 |
|
| 100 | +- 淄博:9 处 ✅ 全部开放 |
|
| 101 | +- **总计**:22 处,累计 123/250(49.2%) |
|
| 102 | + |
|
| 103 | +**输出文件**: |
|
| 104 | +- `scripts/data/shandong_guobao_weifang_zibo_p2-6-3.json` |
|
| 105 | +- `scripts/verify_shandong_weifang_zibo.log` |
|
| 106 | + |
|
| 107 | +**Wiki 更新**: |
|
| 108 | +- `wiki/山东/国保单位开放情况.md` - 添加潍坊 + 淄博剩余 22 处详情 |
|
| 109 | +- `wiki/山东.md` - 更新进度为 49.2% |
|
| 110 | +- `wiki/Home.md` - 添加最近更新 |
|
| 111 | + |
|
| 112 | +**Git 提交**: |
|
| 113 | +- Wiki 子模块:`71dcd53` - 山东国保核实:潍坊 + 淄博(P2-6-3)22 处,进度 123/250(49.2%) |
|
| 114 | +- 主仓库:`00a111f` - 山东国保核实:潍坊 + 淄博(P2-6-3) |
|
| 115 | + |
|
| 116 | +**下一步**:P2-6-4 任务(泰安 + 济宁剩余 31 处) |
|
| 117 | + |
|
| 118 | +### 3. Skill 文档完善 ⭐ |
|
| 119 | + |
|
| 120 | +**更新文件**: |
|
| 121 | +- ✅ `~/.openclaw/skills/agent-reach/SKILL.md` - 添加完整扫码登录流程 |
|
| 122 | +- ✅ `~/.openclaw/skills/agent-reach/XIAOHONGSHU_OCR_WORKFLOW.md` - 更新工作流程 |
|
| 123 | +- ✅ `~/.openclaw/skills/agent-reach/XIAOHONGSHU_QUICKREF.md` - 新建快速参考卡片 |
|
| 124 | + |
|
| 125 | +### 4. Wiki 文档更新 ⭐ |
|
| 126 | + |
|
| 127 | +**更新文件**: |
|
| 128 | +- ✅ `wiki/山东/国保单位开放情况.md` - 添加 45 处小红书 MCP 核实结果 |
|
| 129 | +- ✅ `wiki/山东.md` - 更新进度(18%,45/250) |
|
| 130 | +- ✅ `wiki/Home.md` - 添加最近更新(2026-03-07 18:20) |
|
| 13 | 131 | |
| 14 | 132 | --- |
| 15 | 133 | |
| 16 | -## 📝 工作记录 |
|
| 134 | +## 🔧 技术经验 |
|
| 135 | + |
|
| 136 | +### 小红书 MCP 调用方式 |
|
| 17 | 137 | |
| 18 | -### 上午 |
|
| 138 | +```bash |
|
| 139 | +# 检查登录状态 |
|
| 140 | +mcporter call xiaohongshu.check_login_status |
|
| 19 | 141 | |
| 142 | +# 获取登录二维码 |
|
| 143 | +mcporter call xiaohongshu.get_login_qrcode --output raw |
|
| 20 | 144 | |
| 21 | -### 下午 |
|
| 145 | +# 搜索笔记 |
|
| 146 | +mcporter call xiaohongshu.search_feeds 'keyword: "关键词"' |
|
| 22 | 147 | |
| 148 | +# 获取笔记详情 |
|
| 149 | +mcporter call xiaohongshu.get_feed_detail 'feed_id: "xxx", xsec_token: "yyy"' |
|
| 150 | +``` |
|
| 23 | 151 | |
| 24 | -### 晚上 |
|
| 152 | +### Python subprocess 调用注意事项 |
|
| 25 | 153 | |
| 154 | +```python |
|
| 155 | +import subprocess |
|
| 156 | +import os |
|
| 157 | + |
|
| 158 | +cmd = ['/path/to/mcporter', 'call', 'xiaohongshu.search_feeds', f'keyword: "{keyword}"'] |
|
| 159 | +env = os.environ.copy() |
|
| 160 | +env['MCPORTER_CALL_TIMEOUT'] = '60000' |
|
| 161 | +env['HOME'] = '/root' # 重要!确保读取正确的配置文件 |
|
| 162 | +result = subprocess.run(cmd, capture_output=True, text=True, timeout=90, env=env, cwd='/root') |
|
| 163 | +``` |
|
| 26 | 164 | |
| 27 | 165 | --- |
| 28 | 166 | |
| 29 | -## ✅ 已完成任务 |
|
| 167 | +## ⏭️ 进行中 |
|
| 168 | + |
|
| 169 | +- P2 任务:剩余 205 处山东国保单位待核实(按城市拆分为 8 个子任务) |
|
| 30 | 170 | |
| 31 | -| 时间 | 任务 | 状态 | 备注 | |
|
| 32 | -|------|------|------|------| |
|
| 33 | -| | | | | |
|
| 171 | +--- |
|
| 34 | 172 | |
| 173 | +*最后更新:2026-03-07 15:00* |
|
| 35 | 174 | --- |
| 36 | 175 | |
| 37 | -## ⚠️ 经验教训 |
|
| 176 | +## 📝 每日总结 |
|
| 38 | 177 | |
| 178 | +### ✅ 今日完成 |
|
| 179 | +1. P2-6-1:山东国保核实 - 济南 + 青岛 36 处(累计 81/250,32.4%) |
|
| 180 | +2. P2-6-2:山东国保核实 - 烟台 + 威海 20 处(累计 101/250,40.4%) |
|
| 181 | +3. P2-6-3:山东国保核实 - 潍坊 + 淄博 22 处(累计 123/250,49.2%) |
|
| 182 | + |
|
| 183 | +### ⚠️ 遇到的问题 |
|
| 184 | +1. |
|
| 185 | +2. |
|
| 186 | + |
|
| 187 | +### 🧠 经验教训 |
|
| 39 | 188 | - |
| 40 | 189 | |
| 190 | +### 📋 明日计划 |
|
| 191 | +1. P2-6-4:山东国保核实 - 泰安 + 济宁剩余 31 处 |
|
| 192 | +2. 继续推进山东国保核实任务(目标:完成 60%) |
|
| 193 | +3. 准备 P2-6-5 任务(枣庄 + 东营) |
|
| 194 | + |
|
| 41 | 195 | --- |
| 42 | 196 | |
| 43 | -## 🧠 三层记忆应用 |
|
| 197 | +### 三层记忆检查清单 |
|
| 44 | 198 | |
| 45 | -### 第 1 层 预防(写入时) |
|
| 46 | -- [ ] 长期记忆已更新(MEMORY.md) |
|
| 47 | -- [ ] 今日记忆已创建 |
|
| 48 | -- [ ] 任务状态已记录 |
|
| 199 | +**第 1 层 预防(写入时)** |
|
| 200 | +- [ ] 长期记忆(MEMORY.md)是否更新? |
|
| 201 | +- [ ] 今日记忆是否完整记录? |
|
| 202 | +- [ ] 任务状态是否已更新? |
|
| 49 | 203 | |
| 50 | -### 第 2 层 侦测(恢复时) |
|
| 51 | -- [ ] 已读取 MEMORY.md |
|
| 52 | -- [ ] 已读取昨日记忆(2026-03-06.md) |
|
| 53 | -- [ ] 已读取今日记忆(2026-03-07.md) |
|
| 204 | +**第 2 层 侦测(恢复时)** |
|
| 205 | +- [ ] Session 开始前是否读取了记忆? |
|
| 206 | +- [ ] 是否检查了昨日记忆? |
|
| 207 | +- [ ] 是否确认了今日任务? |
|
| 54 | 208 | |
| 55 | -### 第 3 层 兜底(执行时) |
|
| 56 | -- [ ] 高风险操作前已检查记忆约束 |
|
| 57 | -- [ ] 不可逆操作前已确认 |
|
| 209 | +**第 3 层 兜底(执行时)** |
|
| 210 | +- [ ] 高风险操作前是否检查了约束? |
|
| 211 | +- [ ] 不可逆操作前是否确认了? |
|
| 212 | +- [ ] 是否有违反原则的情况? |
|
| 58 | 213 | |
| 59 | 214 | --- |
| 60 | 215 | |
| 61 | -*创建时间:2026-03-07 00:00:01* |
|
| 216 | +*最后更新:2026-03-07 23:00:02* |
|
| 62 | 217 | *维护者:Travel Agent* |