旅游攻略生成器
旅游攻略生成器 - 当用户提出旅游规划需求时自动调用,例如"生成XX旅游攻略"、"规划XX行程"、"XX几天怎么玩"、"情侣/周末/自驾游怎么安排"。支持全球任意城市(威海/青岛/大连/大理/厦门/Tokyo/Paris等仅为常见样例,不限于此)与 1-14 天行程(超过14天仍可生成,但会提示行程过长并建议拆分)。自动搜索真实攻略、高德API计算路线距离用…
Jiaqi
@gmmg55
What This Skill Does
Generates a detailed, multi-day travel guide for any global city, including daily itineraries, hotel and food recommendations, budget estimates, and local tips. Outputs a responsive HTML document with route calculations via Amap API and supports 1-14 day trips in multiple languages.
Replaces manually researching and compiling travel itineraries from scattered blogs, maps, and review sites by producing a complete, structured guide in one step.
When to Use It
- Generate a 4-day romantic travel guide for Weihai starting from Beijing
- Plan a 2-day weekend itinerary for Dali for a couple
- Create a 3-day Kyoto travel guide in English
- Build a 5-day family-friendly trip to Tokyo with budget estimates
- Produce a 7-day self-driving route for Yunnan with daily stops
- Generate a 10-day leisure guide for Paris with hotel and food recommendations
Install
$ openclaw skills install @gmmg55/travel-guide-generator旅游攻略生成器 | Travel Guide Generator | 旅行ガイド生成器 | 여행 가이드 생성기
自动生成精美、详细、浪漫的旅游攻略HTML文档。支持多语言输出。
🤖 一句话生成精美旅游攻略 HTML,让每一次出发都有温度
何时调用 / 如何触发
本 Skill 由 AI 在识别到明确的旅游攻略生成请求时自动调用,用户无需记忆命令,直接说出需求即可。需满足"生成/规划攻略"的明确意图才会触发,普通旅游闲聊不会触发:
- 明确请求生成攻略:如"生成威海4天攻略"、"帮我规划大理行程"、"做一个厦门周末游 HTML"
- 带目的地+天数的明确规划:如"XX 几天怎么玩,帮我出个攻略"、"周末去 XX 有什么推荐,生成攻略"、"情侣去 XX 怎么安排,做个行程"
仅讨论旅游话题(如"XX 好不好玩""XX 有什么特色")不会触发本 Skill,避免误用网络查询或外部 API 调用。
直接说即可触发(示例):
帮我生成一份威海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 أيام في دبي" |
语言检测规则
- 用户使用某种语言提问 → 自动使用该语言生成攻略
- 用户明确指定语言 → 按指定语言生成(如"用英语生成"、"in English")
- 未指定且使用中文 → 默认简体中文
多语言生成规范
- HTML
<html lang="...">标签设置为对应语言代码 - 所有面向用户的文本全部翻译为目标语言,包括:
- 页面标题、Hero区域
- 导航标签(Day/交通/时间表/避坑/预算/Tips等)
- 交通信息卡片(高铁/飞机/推荐标注等)
- 路线条文字(距离、用时、交通方式)
- 景点名称、描述、价格标签
- 浪漫时刻提示
- 美食推荐(店名保留原文,描述翻译)
- 避坑清单(错误做法/正确做法)
- 预算估算(分类名称、总计)
- Tips标题和内容
- 酒店推荐区域
- 折叠提示文字
- 专有名词(景点名、酒店名、店名)保留原文,可在括号中附注翻译
- 价格和数字使用当地货币格式
- CSS样式不变,只改变文本内容
- 对于阿拉伯语等RTL语言,在HTML中添加
dir="rtl"属性
对话回复规范(重要!)
回复顺序(必须遵守):
- 先生成HTML文件 → 提示用户文件已生成(路径/链接)
- 然后提供详细文字版攻略 → 在对话最后放上完整文字版,方便用户快速浏览
文字版攻略必须包括:
- 行程总览 — 每天的主题和核心景点(3-5行)
- 必打卡亮点 — 最值得去的3-5个地方,附一句话说明为什么
- 美食推荐 — 列出5-8家餐厅/小吃,含人均价格、必点菜、推荐理由
- 酒店推荐 — 2-3个住宿区域,附价格区间和推荐理由
- 避坑指南 — 最关键的3-5条避坑建议(精简易懂)
- 预算估算 — 经济型/舒适型两种总预算
- 浪漫Tips(如适用)— 情侣专属建议
- 交通提示 — 如何到达、当地交通方式推荐
回复风格:详细、有温度、像朋友在推荐。不要只说"已生成攻略"就结束。
示例(生成大理攻略后的对话回复)
✅ 大理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"
核心功能
- 在线搜索真实攻略 - 搜索全网获取真实用户评价和推荐
- 高德API路线计算 - 计算景点间距离、用时,突出显示路线衔接(无需地图显示)
- 精美HTML生成 - 旅游氛围设计,PC/移动端自适应
- 详细行程规划 - 每日路线、酒店、美食、避坑指南
- 多语言输出 - 支持中/英/日/韩/法/德/西等13种语言
- 结构化质量检查 - 自动检查时间冲突、闭馆日、营业时间、路线衔接和来源时效
- 离线路线降级 - 高德不可用时按坐标和交通方式估算距离与用时
- 天气与季节适配 - 根据日期、南北半球和天气数据生成装备及备选建议
- 交互编辑 - 支持勾选、收藏、时间顺延、预算汇总和浏览器本地保存
- 多格式导出 - 生成 HTML、Markdown、ICS 日历、GeoJSON 和规范化 JSON
使用方法
基础用法
用户只需提供:
- 目的地:如"威海"、"大理"
- 天数:如"4天"
- 出发地:如"北京"(可选)
- 风格偏好:如"浪漫"、"休闲"(可选)
示例请求:
帮我生成一个威海4天旅游攻略,从北京出发,浪漫休闲风格
工作流程
- 收集需求 - 确认目的地、日期、天数、出发地、预算、节奏、人群、兴趣、饮食、无障碍和交通偏好
- 搜索并记录来源 - 对票价、营业时间、交通、酒店和餐厅记录来源 URL 与核实日期
- 生成结构化 JSON - 严格按
references/guide-schema.json生成,不直接手写最终 HTML - 计算路线 - 优先使用高德 API;失败时用
route_estimator.py按坐标自动估算并标注 - 校验与冲突检测 - 使用
validate_guide.py检查结构、时间、闭馆日、营业时间、路线衔接和来源时效 - 构建全部产物 - 使用
build_guide.py生成 HTML、Markdown、ICS、GeoJSON 和规范化 JSON - 回复用户 - 先提供 HTML 文件,再给出文字版攻略与其他导出文件
推荐命令:
python scripts/build_guide.py guide.json --output-base 目的地攻略
工作流中任一步失败都不能中断整篇攻略,必须按下方「可靠性与容错」降级处理。
可靠性与容错(失败必须降级,不能让攻略生成失败)
本 Skill 的核心可靠性原则:攻略永远要能生成出来。网络、API、搜索任何一环出问题,都必须自动切换到备选方案,而不是中断报错、留下空白攻略。
容错规则(必须遵守)
-
高德 API 调用失败(无 Key / 网络超时 / 配额耗尽 / 返回错误)
- 不中断生成,改用估算值:驾车距离 ≈ 直线距离 × 1.3;城区车速取 30 km/h、跨城取 60 km/h 估算用时。
- 在路线条上明确标注「估算」字样,与真实数据区分。
- 单点查询失败:跳过该点,继续其余行程,不卡住整个 Day。
-
联网搜索攻略失败(网络异常 / 搜索服务不可用)
- 不中断,改用通用旅游知识生成美食、避坑、酒店建议。
- 在对应模块标注「基于通用知识,建议出行前再核实」。
-
交通班次查询失败(无真实高铁/航班数据)
- 改用估算(如"约 2-3 小时车程")或提示用户自行查询,不阻塞生成。
-
单个脚本执行异常
- 脚本已设计为失败时返回结构化
{"status":"error","fallback":true}而非崩溃;AI 捕获后按上述规则降级,绝不因一个工具失败导致整篇攻略空白。
- 脚本已设计为失败时返回结构化
-
HTML 模块隔离
- 各模块(Hero / 交通 / 每日行程 / 美食 / 酒店 / 避坑 / 预算 / Tips)相互独立。
- 任一模块数据缺失或生成失败时,只跳过 / 降级该模块,其余照常渲染,绝不整页空白或报错。
- 降级数据需按下方规范加标识:估算值加「估算」标签,通用知识加「建议核实」提示。
-
天气数据缺失或过期
- 不伪造实时天气;只根据日期和季节给通用建议,并明确提示临近出发再次核实。
-
质量校验发现冲突
- 结构错误必须修复后再生成;时间或营业冲突展示在质量检查模块,并优先调整行程解决。
降级优先级
真实数据 > 启发式估算(标注"估算") > 通用知识(标注"建议核实") > 留空并提示用户补充
任何情况下,行程框架、酒店 / 美食 / 避坑 / 预算等模块都应完整输出。
高德API配置(可选增强 · 不配置也能用)
💡 先放宽心:这一节是可选的增强项,不是必做步骤。即使完全不配置高德 API,攻略照常生成——景点间距离和用时会自动用估算值代替,行程、酒店、美食、避坑、预算等模块都不受影响。只有你想让路线距离/用时更精准时才需要配置它。
配置高德 API 后,攻略中的景点间距离、驾车/步行用时会是真实数据,路线规划更精准。不配置完全没问题,按需决定即可。
第一步:注册并登录高德开放平台
- 打开 高德开放平台控制台
- 点击右上角「控制台」→ 用手机号 / 支付宝注册并登录(需完成实名认证,否则无法创建 Key)
第二步:创建应用并申请 Key
- 进入「应用管理」→「我的应用」
- 点击「创建新应用」,填写应用名称(如"旅游攻略"),应用类型选「出行」或「其他」
- 在新建应用下点击「添加 Key」
- 关键填写项:
- 名称:自定义(如
route-key) - 服务平台:必须选「Web 服务」(脚本调用的是 REST API;不要选 Android / iOS / Web端(JS API),否则类型不匹配会调用失败)
- 名称:自定义(如
- 提交后,复制生成的 Key 值(一长串字母数字组合)
第三步:配置 Key(请手动配置,勿在聊天中发送 Key)
⚠️ 安全提示:API Key 属于敏感凭证,请勿在对话中把 Key 发送给 AI,也不要让 AI 把它写入系统环境变量。聊天内容可能被记录、留存或泄露;永久写入系统环境变量也会增加泄露面(尤其在共享/ compromised 主机上)。请自行通过下方方式配置,并优先使用临时/会话级凭证。
脚本通过读取 AMAP_KEY 环境变量获取 Key。Key 只应存在于你自己的环境变量或密钥管理器中,不要写进代码或聊天框。
Windows (PowerShell):
# 当前会话临时生效(推荐,关闭终端即失效)
$env:AMAP_KEY="你的key"
# 永久生效(谨慎使用):系统属性 → 高级 → 环境变量 → 新建用户变量 AMAP_KEY
Windows (CMD):
set AMAP_KEY=你的key
macOS / Linux:
export AMAP_KEY="你的key"
# 临时会话有效;如需持久化,写入 shell 配置文件:
echo 'export AMAP_KEY="你的key"' >> ~/.zshrc # 或 ~/.bashrc
也可在运行脚本时临时用
--key参数传入(仅本次运行有效),适合不想配置环境变量的场景。密钥管理建议:优先使用系统密钥管理器(如 macOS Keychain、Windows Credential Manager、云厂商 Secrets Manager)在运行时注入
AMAP_KEY;一旦怀疑泄露,立即在高德控制台删除并重新生成该 Key。
第四步:验证配置
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/build_guide.py
端到端入口:补全估算路线、生成季节建议、校验、渲染并导出所有格式。
python scripts/build_guide.py examples/sample-guide.json --output-base examples/my-trip
scripts/validate_guide.py
校验结构、来源、时间重叠、营业时间、闭馆日和交通预留。
python scripts/validate_guide.py examples/sample-guide.json --strict
scripts/route_estimator.py
在地图 API 不可用时,根据经纬度估算步行、骑行、公交或驾车路线。
scripts/export_guide.py
从同一份 JSON 导出 Markdown、ICS 日历和 GeoJSON 点位。
scripts/amap_route.py
计算两点间驾车距离和用时。
python scripts/amap_route.py --origin "威海公园" --destination "火炬八街" --key YOUR_AMAP_KEY
输出示例:
{
"distance": "8500",
"duration": "1200",
"distance_text": "8.5公里",
"duration_text": "20分钟"
}
scripts/search_guide.py
生成用于在线搜索工具的攻略关键词;脚本本身不直接抓取第三方平台内容。
python scripts/search_guide.py --destination "威海" --type avoid
设计原则
- 行程不紧张 - 每天安排2-3个核心景点,留足休息时间
- 浪漫氛围 - 每个景点都有"浪漫时刻"提示
- 路线合理 - 使用高德API计算,确保衔接顺畅
- 真实准确 - 交通信息、价格、班次都要真实
- 详细实用 - 美食推荐多,避坑指南详细
- 美观大方 - HTML设计有旅游氛围,重点突出
- 语言一致 - 全文语言风格统一,专有名词处理得当
移动端适配
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 内标注"建议核实",回复文字不反复解释。
- 核心态度:让用户感觉攻略已经完整可用,增强项是"锦上添花"而非"缺了不行"。
Top skills in this category
Google Merchant Center
@byungkyuGoogle Merchant Center API integration with managed OAuth. This is a write-capable integration — it can read, create, update, and delete products, inventories, data sources, promotions, account settings, and conversions in Google Shopping. Use this skill when users want to interact with their Mercha
Fulcra Morning Briefing
@arc-claw-botCompose a personalized morning briefing using the latest fulcra-context skill for sleep, biometrics, calendar, activity, and weather context. Adapts tone and...
Google Maps Grounding MCP
@ryanbaumannGoogle Maps Grounding Lite MCP for location search, weather, and routes via mcporter.
Rendered
@charlie115Play turn-based arena games over REST
ClawArena
@charlie115Play turn-based arena games over REST