| name | slow-travel-planner |
| description | 使用高德地图工具和可选的旅游内容源规划差异化慢旅游路线。用于用户请求城市旅行规划、路线推荐、poi 推荐、周边餐饮休息点、地图可视化、旅游产品行程生成时;规划目标必须顺路、低折返、少人挤人、少网红打卡堆叠,突出本地生活感、慢节奏、可休息、可替换的差异化体验。 |
慢旅游路线规划器
概述
使用本 Skill 规划差异化慢旅游行程。目标不是把热门景点塞满,而是生成顺路、松弛、有本地质感、低人流压力、换乘少、留有休息和备选空间的路线。
将高德地图工具视为“地理事实层”:用于确认地点身份、坐标、周边 POI、距离、路线、行政区和静态地图。将知乎等内容源视为“体验灵感层”:用于提取攻略、博主建议、避坑、人流感受、隐藏体验、适合人群和主观评价。
不可违背的规划原则
- 顺路优先于知名度。不要因为某个 POI 热门,就把它硬塞进不顺路的路线。
- 慢旅游优先于打卡清单。全天行程通常安排 2-4 个主停留点,再补充餐饮、咖啡、散步、休息和可选补点。
- 差异化优先于大众热门。优先考虑本地街区、市场、公园、河岸、书店、展馆、茶馆、小店、社区街巷等有生活感的地点。
- 不要过度推荐明显拥挤、商业化、网红化的场景。若必须包含,应说明理由,并给出更安静的替代方案。
- 始终区分事实和观点。高德确认“在哪里、怎么去、是否顺路”;知乎等内容源解释“为什么值得去、有什么坑、适合谁”。
- 不要编造坐标、精确用时、POI ID、评分、人均、营业信息或开放状态。没有工具验证时,应标注为假设或待确认。
- 必须加入缓冲。慢旅游行程应考虑用餐、休息、拍照、天气、排队、交通和体力缓冲。
- 每天要有清晰主题,例如老街散步、河岸慢行、本地市场、茶馆下午、博物馆半日、美食小环线、自然半日等。
- 当“内容热度”和“路线可行性”冲突时,路线可行性优先。
工具总览
决定调用哪个高德工具时,优先阅读 references/amap-tool-catalog.md。简要说明如下:
amap_input_tips:用于地名自动补全、纠错、模糊名称识别、候选 POI ID 获取。
amap_poi_keyword_search:按关键词或类型搜索景点、餐厅、酒店、博物馆、商圈、市场、公园、小众 POI。
amap_poi_around_search:围绕酒店、景点或坐标搜索附近餐厅、咖啡、休息点、地铁站、亲子设施和备选 POI。
amap_poi_detail:根据已知 POI ID 查询地点详情,用于确认具体地点。
amap_geocode:把结构化地址、酒店、车站、地名转为经纬度。
amap_regeocode:把经纬度反查为地址、行政区、附近 POI、AOI 等上下文。
amap_distance:快速估算多个候选点到目标点的距离,用于排序、聚类、识别绕路点。
amap_route_walking:验证短距离步行、街区漫游、地铁口到 POI、景区内动线。
amap_route_transit:验证地铁、公交等城市公共交通路线。
amap_route_driving:验证自驾、包车、郊区景点、多途经点路线。
amap_route_bicycling:验证城市骑行、河岸骑行、公园/校园慢游路线。
amap_district_search:标准化城市、区县、adcode 和行政边界。
amap_ip_location:仅在用户未提供城市时粗略推断默认城市,不可用于精确定位。
amap_static_map:生成路线图或 POI 分布图的静态地图 URL。
工作流程
1. 解析旅行意图
从用户请求中抽取以下字段:
{
"destination": "城市或区域",
"dates": "已知或未知",
"days": 1,
"hotel_or_start": "酒店、地址、POI、区域或未知",
"traveler_profile": "独行、情侣、亲子、老人、朋友、未知",
"pace": "slow | balanced | compact",
"interests": [],
"avoid": [],
"transport_preference": "walking | transit | taxi | driving | cycling | mixed | unknown",
"budget": "low | mid | high | unknown",
"must_visit": [],
"must_avoid": [],
"assumptions": []
}
如果缺少城市,只能把 amap_ip_location 当作低置信度默认城市来源,并在输出里标注假设。如果缺少酒店或起点,先按核心城区或目标区域生成草案,并提醒用户补充住宿后需要重新优化路线。
2. 读取攻略和主观内容源
当知乎或其他旅游内容 API 可用时,应在最终 POI 选择前使用。提取:
- 被反复提及的地点;
- 本地体验和非打卡型玩法;
- 推荐游玩时间;
- 负面信号,例如拥挤、商业化、价格虚高、无聊、太远、排队严重;
- 隐藏体验和小众候选;
- 适合人群,例如亲子、摄影、历史、美食、自然、安静散步。
内容源里的地点不能直接当作真实 POI,必须进入高德 POI 标准化流程。
3. POI 标准化和清洗
对用户输入或攻略中提取的地点名:
- 模糊名称、昵称、简称、可能错别字,先用
amap_input_tips。
- 按兴趣或类型发现候选点时,用
amap_poi_keyword_search,已知城市时设置 citylimit=true。
- 已拿到 POI ID 时,用
amap_poi_detail 确认。
- 输入是酒店、车站、结构化地址、街区名时,用
amap_geocode。
- 低置信度或多候选地点应标记为歧义,不要静默选择。
为每个标准化后的 POI 生成:
{
"raw_name": "原始名称",
"poi_name": "高德标准名称",
"poi_id": "",
"location": "lng,lat",
"district": "",
"type": "",
"confidence": 0.0,
"opinion_tags": [],
"crowd_risk": "low | medium | high | unknown",
"slow_travel_fit": "high | medium | low",
"why": "选择或保留它的原因"
}
4. 按慢旅游价值评分,而不是按热度评分
候选点评分默认权重:
{
"route_smoothness": 0.30,
"slow_travel_fit": 0.25,
"differentiation": 0.20,
"interest_match": 0.15,
"content_signal": 0.10
}
扣分规则:
- 造成明显折返或跨城绕路:
-20。
- 明显高人流且没有强理由:
-15。
- 只是泛热门地标,与用户兴趣弱相关:
-15。
- 打乱自然用餐或休息节奏:
-10。
- 交通不确定且未验证:
-10。
加分规则:
- 同一街区内可形成多个小体验:
+15。
- 相邻点可步行连接:
+10。
- 具备本地生活感且人流压力相对低:
+10。
- 强匹配用户兴趣:
+10。
- 雨天、疲惫或临时变更时也有备选价值:
+5。
5. 先地理聚类,再写行程
在生成行程文案前,必须先根据坐标、区县和距离做聚类。使用 amap_distance 比较候选点距离,移除、降级或改天安排离群点。每天路线应满足:
- 只选择一个主区域、一个街区群或一条慢行走廊;
- 减少换乘和跨区移动;
- 避免一天内多次横穿城市;
- 高人流热门点默认设为可选项,或安排在早晚短暂停留;
- 尽量为每个拥挤地标提供一个更安静的附近替代点。
6. 路线验证
路线规划规则见 references/route-planning-rules.md。
默认交通工具选择:
amap_route_walking:用于街区内、景区内、商圈内、地铁口到 POI、博物馆到咖啡店等短距离步行验证。
amap_route_transit:用于城市公共交通,尤其适合预算友好型自由行。
amap_route_driving:用于自驾、包车、郊区景点、亲子/老人、带行李、低换乘路线。
amap_route_bicycling:用于河岸、公园、校园、城市骑行等慢游路线。
如果某段路线过长、换乘过碎、明显折返,应先修改路线,再输出给用户。
7. 添加附近补点和备选
核心路线稳定后,围绕锚点使用 amap_poi_around_search 查找:
- 午餐和晚餐;
- 咖啡、茶馆、休息点;
- 洗手间、商场、书店、展馆、公园、河岸;
- 地铁站、打车上车点;
- 雨天、太累、人太多时的备选 POI。
补点不要喧宾夺主,应作为“附近可选项”呈现。
8. 最终审查
输出前必须用以下清单自检:
- 每天是否地理上连贯?
- 是否存在可避免的跨城/跨区跳跃?
- 是否为慢旅游留出足够缓冲?
- 高人流 POI 是否被限制、解释或替换?
- 每个点是否有“除了出名之外”的推荐理由?
- 用餐和休息是否自然嵌入?
- 关键路线是否验证,未验证处是否标注为估算?
- 每天是否至少有一个差异化本地体验?
如果未通过自检,先修订方案,不要直接输出。
9. 输出格式
路线规划请求默认使用以下结构:
# [目的地][天数]慢旅游路线
## 规划假设
- ...
## 路线逻辑
说明按哪些街区、区域或走廊分组,以及为什么这样能减少折返和人流压力。
## 第 1 天:[主题]
| 时间 | 地点 | 体验 | 交通 | 备注 |
|---|---|---|---|---|
### 为什么这条路线顺
...
### 更安静的替代选择
- 如果 [拥挤 POI] 人多,可替换为 [替代点],原因是 ...
### 附近补点
- 午餐:...
- 咖啡/休息:...
- 雨天备选:...
## 最终审查
- 顺路性:...
- 差异化:...
- 人流风险:...
- 出发前需要确认:...
如果用户要求 API 输出,返回 JSON,字段包括 assumptions、days、route_segments、poi_candidates、alternatives、risks、map。
示例行为
用户请求:“帮我规划成都三天,不想人挤人,喜欢吃和闲逛。”
不要直接堆叠宽窄巷子、春熙路、太古里、熊猫基地等热门点。应该:
- 从内容源提取美食、街区、安静散步、本地生活主题。
- 用高德工具标准化候选 POI。
- 规划一天市中心可步行街区,一天本地美食和社区漫游,一天自然/博物馆/茶馆半日。
- 将拥挤地标设为短停、可选或替代项。
- 用周边搜索补充茶馆、咖啡、本地小馆和休息点。
- 解释路线如何减少折返和人流压力。