| name | travel-requirement-intake |
| description | 旅游规划需求准入与单轮追问。Use when the user asks for a travel plan, itinerary, route, POI recommendation, city walk, nearby travel, or executable tourism advice; classify required versus optional information and ask one concise follow-up round before planning. |
旅游规划需求准入与单轮追问
目标
本 Skill 用于旅行规划的第一步:先判断用户已经给了哪些关键信息、还缺哪些信息,再用一轮追问把缺口一次性问清楚。
除非用户明确说“不要追问、直接按默认规划”,否则首次旅行规划请求不要直接开始调用攻略或地图工具生成完整方案;先完成一次需求澄清。用户回复后,不要继续一项一项追问,未回答的可选项按默认假设处理。
信息分级
必须信息
缺少以下信息时,不要生成最终规划:
destination:目的地城市、区域、景区、街区或“附近”的定位范围。
- 用户只说“附近”“周边”但没有当前位置、城市或起点时,目的地信息不足。
- 地名有多城市歧义时,需要用户确认城市,例如“鼓楼”“人民公园”。
travel_time_budget:游玩日期、天数或可用时长。
- 可以是精确日期,也可以是“周末两天”“明天下午”“今晚 3 小时”。
- 如果用户要求公交、地铁、营业状态或排队规避,尽量询问具体日期和出发时间。
route_anchor:路线起点、住宿地、当前位置、抵达车站/机场,或每天默认出发区域。
- 如果要给出“距离、公交线路、最多等待多久、路程多久”,起点必须明确。
- 多日行程至少需要住宿区域或每天出发区域。
planning_goal:用户想要的输出类型。
- 例如一日路线、多日行程、景点推荐、亲子路线、城市散步、美食路线、周边游。
- 如果用户只说“帮我看看旅游”,需要问清楚想规划什么。
条件必须信息
用户需求涉及以下场景时,这些信息变成必须项:
- 亲子、老人、孕妇、轮椅、宠物同行:必须确认体力、无障碍、推车或宠物限制。
- 自驾、包车、跨城、郊区:必须确认交通方式、是否往返、司机体力和可接受车程。
- 餐厅、美食、住宿、门票预算:必须确认预算区间或消费偏好。
- 必去/不想去地点已经被用户提到:必须记录,不能在路线中忽略或反向安排。
- 明确要求“最多等待多久”“几点到几点”:必须确认日期、出发时间和起点;工具未返回候车时间时要如实标注无法确认。
可选信息
以下信息有助于提升质量,但缺失时可以使用默认假设:
transport_preference:默认“步行 + 公共交通,必要时短途打车”。
pace:默认“平衡偏慢”,每天 2-4 个主停留点。
interests:默认“经典景点 + 本地生活感 + 顺路低折返”。
budget:默认“中等预算,不主动推荐明显高消费项目”。
food_preference:默认“就近、本地特色、不过度排队”。
crowd_preference:默认“避开过度拥挤和高折返路线”。
map_visualization:默认不生成地图,除非用户需要。
单轮追问协议
什么时候追问
- 首次旅行规划请求:先追问一轮。
- 已经追问过且用户已回复:继续规划,不要重复追问。
- 用户明确说“按默认”“你决定”“别问了直接规划”:使用默认值继续规划。
- 用户新回复与之前信息冲突,且会影响路线事实:只问冲突项。
怎么追问
追问必须一次性覆盖所有必须缺口,并最多附带 2 个最有价值的可选偏好。不要把可选项问成很长的问卷。
推荐问法:
我先确认几项,这样后面才能给到具体路线和交通时间:
1. 你想去哪个城市/区域?
2. 从哪里出发或住在哪里?
3. 准备玩几天/哪个时间段?
可选:更偏步行公交、打车,还是自驾?有没有必去或不想去的地方?
如果已具备必须信息,但还没有偏好,也仍然做一轮轻量确认:
基础信息够了,我再确认两个偏好后就开始规划:你更想要慢节奏闲逛,还是尽量多打卡?交通默认按“步行 + 公共交通,必要时打车”可以吗?
JSON 输出约定
当需要等待用户补充信息时,最终仍然只输出单个 JSON object,并遵循入口要求:
insufficient_information 设为 true。
answer 中只做需求澄清,不输出路线草案。
follow_up_questions 放入本轮要问的问题。
thinking_result 简要说明已识别字段和缺失字段,不暴露隐藏推理链路。
planning_process 写“正在进行需求澄清,暂未进入攻略采集和路线验证”。
示例:
{
"query": "帮我规划一下周末旅游",
"normalized_query": "用户希望规划周末旅游,但目的地、起点和具体天数未确认",
"thinking_result": "已识别为旅行规划请求;缺少目的地、起点和时间预算,暂不适合生成可执行路线。",
"planning_process": "当前处于需求澄清阶段,暂未调用攻略素材或地图路线验证。",
"answer": "我先确认几项,这样后面才能给到具体路线和交通时间:1. 你想去哪个城市/区域?2. 从哪里出发或住在哪里?3. 准备玩几天/哪个时间段?可选:更偏步行公交、打车,还是自驾?有没有必去或不想去的地方?",
"content_insights": [],
"route_validation": [],
"follow_up_questions": [
"你想去哪个城市/区域?",
"从哪里出发或住在哪里?",
"准备玩几天/哪个时间段?",
"交通更偏步行公交、打车,还是自驾?有没有必去或不想去的地方?"
],
"insufficient_information": true
}