AGENTS.md
... ...
@@ -0,0 +1,133 @@
1
+# Travel Agent 工作规则
2
+
3
+## 核心职责
4
+- 收集旅行信息(景点、餐厅、交通)
5
+- 制定详细行程规划
6
+- 维护 Travel Wiki (https://travel.wudai9.net)
7
+
8
+---
9
+
10
+## 🔒 标准 SOP(必须遵循)
11
+
12
+### 方案制定原则(三套方案)
13
+
14
+#### 原则1:三套方案
15
+每次制定方案必须提供三套:
16
+- 🟢 **轻松版**:只覆盖必去景点,节奏最轻松
17
+- 🟡 **标准版**:必去景点 + 部分备选景点,节奏适中
18
+- 🔴 **紧凑版**:必去景点 + 更多备选景点,节奏紧凑
19
+
20
+#### 原则2:天数相同
21
+- 三套方案的天数**必须相同**
22
+- 天数以**轻松版能覆盖所有必去景点**来确定
23
+- 不是天数不同,而是内容丰富度不同
24
+
25
+#### 原则3:备选景点增加原则
26
+标准版和紧凑版增加备选景点时:
27
+- **不绕路**:优先顺路景点
28
+- **推荐度高**:按用户兴趣匹配排序
29
+
30
+#### 必去景点确定流程
31
+1. **第一版**:Agent 根据用户喜好划分必去/备选
32
+2. **用户确认**:用户提供修改意见
33
+3. **最终确定**:确认后作为规划依据
34
+
35
+---
36
+
37
+### 添加新旅行规划 SOP
38
+
39
+#### Step 1: 景点分类
40
+1. 搜索目的地景点
41
+2. 根据用户喜好划分为:
42
+ - **必去景点**:核心景点,三套方案都包含
43
+ - **备选景点**:标准版/紧凑版可增加
44
+
45
+#### Step 2: 确定天数
46
+- 计算轻松版覆盖所有必去景点所需天数
47
+- 以此天数作为三套方案的统一天数
48
+
49
+#### Step 3: 制定三套方案
50
+| 方案 | 内容 | 每日景点数 |
51
+|------|------|-----------|
52
+| 轻松版 | 必去景点 | 2个左右 |
53
+| 标准版 | 必去 + 部分备选 | 3个左右 |
54
+| 紧凑版 | 必去 + 更多备选 | 4个左右 |
55
+
56
+#### Step 4: 创建规划文件
57
+```bash
58
+cd /root/.openclaw/workspace/travel/wiki
59
+# 创建: 目的地旅行规划.md
60
+```
61
+
62
+#### Step 5: 更新 Home.md
63
+1. 更新旅行规划索引
64
+2. **更新"最近更新"(时间精确到分钟)**
65
+ - 格式: `YYYY-MM-DD HH:MM | 内容`
66
+
67
+#### Step 6: 提交推送
68
+```bash
69
+git add .
70
+git commit -m "添加XX旅行规划(三套方案)"
71
+git push origin master
72
+```
73
+
74
+---
75
+
76
+### 修改现有规划 SOP
77
+
78
+#### Step 1: 修改文件
79
+```bash
80
+cd /root/.openclaw/workspace/travel/wiki
81
+# 编辑对应的 .md 文件
82
+```
83
+
84
+#### Step 2: **更新首页"最近更新"**
85
+```bash
86
+# 格式: YYYY-MM-DD HH:MM | 内容
87
+```
88
+
89
+#### Step 3: 提交推送
90
+```bash
91
+git add .
92
+git commit -m "更新XX规划"
93
+git push origin master
94
+```
95
+
96
+---
97
+
98
+## 👤 用户偏好(必去景点划分依据)
99
+
100
+| 偏好 | 说明 |
101
+|------|------|
102
+| 不爬山 | 避免需要登山爬楼的景点 |
103
+| 公共交通 | 不自驾,依赖高铁/公交/打车 |
104
+| 舒适食宿 | 选择舒适型酒店 |
105
+| 时间要求 | 8:00起床,9:30出发,21:00前回酒店 |
106
+| 步行限制 | 每日步行≤10km |
107
+| 历史人文 | 偏好古建筑、博物馆、历史遗迹 |
108
+| 不喜欢 | 商业化严重的景点 |
109
+
110
+---
111
+
112
+## 📂 Wiki 目录结构
113
+
114
+```
115
+Travel Wiki
116
+├── Home.md # 索引页(必须更新最近更新)
117
+├── [地区].md # 地区分类页
118
+└── [目的地]旅行规划.md # 详情页(三套方案)
119
+```
120
+
121
+---
122
+
123
+## ⚠️ 重要提醒
124
+
125
+- **不要等用户提醒**,完成规划后自动执行 SOP
126
+- **每次修改都要更新** Home.md 的最近更新记录
127
+- **时间精确到分钟**:格式 `YYYY-MM-DD HH:MM`
128
+- **三套方案天数相同**:以轻松版覆盖必去景点确定
129
+- **推送后验证**同步是否成功
130
+
131
+---
132
+
133
+*维护者: Travel Agent*
HEARTBEAT.md
... ...
@@ -0,0 +1,75 @@
1
+# Heartbeat
2
+
3
+每 10 分钟自动检查以下任务。
4
+
5
+---
6
+
7
+## Travel Agent 任务
8
+
9
+### 1. Wiki 同步检查
10
+- 检查 Wiki 内容是否需要同步
11
+- 确保服务器运行正常
12
+
13
+### 2. 爬取进度检查
14
+
15
+#### 检查步骤
16
+
17
+1. 读取当前进度
18
+```bash
19
+DONE=$(wc -l < /tmp/done_works.txt 2>/dev/null || echo 0)
20
+NEW=$(wc -l < /tmp/new_results_dedup.json 2>/dev/null || echo 0)
21
+```
22
+
23
+2. 读取上次进度(保存到 /tmp/last_progress.txt)
24
+```bash
25
+LAST=$(cat /tmp/last_progress.txt 2>/dev/null || echo 0)
26
+```
27
+
28
+3. 比对进度
29
+- 如果 DONE > LAST:进度正常,更新 last_progress.txt
30
+- 如果 DONE == LAST 且 LAST > 0:可能卡住,检查问题
31
+- 如果连续 3 次无进度:通知用户
32
+
33
+#### 问题诊断
34
+
35
+1. 检查爬虫进程是否在运行
36
+```bash
37
+pgrep -c -f "python.*crawl"
38
+```
39
+
40
+2. 检查 cron 任务是否正常
41
+```bash
42
+crontab -l | grep crawl
43
+```
44
+
45
+3. 检查最新日志
46
+```bash
47
+tail -20 /tmp/crawler.log
48
+```
49
+
50
+#### 常见问题及解决
51
+
52
+| 问题 | 解决方案 |
53
+|------|----------|
54
+| 进程未运行 | 重启爬虫脚本 |
55
+| cron 任务丢失 | 重新添加 crontab |
56
+| MCP 调用失败 | 检查 mcporter 配置 |
57
+| 速率限制 | 等待后重试 |
58
+
59
+#### 通知条件
60
+
61
+- 连续 3 次检查无进度
62
+- 爬虫进程异常退出
63
+- 无法自动解决的问题
64
+
65
+---
66
+
67
+## 进度记录
68
+
69
+| 时间 | 已处理 | 新结果 | 状态 |
70
+|------|--------|--------|------|
71
+| 2026-02-26 10:35 | 120 / 318 | 21 | 检查完成 |
72
+
73
+---
74
+
75
+*由 Travel Agent 维护*
WIKI_RULES.md
... ...
@@ -0,0 +1,128 @@
1
+# Travel Wiki 维护规则
2
+
3
+## 新页面添加流程
4
+
5
+每次创建新页面时,必须完成以下步骤:
6
+
7
+### 1. 创建页面文件
8
+```bash
9
+# 在 /root/.openclaw/workspace/travel/wiki/ 目录下创建
10
+vim 新页面名称.md
11
+```
12
+
13
+### 2. 更新首页链接
14
+编辑 `/root/.openclaw/workspace/travel/wiki/Home.md`
15
+
16
+**添加链接位置:**
17
+```markdown
18
+## 🗺️ 旅行规划
19
+
20
+### 省份名称
21
+- [页面标题](文件名)
22
+```
23
+
24
+### 3. 更新Changelog
25
+在 Home.md 的更新日志部分添加:
26
+
27
+```markdown
28
+## 📝 更新日志
29
+
30
+### YYYY-MM-DD
31
+- ✅ 新增XXX旅行规划
32
+- ✅ 具体更新内容
33
+```
34
+
35
+### 4. Git提交推送
36
+```bash
37
+cd /root/.openclaw/workspace/travel/wiki
38
+git add .
39
+git commit -m "添加XXX旅行规划"
40
+git push
41
+```
42
+
43
+---
44
+
45
+## 页面模板
46
+
47
+参考 `山西.md` 和 `河南.md` 的结构:
48
+- 主要景点(按城市分类)
49
+- 必去/备选区分
50
+- 美食推荐
51
+- 交通信息
52
+- 参考资料
53
+- 已规划行程(如有)
54
+
55
+---
56
+
57
+## 注意事项
58
+
59
+- ⚠️ 每个新页面必须在首页添加入口
60
+- ⚠️ 每次更新必须记录changelog
61
+- ⚠️ 标注商业化景点(⚠️符号)
62
+- ⚠️ 根据涛哥偏好筛选景点
63
+
64
+---
65
+
66
+## 技术架构
67
+
68
+### 服务器配置
69
+- **服务器**: 47.86.243.164
70
+- **Bare Repo**: `/opt/travelwiki/repo/wiki.git`
71
+- **Data 目录**: `/opt/travelwiki/data`
72
+- **Gollum 服务**: `systemctl restart gollum`
73
+
74
+### 自动更新机制
75
+1. 本地 `git push` → 推送到 bare repo
76
+2. `post-receive` hook 触发
77
+3. hook 执行 `git fetch` + `git reset --hard FETCH_HEAD`
78
+4. hook 重启 gollum 服务
79
+5. 网页自动更新
80
+
81
+### post-receive hook(关键修复)
82
+```bash
83
+#!/bin/bash
84
+
85
+echo "📥 同步 Wiki..."
86
+
87
+# 清除可能干扰的 git 环境变量
88
+unset GIT_DIR
89
+unset GIT_WORK_TREE
90
+
91
+# 路径
92
+DATA_DIR=/opt/travelwiki/data
93
+BARE_REPO=/opt/travelwiki/repo/wiki.git
94
+
95
+# 强制同步到 bare repo 的最新状态
96
+cd $DATA_DIR
97
+git fetch $BARE_REPO master
98
+git reset --hard FETCH_HEAD
99
+
100
+# 重启 Gollum
101
+systemctl restart gollum > /dev/null 2>&1 &
102
+
103
+echo "✅ 同步完成 ($(date '+%Y-%m-%d %H:%M:%S'))"
104
+```
105
+
106
+### 常见问题
107
+
108
+**Q: 网页没有更新?**
109
+1. 检查 bare repo 和 data 目录的 HEAD 是否一致:
110
+ ```bash
111
+ cd /opt/travelwiki/repo/wiki.git && git log --oneline -1
112
+ cd /opt/travelwiki/data && git log --oneline -1
113
+ ```
114
+2. 如果不一致,手动同步:
115
+ ```bash
116
+ cd /opt/travelwiki/data
117
+ git fetch /opt/travelwiki/repo/wiki.git master
118
+ git reset --hard FETCH_HEAD
119
+ systemctl restart gollum
120
+ ```
121
+
122
+**Q: 新页面 404?**
123
+- 确保文件被 git 追踪(`git add` + `git commit`)
124
+- 确保文件名是 UTF-8 编码
125
+
126
+---
127
+
128
+*最后更新:2026-02-27*