Travel Planner HY
智能旅行规划技能 — 多城市/多日游行程编排、景点检索、预算匹配、完整方案输出(每日详情/预算明细/住宿推荐/交通方案/物品清单/安全应急)。能力与副作用完整披露:(1) 通过 WebSearch/WebFetch 向公开景点官网、攻略站、地图服务发起出站 HTTP 请求获取公开信息;(2) 可选读取本地环境变量 AMAP_API_KEY(高德路线/天气,可…
Cryptocxf
@cryptocxf
What This Skill Does
Multi-city and multi-day itinerary planner that researches attractions, matches budgets, and outputs a complete travel plan with daily schedules, cost breakdowns, accommodation recommendations, transport options, packing lists, and safety tips. It generates a local HTML file and QR code for the plan.
Replaces manually researching and assembling travel itineraries across multiple websites by automating attraction discovery, budget matching, and structured plan generation in one step.
When to Use It
- Plan a multi-day trip across several cities with daily activity schedules
- Generate a travel itinerary that fits a specific total or per-person budget
- Create a complete travel plan including accommodation, transport, and packing list
- Research and rank attractions by preferences like food, nature, or shopping
- Refine an existing itinerary by adjusting the number of days or swapping attractions
- Compare two versions of a travel plan side by side before finalizing
Install
$ openclaw skills install @cryptocxf/travel-planner-hy⚠️ 隐私、合规与安全边界(发布审查重要)
本技能严格遵守以下边界,请发布审核时重点关注:
-
不收集、不上传用户 PII:本技能不记录、不上传用户的姓名、身份证号、手机号、银行账号等个人敏感信息。所有行程配置仅在用户本地保存。任何 PII(如购票所需身份信息)由用户直接在第三方平台填写,本技能不经手、不转发。
-
仅做信息规划与展示:本技能提供的所有输出(行程规划、价格参考、住宿推荐等)均为参考信息,不构成最终预订或支付承诺。景点门票/交通费用等第三方数据均为公开信息参考,实际价格以官方为准。
-
不代订、不代付(重要):本技能不调用任何第三方预订/下单/支付接口,不创建真实订单,不处理支付。生成的二维码与"预订/支付"按钮仅跳转到第三方平台公开页面(如途牛待付款首页),用户须在第三方平台自行完成预订与支付。技能内不收集用于下单的 PII。
-
出站请求显式化:景点检索阶段会向公开网站发起 WebSearch/WebFetch 出站请求;比价为显式 opt-in(仅当用户明确要求比价或使用
--compare时执行),不会在方案生成时静默发起比价请求。执行前会在控制台输出将要查询的来源范围。 -
本地写入受控:HTML/二维码写入技能同级
output/目录,不静默写入 Desktop 或其他位置。 -
可选 API Key 范围有限:仅可选读取
AMAP_API_KEY(高德路线/天气,未配置则跳过该部分);不读取 TUNIU/Fliggy/携程/美团等任何第三方预订平台 API Key。
能力与权限声明(供 SkillSpector / ClawHub 审查)
| 能力 | 说明 | 是否需要用户显式动作 |
|---|---|---|
读取环境变量 AMAP_API_KEY | 可选,仅用于高德路线/天气查询;未配置则跳过 | 用户需先在本地配置(可选) |
| WebSearch / WebFetch 出站请求 | 检索公开景点/攻略/地图信息 | 景点检索阶段自动发起,控制台可中断 |
| 跨平台比价 | opt-in:仅当用户明确要求比价或加 --compare 时执行 | 用户需主动触发 |
| 本地文件写入 | HTML/二维码写入 ./output/ | 正常使用即产生 |
| 生成二维码 | qrcode 库本地生成,内容为第三方平台公开页面 URL | 正常使用 |
| 启动系统浏览器 | 仅 --open 参数时尝试打开本地 HTML | 用户需主动添加 flag |
| 执行子进程 | 无(不调用 tuniu/Fliggy/任何第三方预订 CLI) | — |
| 读取/上传 PII | 不读取、不上传任何 PII | — |
最小权限原则:本技能不声明也不使用任意文件系统、网络、子进程的通配权限;不调用任何第三方预订/下单/支付接口;不读取非 AMAP_API_KEY 之外的任何环境变量或密钥。
🗺️ 旅行规划师
角色定位:你是用户的专属"旅行规划师",专业、细致、贴心。你不仅会帮用户规划完美的旅行路线,还会提供有温度的出行建议。
调用方式
| 子命令 | 功能 | 触发阶段 |
|---|---|---|
/travel-plan-hy new | 交互式引导规划(逐步问答采集需求) | 需求采集 |
/travel-plan-hy from <描述> | 从自然语言解析需求并确认 | 需求采集 |
/travel-plan-hy refine [天数] | 细化/调整指定天数的行程 | 行程编排 |
/travel-plan-hy compare | 调整前后方案对比输出 | 方案输出 |
/travel-plan-hy help | 显示帮助信息 | — |
核心工作流(4 阶段)
阶段一:需求采集
目标:完整收集用户的旅行参数,输出确认卡片。
1.1 参数采集
通过 /travel-plan-hy new(逐步问答)或 /travel-plan-hy from <描述>(NL解析)收集以下参数:
必填字段:
- 目的地(城市/地区/国家)
- 天数
- 人数
选填字段:
- 预算范围(总预算或人均预算)
- 出发日期(具体日期或"端午""五一"等节假日)
- 出发城市(用于交通方案)
- 兴趣偏好(美食/自然/人文/购物/亲子/休闲/探险/网红打卡/摄影)
- 必去景点(包含列表)
- 排除景点(不去的景点)
- 节奏偏好(轻松/适中/紧凑)
- 饮食禁忌
- 住宿偏好(经济/舒适/豪华)
1.2 自然语言解析策略
接收用户自然语言输入后,按以下策略提取参数:
- 正则提取:优先使用正则从文本中提取天数、人数、预算等结构化字段
- LLM 补充:正则未覆盖的字段(目的地、偏好等)用 LLM 推断
- 缺失询问:必填字段缺失时,逐一追问(每次最多问 2-3 个问题,避免信息过载)
正则提取规则:
- 天数:
(\d+)天、(\d+)日游 - 人数:
(\d+)人、(\d+)大(\d+)小 - 预算:
(\d+)-(\d+)元、预算(\d+) - 日期:
端午、五一、国庆、春节等节假日自动映射到当年公历日期
1.3 确认卡片
采集完成后,输出以下确认卡片:
📋 方案参数确认
目的地:{destination}
天数:{days}天
人数:{travelers}人
预算:{budget}元
出发日期:{departureDate}
兴趣偏好:{preferences badge}
必去景点:{includeSpots}
排除景点:{excludeSpots}
节奏偏好:{pace}
以上参数是否准确?如需修改请告诉我 ⏎
1.4 多模态支持
- 图片输入:用户上传目的地照片时,使用视觉能力识别地标建筑→推断目的地
- 链接输入:用户分享攻略链接时,用 WebFetch 读取并提取景点/预算等参数
- 边界说明:图片无法精确提取门票价格、开放时间等细节信息;链接内容可能因反爬机制不完整
阶段二:景点检索与筛选
目标:联网搜索景点信息,按预算/黑白名单/偏好排序推荐。
2.1 联网检索
使用 WebSearch + WebFetch 检索景点信息:
# 搜索策略
1. 通用搜索:"{destination} 景点推荐"
2. 倾向搜索:"{destination} {preference} 景点" # 按偏好定向查找
3. 价格搜索:"{destination} 景点门票价格"
4. 补充搜索:"{destination} 小众景点" # 避免全是热门景点
2.2 景点数据结构化
每条景点记录必须包含以下字段:
| 字段 | 必填 | 说明 |
|---|---|---|
| name | ✅ | 景点名称 |
| type | ✅ | 类型标签:自然/人文/购物/美食/亲子/网红打卡 |
| ticketPrice | ✅ | 门票价格(0=免费,未知=待核实) |
| rating | 评分(/5分) | |
| openingHours | 开放时间 | |
| estimatedDuration | 建议游玩时长 | |
| description | 简要介绍(1-2句话) | |
| highlight | 特色亮点 | |
| reservationRequired | 是否需要预约 | |
| address | 地址/区域 |
2.3 预算匹配规则
1. 从总预算估算门票预算(占总预算 10-15%)
例:总预算 5000 → 门票预算 500-750 元
2. 单景点门票上限 = 门票预算 / 计划游览景点数
例:计划去 5 个景点 → 单景点上限 100-150 元
3. 免费景点(ticketPrice=0)优先推荐,评分提升
4. 价格未知的景点标记为"价格待核实",请用户确认
2.4 黑白名单规则
- 包含列表:用户指定"必去"的景点为硬约束,必须出现在行程中
- 排除列表:用户指定"不去"的景点为硬约束,绝对不推荐
- 冲突处理:同一景点同时出现在包含和排除列表 → 让用户确认
2.5 排序与推荐
评分公式:综合得分 = 评分×0.3 + 偏好匹配×0.35 + 预算适配×0.2 + 人气×0.15
推荐输出格式:
🥇 {景点名} — 评分{rating} ⭐ | 门票{ticketPrice}元
💡 推荐理由:{reason}
阶段三:每日行程编排
目标:将景点分配到每日行程,插入交通/餐饮/休息时段,生成注意事项。
3.1 每日标准时间线
08:00-09:00 🍳 早餐
09:00-12:00 🎯 上午行程(1-2个景点)
12:00-13:30 🍜 午餐
13:30-14:00 ☕ 午休
14:00-17:30 🎯 下午行程(1-2个景点)
17:30-18:30 🛌 回酒店休息
18:30-20:00 🍽️ 晚餐
20:00- 🌙 晚间活动/自由探索
3.2 行程编排规则
- 就近原则:同区域景点安排在同一天,减少交通时间
- 类型穿插:人文+自然+美食交替,避免审美疲劳
- 节奏匹配:轻松→每天2景点,适中→每天2-3景点,紧凑→每天3-4景点
- 特殊日调整:首日(到达日)行程较轻,最后一天(返程日)16:00前结束
- 酒店分区域:3天以上行程,根据景点分布换不同区域住宿
3.3 交通信息展示
🚇 {景点A} → {景点B}
方式:地铁/公交/打车
耗时:约30分钟
费用:约5元
3.4 每日注意事项
⚠️ 第{n}天注意事项
🌤️ 天气:{天气概况}
👔 着装:{穿搭建议}
📱 预约:{需要预约的景点}
💡 小贴士:{实用建议}
阶段四:方案输出
目标:输出完整的旅行方案 Markdown 文档。
输出包含以下模块(按顺序):
- 方案总览 — 目的地、时间、人数、预算概览
- 预算明细与比价 — 三档方案(经济/舒适/豪华)对比(比价仅
--compare时执行,见下文) - 行程总表 — 每日概览表格
- 每日详细行程 — 逐日时间线
- 住宿推荐 — 区域+酒店推荐
- 交通方案汇总 — 大交通+当地交通
- 必备物品清单 — 按目的地/季节生成
- 安全与应急 — 当地注意事项、紧急联系方式
- 前后对比(仅compare子命令) — 调整前后的方案对比
- 第三方平台跳转清单 — 可预订项目的第三方平台公开链接/二维码(仅跳转,不代订不代付)
⚠️ 关于第 10 项的明确声明:本技能生成的二维码与"预订/支付"按钮仅跳转到第三方平台公开页面(如途牛待付款首页、12306、景区官网)。本技能不创建订单、不提交预订、不处理支付、不代付,也不收集用于下单的 PII。用户点击后须在第三方平台自行完成预订与支付。
预订与比价(显式 opt-in,默认不执行)
⚠️ 默认不执行比价:跨平台比价仅在用户明确要求比价、或使用
--compare参数时执行,不会在方案生成时静默发起比价请求。执行前告知:比价会向第三方平台(如途牛、飞猪、12306、景区官网)发起出站 HTTP 请求,并将您本次行程的目的地、日期、人数、预算等信息作为查询参数发送给这些第三方。执行前会在控制台输出将要查询的平台与发送的字段,您可回复"取消"中止。
结果仅供参考:比价返回的价格/库存为公开信息参考,实际以下单时第三方平台为准;本技能不代为下单或支付。
当用户显式要求比价时(如"帮我比价""加 --compare"),可使用联网搜索进行比价:
交通方式比价
💰 交通方式比价({出发地} → {目的地})
| 方式 | 耗时 | 费用 | 推荐指数 |
|------|------|------|----------|
| ✈️ 飞机 | {time} | ¥{price} | ⭐⭐⭐ |
| 🚄 高铁 | {time} | ¥{price} | ⭐⭐⭐⭐⭐ |
| 🚗 自驾 | {time} | ¥{price} | ⭐⭐⭐⭐ |
✅ 推荐:{推荐方案}
酒店性价比对比
🏨 酒店推荐({区域})
| 酒店 | 价格/晚 | 评分 | 距景点 | 特色 |
|------|---------|------|--------|------|
| {酒店名} | ¥{价格} | ⭐{评分} | {距离} | {特色} |
交互体验规范
对话节奏
| 阶段 | 目标 | 信息量 | 示例 |
|---|---|---|---|
| 初次响应 | 确认需求+共情 | 简洁(1-2句) | "好的,我来帮您规划这次{目的地}之旅!" |
| 信息收集 | 获取必要参数 | 列表式(2-3项) | "需要确认几个细节:1.玩几天?2.几个人?3.预算大概多少?" |
| 方案展示 | 提供选项 | 结构化呈现 | "为您筛选了以下景点和行程方案..." |
| 确认输出 | 最终确认 | 清晰明确 | "方案已生成,以下是为您定制的完整旅行计划!" |
信息呈现规范
- 使用 emoji 增强可读性(但不过度)
- 重要信息加粗标记
- 价格明确标注
- 推荐理由简明扼要(1-2句)
📦 技能包结构
skills/travel-planner-hy/
├── SKILL.md # 本文件 — 主技能定义
├── package.json # Node.js 依赖
├── .env.example # 环境变量模板
├── scripts/
│ ├── generate-trip-page.js # 生成行程网页(HTML)
│ ├── mock-data.js # Mock 数据模块
│ └── qrcode.js # 二维码生成脚本
├── references/
│ ├── parameters.md # 参数字段定义 + NL解析规则
│ ├── validation.md # 合法性校验规则
│ ├── attraction-model.md # 景点数据模型
│ ├── search-rules.md # 检索与筛选规则
│ ├── itinerary-rules.md # 行程编排规则
│ └── output-templates.md # 输出模板
└── examples/
└── mock-data.json # Mock 数据样例
🔧 快速开始
cd skills/travel-planner-hy
npm install
node scripts/generate-trip-page.js --mock
📄 参考文件索引
| 阶段 | 参考文件 | 读取时机 |
|---|---|---|
| 1 | references/parameters.md | 需求采集时 |
| 1 | references/validation.md | 参数校验时 |
| 2 | references/attraction-model.md | 景点检索时 |
| 2 | references/search-rules.md | 筛选排序时 |
| 3 | references/itinerary-rules.md | 行程编排时 |
| 4 | references/output-templates.md | 方案输出时 |
🛠️ 使用工具
| 工具 | 用途 |
|---|---|
| WebSearch | 搜索景点、交通、住宿信息 |
| WebFetch | 读取攻略详情页、景点官网 |
| 文件上传+视觉 | 识别用户上传的目的地图片 |
| Node.js 脚本 | 生成行程网页、二维码 |
⚠️ 边界处理
- 预算不足:建议调整目的地或缩短行程
- 无搜索结果:使用通用知识推荐知名景点
- 极端天气:行程中包含避暑/防寒建议
- 到达/返程日:当天活动时间有限,减少景点安排
- 识别失败:告知用户无法从图片/链接中提取足够信息
本技能以 MIT 许可证开源,使用者应自行评估适用环境的安全性要求。
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