旅游攻略生成器 - 当用户提出旅游规划需求时自动调用,例如"生成XX旅游攻略"、"规划XX行程"、"XX几天怎么玩"、"情侣/周末/自驾游怎么安排"。支持全球任意城市(威海/青岛/大连/大理/厦门/Tokyo/Paris等仅为常见样例,不限于此)与 1-14 天行程(超过14天仍可生成,但会提示行程过长并建议拆分...
---
name: travel-guide-generator
description: 旅游攻略生成器 - 当用户提出旅游规划需求时自动调用,例如"生成XX旅游攻略"、"规划XX行程"、"XX几天怎么玩"、"情侣/周末/自驾游怎么安排"。支持全球任意城市(威海/青岛/大连/大理/厦门/Tokyo/Paris等仅为常见样例,不限于此)与 1-14 天行程(超过14天仍可生成,但会提示行程过长并建议拆分)。自动搜索真实攻略、高德API计算路线距离用时、生成PC/移动端自适应精美HTML,含每日行程、酒店、美食、避坑、预算。支持中/英/日/韩/法/德/西等多语言。不提供实时订票、签证办理、纯商务出差行程。
---
# 旅游攻略生成器 | Travel Guide Generator | 旅行ガイド生成器 | 여행 가이드 생성기
自动生成精美、详细、浪漫的旅游攻略HTML文档。支持多语言输出。
> 🤖 一句话生成精美旅游攻略 HTML,让每一次出发都有温度
## 何时调用 / 如何触发
本 Skill 由 AI 在识别到**旅游规划意图**时自动调用,用户无需记忆任何命令,直接说出需求即可。出现以下任一情况即会触发:
- **明确请求生成攻略**:如"生成威海4天攻略"、"帮我规划大理行程"、"做一个厦门周末游 HTML"
- **表达旅游规划意图**:如"XX 几天怎么玩"、"周末去 XX 有什么推荐"、"情侣去 XX 怎么安排"、"自驾游 XX 路线"
- **目的地 + 天数 + 风格组合**:浪漫 / 休闲 / 亲子 / 自驾 / 周末 等关键词出现时
**直接说即可触发(示例):**
> 帮我生成一份威海4天浪漫攻略,从北京出发
> 规划一个大理2天周末游,情侣
> Generate a 3-day romantic guide for Kyoto
**不会触发的情况(超出边界,见下节):** 纯订票 / 订酒店、签证办理、商务出差、非旅游类路线规划。
## 适用范围与边界
为避免生成结果不符合预期,请先了解本 Skill 的覆盖范围与限制:
### ✅ 支持范围
- **城市**:全球任意城市均可生成。示例中的威海 / 青岛 / 大连 / 大理 / 厦门 / Tokyo / Paris 等仅为常见样例,**不限于这些城市**。
- **天数**:推荐 **1-14 天**,此区间内体验最佳(每日 2-3 个核心景点、节奏舒适)。
- **风格**:情侣浪漫游、周末短途游、自驾游、休闲游、亲子游等常规旅游场景。
- **语言**:中 / 英 / 日 / 韩 / 法 / 德 / 西等多语言输出。
### ⚠️ 边界与超出时的处理
- **天数超过 14 天**:仍可生成,但会提示"行程较长",并建议拆分为多段或聚焦核心城市,避免每日过赶。
- **天数不足 1 天 / 非整数天**:按"1 日精华游"处理,或提示补充具体天数。
- **小众 / 攻略数据稀少的目的地**:仍能生成,但会基于通用旅游知识编写,并明确标注"部分信息可能不够精准,请以当地实际为准"。
- **未配置高德 API Key**:路线距离 / 用时改为估算值,整体攻略仍可正常生成。
### ❌ 不支持(非目标场景)
- 实时机票 / 酒店预订、下单支付
- 签证办理、出入境政策咨询
- 纯商务出差、会议行程
- 非旅游类路线规划(搬家、货运、通勤等)
## 多语言支持
本 skill 支持生成多种语言的旅游攻略HTML。所有模块文本(标题、按钮、标签、提示等)均会翻译为指定语言。
### 支持的语言
| 语言代码 | 语言 | 示例请求 |
|----------|------|----------|
| `zh-CN` | 简体中文(默认) | "帮我生成一个威海4天旅游攻略" |
| `en` | 英语 | "Generate a 4-day travel guide for Tokyo" |
| `ja` | 日语 | "東京の4日間旅行ガイドを作成して" |
| `ko` | 韩语 | "부산 4일 여행 가이드 만들어줘" |
| `fr` | 法语 | "Génère un guide de voyage de 4 jours à Paris" |
| `de` | 德语 | "Erstelle einen 4-Tage-Reiseführer für München" |
| `es` | 西班牙语 | "Genera una guía de viaje de 4 días para Barcelona" |
| `it` | 意大利语 | "Genera una guida di viaggio di 4 giorni per Roma" |
| `pt` | 葡萄牙语 | "Gere um guia de viagem de 4 dias para Lisboa" |
| `ru` | 俄语 | "Создай путеводитель на 4 дня по Москве" |
| `th` | 泰语 | "สร้างคู่มือเที่ยวโตเกียว 4 วัน" |
| `vi` | 越南语 | "Tạo hướng dẫn du lịch 4 ngày ở Đà Nẵng" |
| `ar` | 阿拉伯语 | "أنشئ دليلاً سياحياً لمدة 4 أيام في دبي" |
### 语言检测规则
1. **用户使用某种语言提问** → 自动使用该语言生成攻略
2. **用户明确指定语言** → 按指定语言生成(如"用英语生成"、"in English")
3. **未指定且使用中文** → 默认简体中文
### 多语言生成规范
- **HTML `<html lang="...">`** 标签设置为对应语言代码
- **所有面向用户的文本**全部翻译为目标语言,包括:
- 页面标题、Hero区域
- 导航标签(Day/交通/时间表/避坑/预算/Tips等)
- 交通信息卡片(高铁/飞机/推荐标注等)
- 路线条文字(距离、用时、交通方式)
- 景点名称、描述、价格标签
- 浪漫时刻提示
- 美食推荐(店名保留原文,描述翻译)
- 避坑清单(错误做法/正确做法)
- 预算估算(分类名称、总计)
- Tips标题和内容
- 酒店推荐区域
- 折叠提示文字
- **专有名词**(景点名、酒店名、店名)保留原文,可在括号中附注翻译
- **价格和数字**使用当地货币格式
- **CSS样式**不变,只改变文本内容
- 对于**阿拉伯语等RTL语言**,在HTML中添加 `dir="rtl"` 属性
### 对话回复规范(重要!)
**回复顺序(必须遵守):**
1. **先生成HTML文件** → 提示用户文件已生成(路径/链接)
2. **然后提供详细文字版攻略** → 在对话最后放上完整文字版,方便用户快速浏览
**文字版攻略必须包括:**
1. **行程总览** — 每天的主题和核心景点(3-5行)
2. **必打卡亮点** — 最值得去的3-5个地方,附一句话说明为什么
3. **美食推荐** — 列出5-8家餐厅/小吃,含人均价格、必点菜、推荐理由
4. **酒店推荐** — 2-3个住宿区域,附价格区间和推荐理由
5. **避坑指南** — 最关键的3-5条避坑建议(精简易懂)
6. **预算估算** — 经济型/舒适型两种总预算
7. **浪漫Tips**(如适用)— 情侣专属建议
8. **交通提示** — 如何到达、当地交通方式推荐
回复风格:详细、有温度、像朋友在推荐。不要只说"已生成攻略"就结束。
#### 示例(生成大理攻略后的对话回复)
```
✅ 大理2天浪漫攻略已生成!
**HTML文件已生成**:`C:\Users\...\大理2天浪漫攻略.html`
您可以直接打开这个文件查看精美的旅游攻略(PC/移动端自适应,带右侧快速导航)。
---
## 📱 详细文字版攻略(方便快速浏览)
### 🏔️ 行程总览
- Day1:古城漫步 → 三塔倒影 → 洱海日落(龙龛码头)
- Day2:喜洲古镇(麦田/转角楼)→ 周城扎染 → 环海东路S湾 → 双廊
## ✨ 必打卡
1. 龙龛码头日落 — 金光洒满洱海,苍山作背景,一生必看!
2. 喜洲麦田 — 春夏绿/秋天金,宫崎骏动画即视感
3. S湾公路 — 洱海+苍山同框,大理最出片的地方
4. 周城扎染 — 一起做方巾,成品当情侣信物带走
## 🍜 美食推荐(详细版见HTML)
- 喜洲破酥粑粑 ¥10-15(现烤现卖,甜/咸两种都好吃!)
- 梅子井酒家 ¥50-70/人(百年梅子树院子,雕梅扣肉一绝)
- 洱海渔家 ¥60-80/人(白族风味,砂锅鱼+乳扇羹)
## 🏨 住宿推荐
- 古城内民宿 ¥200-500/晚(白族庭院,推荐"既下山")
- 洱海边精品 ¥600-1500/晚(推窗见洱海,浪漫值爆表)
## ⚠️ 关键避坑
- 不要在景区买银器/茶叶,套路深!去周城正规作坊买扎染
- 环海不要中午去,紫外线超强!早9前或下午4后
- 人民路"野生导游"不要理,会带你去购物点
## 💰 预算
- 经济型:¥800-1200/人 | 舒适型:¥1500-2500/人
```
### 示例
用户说:"Generate a 3-day romantic travel guide for Kyoto from Tokyo"
生成的HTML应:
- `<html lang="en">`
- 标题:"Kyoto 3-Day Romantic Getaway"
- 导航:"Day 1"、"Transport"、"Timeline"、"Tips"等
- 景点描述全英文
- 店名保留日文:"Nishiki Market(錦市場)"
- 价格显示:"¥1,500 JPY"
## 核心功能
1. **在线搜索真实攻略** - 搜索全网获取真实用户评价和推荐
2. **高德API路线计算** - 计算景点间距离、用时,突出显示路线衔接(无需地图显示)
3. **精美HTML生成** - 旅游氛围设计,PC/移动端自适应
4. **详细行程规划** - 每日路线、酒店、美食、避坑指南
5. **多语言输出** - 支持中/英/日/韩/法/德/西等13种语言
## 使用方法
### 基础用法
用户只需提供:
- **目的地**:如"威海"、"大理"
- **天数**:如"4天"
- **出发地**:如"北京"(可选)
- **风格偏好**:如"浪漫"、"休闲"(可选)
示例请求:
```
帮我生成一个威海4天旅游攻略,从北京出发,浪漫休闲风格
```
### 工作流程
1. **收集需求** - 确认目的地、天数、出发地、风格偏好
2. **搜索攻略** - 使用在线搜索工具搜索全网攻略
3. **查询交通** - 查询高铁/飞机真实班次和价格
4. **计算路线** - 使用高德API计算景点间距离和用时
5. **生成HTML** - 使用模板生成精美HTML文档
> 工作流中任一步失败都**不能中断整篇攻略**,必须按下方「可靠性与容错」降级处理。
## 可靠性与容错(失败必须降级,不能让攻略生成失败)
本 Skill 的核心可靠性原则:**攻略永远要能生成出来**。网络、API、搜索任何一环出问题,都必须自动切换到备选方案,而不是中断报错、留下空白攻略。
### 容错规则(必须遵守)
1. **高德 API 调用失败**(无 Key / 网络超时 / 配额耗尽 / 返回错误)
- 不中断生成,改用**估算值**:驾车距离 ≈ 直线距离 × 1.3;城区车速取 30 km/h、跨城取 60 km/h 估算用时。
- 在路线条上明确标注「估算」字样,与真实数据区分。
- 单点查询失败:跳过该点,继续其余行程,不卡住整个 Day。
2. **联网搜索攻略失败**(网络异常 / 搜索服务不可用)
- 不中断,改用**通用旅游知识**生成美食、避坑、酒店建议。
- 在对应模块标注「基于通用知识,建议出行前再核实」。
3. **交通班次查询失败**(无真实高铁/航班数据)
- 改用估算(如"约 2-3 小时车程")或提示用户自行查询,不阻塞生成。
4. **单个脚本执行异常**
- 脚本已设计为失败时返回结构化 `{"status":"error","fallback":true}` 而非崩溃;AI 捕获后按上述规则降级,**绝不因一个工具失败导致整篇攻略空白**。
5. **HTML 模块隔离**
- 各模块(Hero / 交通 / 每日行程 / 美食 / 酒店 / 避坑 / 预算 / Tips)相互独立。
- 任一模块数据缺失或生成失败时,**只跳过 / 降级该模块**,其余照常渲染,绝不整页空白或报错。
- 降级数据需按下方规范加标识:估算值加「估算」标签,通用知识加「建议核实」提示。
### 降级优先级
```
真实数据 > 启发式估算(标注"估算") > 通用知识(标注"建议核实") > 留空并提示用户补充
```
任何情况下,行程框架、酒店 / 美食 / 避坑 / 预算等模块都应**完整输出**。
## 高德API配置(可选增强 · 不配置也能用)
> 💡 **先放宽心**:这一节是**可选的增强项**,不是必做步骤。即使完全不配置高德 API,攻略照常生成——景点间距离和用时会自动用**估算值**代替,行程、酒店、美食、避坑、预算等模块都不受影响。只有你想让路线距离/用时更精准时才需要配置它。
配置高德 API 后,攻略中的景点间距离、驾车/步行用时会是**真实数据**,路线规划更精准。不配置完全没问题,按需决定即可。
### 第一步:注册并登录高德开放平台
1. 打开 [高德开放平台控制台](https://lbs.amap.com/)
2. 点击右上角「控制台」→ 用手机号 / 支付宝注册并登录(需完成**实名认证**,否则无法创建 Key)
### 第二步:创建应用并申请 Key
1. 进入「应用管理」→「我的应用」
2. 点击「**创建新应用**」,填写应用名称(如"旅游攻略"),应用类型选「出行」或「其他」
3. 在新建应用下点击「**添加 Key**」
4. 关键填写项:
- 名称:自定义(如 `route-key`)
- **服务平台:必须选「Web 服务」**(脚本调用的是 REST API;不要选 Android / iOS / Web端(JS API),否则类型不匹配会调用失败)
5. 提交后,复制生成的 **Key 值**(一长串字母数字组合)
### 第三步:配置 Key(推荐让 AI 帮你一键搞定)
你**不需要自己敲命令**。拿到 Key 后,直接在对话里把 Key 告诉 AI,由它帮你写入环境变量:
> 我的高德 Key 是 `你的key`,帮我配置好
AI 会自动帮你把 `AMAP_KEY` 设置到系统用户环境变量里(永久生效),配置完直接说"帮我生成 XX 攻略"即可,无需你做任何额外操作。
<details>
<summary>想自己手动配置?(点击展开)</summary>
脚本通过读取 `AMAP_KEY` 环境变量获取 Key,**请勿**把 Key 写进代码或聊天框。
**Windows (PowerShell):**
```powershell
# 当前会话临时生效
$env:AMAP_KEY="你的key"
# 永久生效:系统属性 → 高级 → 环境变量 → 新建用户变量 AMAP_KEY
```
**Windows (CMD):**
```cmd
set AMAP_KEY=你的key
```
**macOS / Linux:**
```bash
export AMAP_KEY="你的key"
# 永久生效:写入 shell 配置文件
echo 'export AMAP_KEY="你的key"' >> ~/.zshrc # 或 ~/.bashrc
```
> 也可在运行脚本时临时用 `--key` 参数传入,但不推荐长期使用。
</details>
### 第四步:验证配置
```bash
python scripts/amap_route.py --origin "威海公园" --destination "火炬八街" --city "威海"
```
能返回 `distance` / `duration` 即配置成功;若提示"未设置 AMAP_KEY 环境变量"说明未生效,请重做第三步。
### 第五步:在对话中直接使用
配置好后,直接让 AI 生成攻略即可**自动调用高德 API** 计算真实距离与用时,无需额外说明。也可显式提醒:
> 用高德 API 帮我计算威海景点间的真实距离(Key 已配置)
若未配置 Key,Skill 会自动改用估算值,攻略照常生成,不影响其他模块。
### 免费额度与注意事项
- 高德 Web 服务每日有免费调用额度(路径规划 / 距离测量 / 地理编码等),个人旅游规划通常足够,超量后需购买。
- **Key 属敏感凭证**:请勿粘贴到公开聊天或提交到代码仓库;一旦泄露,请立即在控制台「删除」该 Key 并重新生成。
- **海外城市**(如 Tokyo / Paris)高德 API 覆盖有限,此类目的地会自动回退为估算值并在攻略中标注。
主要 API 接口:
- **地理编码**: `https://restapi.amap.com/v3/geocode/geo` - 地址转经纬度
- **路径规划**: `https://restapi.amap.com/v3/direction/driving` - 驾车路线
- **距离测量**: `https://restapi.amap.com/v3/distance` - 直线 / 驾车距离
- **POI 搜索**: `https://restapi.amap.com/v3/place/text` - 景点搜索
## HTML模板结构
> 🧩 **模块隔离容错**:各模块(Hero / 交通 / 每日行程 / 美食 / 酒店 / 避坑 / 预算 / Tips)相互独立。某个模块数据缺失或生成失败(如某 Day 卡片、某景点交通提示)时,**只跳过或降级该模块**,其余模块照常渲染,绝不因一处出错导致整页空白或报错。
生成的HTML包含以下模块:
### 1. Hero区域
- 目的地标题
- 标签(天数、风格、交通方式)
- 渐变背景营造旅游氛围
### 2. 右侧快速导航(PC端)
- 固定在右侧,弱化显示(透明度0.4)
- 鼠标悬停时高亮
- 点击跳转到对应模块
- 自动高亮当前浏览区域
### 3. 可折叠模块
- **Day卡片**:点击Day头部可折叠/展开
- **其他模块**:点击标题可折叠/展开
- **默认状态**:全部展开
- 折叠图标:▼ 箭头指示状态
### 4. 交通信息卡片
- 高铁/飞机班次(真实数据)
- 价格对比
- 推荐标注
### 3. 酒店推荐
- 按住宿区域分类
- 价格区间
- 推荐理由
- 与行程衔接说明
### 4. 每日行程卡片
- Day标题和路线概览
- **[NEW] 酒店→景点路线**(第2天及以后):在路线条最前面,添加从前一晚酒店到当日首个景点的路线规划(距离+用时)
- 路线条(突出显示距离和用时)
- 景点详情(名称、价格、描述、**景点间交通提示**——从上一个地点到这里的交通方式+用时,显示在景点名称行右侧)
- 浪漫时刻提示
- 避坑指南
- 高德API标签(突出显示)
- **[NEW] 推荐酒店住宿地**(每日晚餐推荐下方,仅需要住宿时):推荐当晚住宿区域、价格区间、推荐理由、与次日行程衔接说明
### 5. 美食推荐
- 网格布局展示
- 店名、人均价格、推荐理由
- 来源标注(小红书/马蜂窝等)
### 6. 避坑清单
- 编号列表
- 错误做法(删除线)
- 正确做法(绿色高亮)
### 7. 预算估算
- 分类明细
- 总计金额
### 8. 浪漫Tips
- 情侣专属建议
- 拍照、穿搭、氛围建议
## 脚本说明
### scripts/amap_route.py
计算两点间驾车距离和用时。
```python
python scripts/amap_route.py --origin "威海公园" --destination "火炬八街" --key YOUR_AMAP_KEY
```
输出示例:
```json
{
"distance": "8500",
"duration": "1200",
"distance_text": "8.5公里",
"duration_text": "20分钟"
}
```
### scripts/search_guide.py
搜索小红书/马蜂窝攻略内容。
```python
python scripts/search_guide.py --destination "威海" --query "避坑"
```
## 设计原则
1. **行程不紧张** - 每天安排2-3个核心景点,留足休息时间
2. **浪漫氛围** - 每个景点都有"浪漫时刻"提示
3. **路线合理** - 使用高德API计算,确保衔接顺畅
4. **真实准确** - 交通信息、价格、班次都要真实
5. **详细实用** - 美食推荐多,避坑指南详细
6. **美观大方** - HTML设计有旅游氛围,重点突出
7. **语言一致** - 全文语言风格统一,专有名词处理得当
## 移动端适配
HTML模板已内置响应式设计:
- 768px断点适配平板
- 375px断点适配小屏手机
- 触摸优化(44px最小点击区域)
- 横向滚动支持(表格、标签栏)
- **右侧导航**:屏幕宽度≤1024px时自动隐藏
## 参考资源
- HTML模板: `assets/template.html` - 完整HTML模板参考
- 设计规范: `references/design-spec.md` - 配色、字体、布局规范
- **[NEW] 每日行程卡片规范: `references/daily-itinerary-spec.md` - 酒店住宿推荐、酒店→景点路线条、**景点间交通提示**的详细HTML结构和CSS代码 - 酒店住宿推荐、酒店→景点路线条的详细HTML结构、CSS代码**
## 回复风格(给用户的话术规范)
生成攻略后的回复,遵循以下原则,避免反复解释降级、给用户心理负担:
- **正文不赘述降级**:行程 / 美食 / 酒店 / 避坑 / 预算等模块直接呈现,不要在回复里反复说"未配置高德 API""路线为估算值"。HTML 内该加的「估算」标签照常加(见可靠性章节),但**回复文字里不解释**。
- **结尾只轻提示一句**:仅在回复最末尾,用一句话温和引导即可,例如:
> 💡 当前路线距离为估算哦,可以配置高德 API 生成更准确的路线。
- **其他降级同理**:如联网搜索失败改用通用知识,也只在 HTML 内标注"建议核实",回复文字不反复解释。
- **核心态度**:让用户感觉攻略已经完整可用,增强项是"锦上添花"而非"缺了不行"。
don't have the plugin yet? install it then click "run inline in claude" again.