WorldsTip 旅行规划大师
品牌名:WorldsTip | 创作者:MrdT·WorldsTip.COM | 分类:旅行
技能包名
worldstip-travel-planner(遵循平台小写连字符规范),品牌展示名为 WorldsTip。
这个技能解决什么问题
用户说"帮我规划大理 4 天"时,真正需要的不是一段攻略文字,而是一份能直接照着走的行程报告。
报告分两层,缺一不可:
| 层 | 回答什么 | 对应板块 |
|---|---|---|
| 指南层(去哪、玩什么) | 有什么、值不值得去、节奏怎么排 | 行程概览 / 逐日动线 / 实地调研 / 住宿安排 |
| 路书层(怎么到、怎么买) | 景点在哪、门票多少、要不要预约、怎么去、那天什么天气、车能不能开上去 | 景点攻略与门票 / 天气可行性预检 / 出行须知 / 预算 |
只做指南层 = 纸上谈兵(用户到了当地不知道票怎么买、景点怎么去)。
只做路书层 = 行程不合理(订得到票但排不出可走的动线)。本技能两层同时产出。
核心原则
1. 先定节奏,再填内容。
旅行方式的差别不在去哪,而在每天塞几个点。特种兵 7 个点/天,度假 1 个点/天 —— 这是可计算的参数差异,不是文案措辞。
2. 一切建议必须贴合实际条件。
三条硬约束,缺一则建议就是泛化的废话:
- 出行日期决定季节结论(7 月大理雨季多雷暴、骑行常受影响;10 月干爽最舒适,结论完全相反)
- 车辆动力类型决定自驾可行性(电车爬坡耗电翻倍、山区充电桩少、部分高海拔路限行;油车要算加油站间距)
- 人员构成决定房间数(三口之家 1 间家庭房,不是 3 间)
用户没给日期/车辆/构成时,必须主动问,或明确标注"未提供 X,以下建议为通用参考"。
3. 世界观只是参考,行程安排是本技能的核心能力。
worldstip-sitemap.html 提供目的地基础信息,攻略页 spot 卡片提供景点级票务/预约/交通,
但路程安排、游玩节奏、预算分配、物料准备全部由本技能的编排引擎生成。
4. 票价绝不编造。
12306 与各平台均需登录态查询,无法自动获取(实测见下)。给出错误票价的危害远大于不给。
5. 留空好过给错。
地理编码、门票、开放时间拿不准时,明确说"需现场确认",不要用看似合理的信息填充。
工作流程
第 1 步:识别用户意图
必须先明确这五项,缺一项就主动问(不要猜,猜错整份报告都白做):
| 项 | 说明 | 缺失时 |
|---|---|---|
| 出发地 | 决定交通方式与首日安排 | 必问 |
| 目的地 | 单一或多城 | 必问 |
| 天数 | 决定节奏密度 | 必问 |
| 出行方式 | 11 种画像之一,见下表 | 必问 |
| 人员构成 | 决定房间数与床型,如"一家三口""两大两小""情侣""四个朋友" | 必问 |
| 出行日期 | 决定季节结论,7 月与 10 月大理完全相反 | 影响大,必问 |
| 车辆类型 | 自驾必问:ev / phev / fuel / hybrid |
自驾时必问 |
一次只问最关键的 2-3 个,不要连环追问。
人员构成为什么必问:三口之家与三个成年人住宿方案完全不同 —— 前者订 1 间家庭房即可(¥300-500/晚),后者需 2 间双床房(¥600-1000/晚)。若按"人数=房间数"估算,预算会高估近一倍。
出行日期为什么必问:7 月的大理是雨季(午后雷雨、骑行常受影响、稻田是绿的),10 月是干爽最佳季(能见度高、紫外线仍强)。不给日期就只能说"带伞穿外套",等于没说。
车辆类型为什么必问:纯电车与油车在高海拔是两种完全不同的体验 —— 电车爬坡耗电约翻 1.9 倍、山区充电桩间距可能超 60km、部分高海拔路限行;油车要算加油站间距与92/95 号供应。
第 2 步:选定节奏画像
11 种画像已内置,选择规则:
| 画像 key | 中文 | 每日点数 | 强度 | 典型用户说法 |
|---|---|---|---|---|
commando |
特种兵 | 6-9 | 5 | "特种兵""一天刷完""暴走""极限" |
leisure |
休闲 | 3-4 | 2 | "休闲""慢游""不赶""随便逛" |
resort |
度假 | 1-2 | 1 | "度假""躺平""休息""放松" |
honeymoon |
度蜜月 | 2-3 | 2 | "蜜月""新婚""纪念日""二人" |
roadtrip |
自驾 | 4-6 | 4 | "自驾""开车""一路看风景" |
cycling |
骑行 | 2-3 | 4 | "骑车""骑行""自行车""单车" |
hiking |
徒步 | 1-2 | 5 | "徒步""爬山""登山""走线" |
moto |
摩旅 | 3-5 | 5 | "摩旅""摩托车""机车" |
family |
家庭亲子 | 3-4 | 2 | "带娃""亲子""孩子""老人" |
couple |
情侣 | 3-4 | 3 | "情侣""两个人""约会" |
friends |
朋友 | 4-5 | 4 | "朋友""结伴""一群人""宿舍" |
同一画像内部还要按用户措辞微调(这是"活人感"的来源):
- "特种兵但别太狠" → commando 但取每日 6 点而非 9 点
- "自驾想多看风景" → roadtrip + 增加上午时段长度、降低换景点频率
- "度假但想出门逛逛" → resort + 每日 2 点
- "带娃但别太累" → family + 每日 3 点 + 下午必留午睡时段
- "蜜月想浪漫" → honeymoon + 傍晚/夜间安排
第 3 步:检索目的地基础信息
# 关键词搜索(支持名称/拼音/简介)
python scripts/search_dest.py 大理
# 按区域
python scripts/search_dest.py --region 西南 --limit 20
# 按主题(草原 沙漠 雪山 海岛 古城 美食 亲子 徒步 摄影 避暑 温泉 边境)
python scripts/search_dest.py --theme 骑行
# 按建议天数
python scripts/search_dest.py --days-max 3
# 无目标时给方向
python scripts/search_dest.py --stats第 4 步:生成行程骨架
python scripts/build_itinerary.py \
--from 杭州 --to 大理 --days 4 --people 3 --composition "一家三口" \
--style cycling --lodging 舒适 --food 舒适 --season 秋 \
--json > plan.json输出内容:逐日三段式动线(上午/下午/晚上)、每段景点数与停留时长、每日备注、骑行/自驾/徒步/摩旅的当日里程、住宿房间分配、预算分配、按画像生成的物料清单。
参数说明:
--people总人数;--composition人员构成(影响房间数,务必传)--style画像 key;不指定时用--hint传用户原话自动推断--lodging青旅/经济/舒适/高档/奢华--food经济/舒适/高档/奢华--season春/夏/秋/冬,影响季节性装备
第 4.5 步:住宿合理性检查(已自动完成)
build_itinerary.py 内置 stay_plan(),按人员构成自动算房间数与床型。这不是可选步骤,是预算合理性的基础。
| 人员构成 | 房间数 | 房型建议 |
|---|---|---|
| 一家三口 / 二大一小 | 1 间 | 家庭房(1.5m 大床 + 0.9m 单床)或双床房加床 |
| 两大两小 / 一家四口 | 1 间 | 家庭套房 / 两室一厅(亲子分区睡) |
| 情侣 / 蜜月 | 1 间 | 大床房(1.8m 床),蜜月建议带浴缸或景观房 |
| 独自一人 | 1 间 | 大床房 |
| 2 人 | 1 间 | 双床房或大床房 |
| 3-4 位朋友 | 2 间 | 双床房 ×2(同行者各自舒适),或 1 间四人家庭房 |
| 5-6 人 | ⌈n/2⌉ 间 | 双床房为主,或考虑民宿整栋 |
预算口径:住宿 = 房间单价 × 房间数 × 晚数,不按人数乘。三口之家 4 天舒适档约 ¥900 住宿;若按 3 人算会虚报成¥2700。
输出中必须包含(脚本已生成,直接渲染进报告):
- 房间数与建议房型
- 分配理由(如"三口订 1 间家庭房比 2 间标准房更宽敞,且便于照看孩子")
- 预订提示(是否提供儿童床/加床、是否免费、热门景区需提前 2-3 周)
第 4.8 步:户外天气可行性预检(户外画像必做)
骑行、徒步、摩旅、自驾在推荐行程之前必须先跑这个,不能凭印象推荐。
python scripts/check_weather.py --to 大理 --style cycling --days 3
python scripts/check_weather.py --to 大理 丽江 --style moto --days 4# 沿线多城一起查
python scripts/check_weather.py --to 稻城亚丁 --style hiking --days 3
python scripts/check_weather.py --to 大理 --style cycling --json > weather.json判定基于 Open-Meteo 官方 WMO 天气代码 + 温度/风速阈值,输出四档:
| 判定 | 含义 | 必须怎么回应 |
|---|---|---|
ok 适宜 |
各日均达标 | 正常推进,备基础防护 |
caution 需谨慎 |
有风险日但可用 | 报告标注风险日,给出应对(雨具/减里程/避开强风) |
indoor_rewrite 需改室内 |
户外差但行程可成立 | 亲子/休闲/度假/情侣适用:把户外段换成博物馆、美术馆、科技馆、古镇室内段、温泉、手作工坊;不改变总天数与住宿 |
not_recommended 不建议 |
全期不达标 | 不要直接推荐原方案。按优先级给替代:① 改期(查更远窗口 --days 10~16)② 换同区域目的地重查 ③ 降级为室内/市区方案 |
各画像阈值不同(越户外越严格):
| 画像 | 降水 | 概率 | 最低温 | 风速 |
|---|---|---|---|---|
| 徒步 | ≤3mm | ≤50% | ≥3°C | ≤30km/h |
| 骑行 | ≤5mm | ≤60% | ≥5°C | ≤35km/h |
| 摩旅 | ≤3mm | ≤50% | ≥5°C | ≤30km/h |
| 自驾 | ≤12mm | ≤70% | ≥0°C | ≤45km/h |
| 亲子 | ≤25mm | ≤85% | ≥-2°C | ≤50km/h |
若用户坚持在恶劣天气出行,必须明确告知风险边界:降雨山路不徒步(落石/滑坡/雷击);骑行减速避开积水;雷电不在海边湖边山脊停留;低温+雨注意失温;摩旅遇大雨积水不要硬通过。
第 4.9 步:景点票务提取(路书层的核心)
这一步决定报告是"指南"还是"路书"。 目的地简介无法回答"票怎么买、要不要预约、怎么去",必须提取景点级信息。
# 单个目的地试跑
python scripts/extract_poi.py dali
# 批量提取并写入 references/poi.json
python scripts/extract_poi.py dali lijiang chengdu beijing sanya \
zhangjiajie huangshan xichang --save提取字段(来自攻略页 spot 卡片):景点名、标签、描述、门票线索、预约线索、数据来源。
两种页面结构都要支持(实测踩过):
<div class="spot">/<article class="spot">—— 卡片型(大理/三亚/张家界/黄山/西昌)h2直接作景点名 —— 列表型(丽江/成都/北京/杭州),脚本自动走extract_fallback()
标签名不固定、顺序也不固定(有的 sptag 在 h3 前有的在后),故用通配 + 全块搜索。
提取到的信息实例(这就是路书该有的颗粒度):
- 丽江玉龙雪山:门票 100 + 环保车 20(必选),冰川公园大索道 120 元,旺季需提前实名抢票,官方小程序 20:00 放票
- 丽江古城维护费 50 元/人(缴纳后 365 天内有效)
- 束河古镇 40 元,白沙古镇免费(白沙壁画 30)
- 大理洱海生态廊道:130km,全天免费,禁机动车驶入,自行车 20-30/天、电动 60-80
- 大理双廊玉几岛太阳宫参观需提前预约,日落最佳时段 18:30-19:00
- 黄山:门票+索道分段计价,具体以景区当日公示为准
未提取到时的处理:如实说明并引导 python scripts/extract_poi.py <slug> --save 补充,或联网查官方渠道。不要凭记忆编造门票价格。
第 4.95 步:季节与车辆规划(建议必须可执行)
python scripts/plan_context.py --to 大理 --date 2026-07-15
python scripts/plan_context.py --to 丽江 --date 2026-10-01 --car ev --drive 380 --json > context.json季节按四类地区分别判断(不是全国一套):
| 类别 | 覆盖 | 特点 |
|---|---|---|
south 南方 |
华东/华中 | 梅雨季集中在 6-8 月 |
north 北方 |
华北/东北 | 冬季严寒干燥、春季风沙 |
plateau 高原 |
拉萨/香格里拉/稻城亚丁等 | 昼夜温差极大、紫外线极强、7-8 月滑坡泥石流高发 |
southwest 西南城区 |
大理/丽江城区 | 海拔 1500-2400m,比高原温和,比北方湿 |
tropical 热带 |
海南/华南沿海 | 台风季 7-9 月、冬季反而是最佳季 |
注意区分:TRUE_PLATEAU 名单只收"整城高海拔"(拉萨、香格里拉、稻城亚丁等)。
大理丽江城区属southwest,只有苍山/玉龙雪山等景区才是高海拔 —— 不要一刀切按高原处理。
车辆动力类型的差异(实测数据):
| 类型 | 能耗 | 高海拔系数 | 核心短板 |
|---|---|---|---|
ev 纯电 |
0.18 kWh/km | ×1.9 | 爬坡哑车、山区桩少、涉水拒赔、部分高海拔路限行 |
phev插混 |
0.10 kWh/km | ×1.6 | 亏电油耗飙到 8-10L/100km(比油车还高) |
fuel 燃油 |
0.085 L/km | ×1.25 | 爬坡动力衰减、乡镇可能只有 95 号、加油站间距大 |
hybrid 混动 |
0.055 L/km | ×1.2 | 高原低氧下电机效率下降,短途更费油 |
脚本会输出每种车的短板清单与路线补能策略(如电车"充电桩间距 >60km 一律先充再走"、油车"上坡用低挡位控速不要高挡硬顶")。
节假日高峰自动识别:元旦/五一/国庆前后 → 提示住宿机票上浮 50-200%、需提前 3-7 天抢票;7-8 月上旬 → 暑期高峰提示。
第 5 步:联网调研(关键,不能跳过)
这一步是"事无巨细"的来源。按需搜索,每次一个维度,把结果整理成 research.json。
搜索维度与关键词模板:
| 维度 | 搜索关键词模板 | 要挖到什么 |
|---|---|---|
| 交通接驳 | {目的地} 到{下一站} 高铁 时刻表、{目的地} 机场 市区 交通 |
具体线路、耗时、票价区间、末班时间 |
| 租车骑行 | {目的地} 租电动车 价格 注意、{目的地} 骑行 路线 里程 |
日租价、续航虚标、禁行路段、停车点 |
| 景点预约 | {目的地} 景点 门票 预约 2026、{目的地} 免费景点 推荐 |
票价、是否需提前预约、限量情况 |
| 美食 | {目的地} 必吃 排队、{目的地} 私房菜 本地人 |
具体店名、招牌菜、人均、避开的坑 |
| 人文历史 | {目的地} 历史 由来、{目的地} 博物馆 世界遗产 |
历史脉络、有价值的文化点 |
| 商圈购物 | {目的地} 商圈 逛街、{目的地} 伴手礼 哪里买 |
具体商圈名、什么在哪买更便宜 |
| 住宿 | {目的地} 住哪 方便、{目的地} 民宿 推荐 亲子 |
分区域住宿建议、避坑(太远/太贵/太吵) |
| 安全 | {目的地} 自驾 危险 路段、{目的地} 天气 风险 |
具体风险路段、限速、天气预警 |
| 避坑 | {目的地} 骗局 宰客、{目的地} 注意事项 后悔 |
真实负面反馈,这是最有价值的部分 |
research.json 结构:
{
"transport": [
{"title": "标题", "text": "正文", "kind": "warn"}
],
"spots": [], "food": [], "humanity": [], "shops": [],
"stay": [], "gear": [], "safety": [], "pitfalls": []
}kind 字段:warn 渲染为红色警示框(必须留意的坑),tip 渲染为绿色贴士框(省时省钱技巧),省略则为普通段落。
调研质量要求(实测验证过):
- ✅ 搜到的细节远超预期:电动车续航虚标金额、生态廊道禁行规则、亲子酒店具体房型与价位、餐厅名称与营业时间、低价团套路
- ❌ 搜索结果会有过时或错误信息(2024 年的票价、已关闭的店),交叉验证:价格类信息至少看 2 个来源
- 每条信息都要能落到"可执行"层面,不能写"注意安全"这种空话
第 6 步:叠加实时数据
# 天气(含体感、湿度、风速、降水概率)
python scripts/fetch_weather.py 大理 --days 4
# 铁路车站码与车次(无票价)
python scripts/fetch_transit.py --stations 杭州 大理
python scripts/fetch_transit.py G71 --date 20261010
# 多目的地距离、方位、顺序(避免折返)
python scripts/plan_route.py 杭州 大理 丽江 昆明第 7 步:生成 HTML 报告
python scripts/render_report.py \
--plan plan.json --research research.json \
--weather weather.json --poi references/poi.json --context context.json \
--out 旅行报告.html参数:
--plan必需--research调研素材--weather天气预检结果(户外画像必传)--poi景点库(提供门票/预约/来源,路书层核心)--context季节与车辆规划(提供日期适配与动力类型建议)
产出特点:单文件、内联 CSS/JS、无外部依赖、响应式、已内置打印样式(用户可直接 Ctrl+P 另存为 PDF)。
紧凑排版:整体字号 13.5px、section 内边距 15px 17px、卡片间距 8-11px,行高 1.58。
一屏能看到更多信息,PDF 页数也相应减少。打印时进一步压缩至 11.5px 并隐藏导航。
目录导航:报告顶部有 sticky 目录条,列出全部板块(自动编号 01/02/03…),点击跳转。
滚动时自动高亮当前板块,右下角显示阅读进度百分比,末尾附「↑ 顶部」快捷返回。
打印时目录自动隐藏(@media print 中 .toc{display:none}),避免浪费纸面。
板块通过 sec_open(id, 图标, 标题) 注册,编号按注册顺序自动分配 —— 新增板块时无需手动改编号与目录。
报告共 8 大板块,指南层与路书层各占一半:
| # | 板块 | 层次 | 回答什么 |
|---|---|---|---|
| 01 | 行程概览 | 指南 | 节奏、强度、总花费 |
| 02 | 逐日动线 | 指南 | 每天几点出门、几个点、怎么串 |
| 03 | 实地调研 | 指南 | 交通/美食/人文/商圈/安全/避坑 |
| 04 | 景点攻略与门票 | 路书 | 景点在哪、门票多少、要不要预约、来源 |
| 05 | 出行须知 | 路书 | 该季节穿什么、车辆能不能开上去 |
| 06 | 住宿安排 | 指南 | 几间房、什么床型、预订提示 |
| 07 | 预算安排 | 路书 | 分项花费与全团口径 |
| 08 | 装备与物资清单 | 路书 | 按画像+季节生成的物资 |
主题色随画像自动变化:特种兵红、度假蓝、蜜月粉、骑行绿、摩旅紫、徒步棕等。
天气预检板块的视觉分级:ok 绿框 / caution 黄框 / indoor_rewrite 蓝框 / not_recommended 红框,每档都带「怎么办」行动指引。
第 8 步:交付时的说明
生成报告后,向用户说明:
- 报告可直接打开查看,打印为 PDF 用 Ctrl+P
- 票价需自行核实(给出查询路径)
- 天气、开放时间为生成时状态
- 如需调整(增减天数、改节奏、换住宿区域),可具体说明重新生成
实时数据源实测结论
不要凭直觉改写这一节,都是实测结果:
| 数据源 | 状态 | 说明 |
|---|---|---|
| Open-Meteo 天气 | ✅ 免key | 实时 + 1~16 天预报,WMO 码需转中文 |
| Open-Meteo 地理编码 | ✅ 免 key | 预置坐标用,只接受 CN 结果 |
| 12306 车站码表 | ✅ 免 key | 已缓存到 references/station_codes.json |
| 12306 车次搜索 | ⚠️ 仅支持车次号 | 只认车次号,不支持 OD 查询;模糊匹配需精确过滤 |
| 12306 票价 | ❌ 不可用 | leftTicket/query 会 302 到 error.html,需 session |
| 携程车次 | ❌ 已失效 | 返回 Ack:Success 但 TrainInfoList 恒为空数组 |
| 携程机票 | ❌ Forbidden | 返回 code:11010 |
| 高德 API | ⚠️ 需 key | 无 key 返回 INVALID_USER_KEY |
| Nominatim (OSM) | ❌ 网络不可达 | 本环境 HTTP 000 |
| wttr.in | ✅ 备选 | 免 key 天气,可作降级 |
攻略页解析要点
每个目的地攻略页板块名完全不同,不要套固定模板。实测:
| 目的地 | 板块组织 |
|---|---|
| 成都 | 成都一览 / 短程2-3天 / 长程4-5天 / 市区景点 / 购物 / 美食 / 交通避坑 / 特产 |
| 大理 | 2天打卡版 / 5天沉浸版 / 10天旅居版 / 必去景点 / 出行方式 / 住宿 / 必吃 / 预算 / 避坑 |
| 丽江 | 一句话看懂 / 玉龙雪山 / 大研古城 / 拉市海+虎跳峡 / 泸沽湖 / 必吃 / 交通海拔避坑 |
必须先看板块清单:
python scripts/fetch_guide.py 大理 --sections # 只列板块名
python scripts/fetch_guide.py 成都 --grep 避坑 # 只取指定板块站点特性:
- 不存在的 slug 返回首页 200而非 404,必须校验 canonical(
/map/<slug>/,不带 index.html`) - 页面含深色模式 CSS,勿当内容提取
- 底部有「N / M」页码,脚本已剔除
坐标可靠性(重要)
天气查询必须有经纬度,而 234 个目的地的攻略页均不含坐标,需离线预置。免费地理编码对中文地名极不可靠:
| 查询 | 接口返回 | 正确位置 | 判别依据 |
|---|---|---|---|
| 承德 | 吉林同名点 | 河北承德 | 省份不符 |
| 大理 | 四川泸州"大理"(PPL,无人口) | 云南大理市(PPLA2,23 万人) | 需查"大理市" |
| 洛阳 | 福建泉州"洛阳"村(PPL,6.6 万人) | 河南洛阳市(PPLA2,139 万人) | 需查"洛阳市" |
| 五台山 | 四川同名点 | 山西五台山 | 省份不符 |
enrich_coords.py 的四重防护:① country_code==CN;② 省份须落在该目的地所属区域辖省内;③ 名称须相符(允许"大理"↔"大理市"后缀差异);④ feature_code 加权 + 人口排序,排除"低行政等级且无人口数据"。
地名加后缀变体重试(市/县/自治州)是命中率提升的关键。
实测准确率:正确 9 / 错误 0 / 未匹配 5。零错误是核心指标。
维护命令:
python scripts/enrich_coords.py --workers 4 # 并发不要超4,6 会触发限流
python scripts/verify_coords.py # 反查自检
python scripts/verify_coords.py --fix# 清除可疑坐标后重抓资源清单
数据(references/)
destinations.json— 234 个目的地全量数据(含预置坐标,坐标覆盖约 53%)poi.json— 景点级票务与预约信息(由extract_poi.py生成,可增量扩充)station_codes.json— 12306 车站电报码表(首次运行自动生成)
脚本(scripts/)
| 脚本 | 用途 | 层次 |
|---|---|---|
search_dest.py |
目的地检索:关键词/区域/主题/天数/统计 | 指南 |
fetch_guide.py |
抓攻略页正文:--sections / --grep / --raw |
指南 |
extract_poi.py |
提取景点门票/预约/来源(路书核心) | 路书 |
plan_context.py |
季节感知 + 电车/油车规划 | 路书 |
check_weather.py |
户外天气可行性预检,四档判定 | 路书 |
build_itinerary.py |
行程编排引擎(节奏+住宿+预算+装备) | 指南 |
render_report.py |
渲染单文件 HTML 报告(可打印PDF) | 两者 |
fetch_weather.py |
实时天气与预报 | 路书 |
fetch_transit.py |
车站码与车次(无票价) | 路书 |
plan_route.py |
距离/方位/顺序规划 | 指南 |
enrich_coords.py |
坐标补全 | 内部 |
verify_coords.py |
坐标反查自检 | 内部 |
示例(examples/)
examples/ 内是两份完整报告,可作为生成质量的参考基准:
| 文件 | 说明 |
|---|---|
plan_dali_family.json |
三口之家亲子行程数据(含 stay 房间分配) |
research_dali_family.json |
调研素材写法示例(9 维度、21 条 warn/tip) |
weather_cycling_dali.json |
天气预检输出示例(not_recommended 档) |
大理亲子3日.html |
亲子报告成品(含住宿安排板块) |
大理骑行天气预检.html |
户外报告成品(含天气预检板块) |
参考它们可以确认:房间数与床型该给到什么颗粒度、warn/tip 怎么标、
天气四档该怎么回应、报告该达到什么详细程度。
质量准则
- 先给结论:推荐、节奏、预算先说清楚,再展开细节
- 两层缺一不可:只有指南层是纸上谈兵(不知道票怎么买),只有路书层排不出动线
- 建议必须可执行:不写"注意安全""带雨伞",要写"7 月午后雷雨多,户外活动放上午,骑行改室内"
- 住宿按房间数算,不按人数算:三口之家 1 间家庭房,不是 3 间
- 户外行程先查天气再推荐:天气不达标必须给替代方案,不能硬推
- 季节结论必须绑定实际日期:7 月大理与 10 月大理结论相反,不给日期就说"未提供日期,以下为通用参考"
- 自驾必须区分动力类型:电车与油车在高海拔是两种体验,不问清车型就没法给路线建议
- 门票与预约要给来源:引用攻略页数据时保留
source字段,让用户知道可信度 - 区分事实与推断:
summary与网页内容是事实;天数推断属推断,须标明 - 实时数据必须现查:天气用脚本实跑,不凭记忆报气温
- 票价绝不编造:无法获取就明说并给查询路径
- 门票价格会变:引用时加「以景区当日公示为准」
- 优先推荐冷门替代:用户想去热门城市且预算/体验有要求时,主动提同区域小众目的地
- 不做无依据的组合:多目的地行程须说明地理相邻性,不把相距两千公里的城市硬凑一线
- 未收录目的地如实告知:查不到就说查不到,转联网搜索或手动坐标,不编造景点与交通
发布到千问技能市场
本技能同时兼容千问平台(Qoder / Claude Code等 Agent)与本地 WorkBuddy。
发布流程:登录 → 设置技能市场个人名称(首次)→ 完成实名认证 → 上传 ZIP 预检(校验 frontmatter)→ 填写资料 → 提交审核 → 约 2 分钟出结果。
发布资料字段:
| 字段 | 说明 |
|---|---|
| 英文标识 | 默认取 SKILL.md 的 name,系统自动加命名空间前缀(@user_xxx/worldstip-travel-planner) |
| Skill 名称 | 展示名,可用中文「WorldsTip 旅行规划大师」 |
| 图标 | 可选上传 |
| 简介 | 默认取 description,最多 200 字(本技能已压到 193 字,留有余量) |
| 版本号 | 默认 0.0.1 |
| 开源协议 | 只能选MIT 或 Apache-2.0(本技能采用 MIT) |
审核链路:安全检测 → 人工审核 → 发布上线。
- 安全检测结果分「通过 / 提醒 / 可疑 / 危险」;「提醒/可疑」进入待处置,需手动选择「继续审核」或「修改后重新提交」;「危险」必须修改
- 状态共四种:待处置(红)/ 审核中(紫)/ 已上线(绿)/ 已下线(灰)
- 被驳回或发现安全问题 → 修改后重新提交即可
版本管理:
- 发布新版时
SKILL.md中的name必须与当前 Skill 一致,英文标识与名称沿用不可改 - 挂载到智能体时需指定版本号,上传新版不会自动升级已挂载的智能体,须到智能体配置里改版本
容易被驳回的风险点(本技能已规避):
- 硬编码 API key 或凭证 —— 本技能全部数据源免key
- 要求用户上传敏感信息 —— 只问行程偏好,不问身份证/银行卡
- 诱导性话术、绝对化承诺(如"保证不出事")—— 天气与安全均给出条件化表述
- 引用未授权的第三方内容 —— 数据源为公开接口与用户反馈,已注明出处
目录与数据维护
目的地库快照自 2026-10-04 的 sitemap(https://worldstip.com/worldstip-sitemap.html)。更新方式:
curl -sL "https://worldstip.com/worldstip-sitemap.html" -o sitemap.html数据位于页内 const DATA = {...}; 与 const META = {...}; 两个 JS 字面量(注意是 JS 对象语法,key 无引号,需先转成合法 JSON)。字段:n=名称、u=URL、d=简介、dy=建议天数、py=拼音首字母;META 存区域全称与配色。
重建 JSON 后必须重跑坐标补全,否则天气功能失效。