Trip Planner CN
by @doushen-cloud
行程规划助手,支持往返/单程行程规划。触发词:规划行程、高铁查询、航班查询、机场周边、时间安排、出行方案、当天往返。 涵盖:航班/高铁时刻查询、中转方案、时间约束筛选、详细时间线生成。
clawhub install trip-planner-cn📖 About This Skill
name: trip-planner version: 1.0.0 description: > 行程规划助手,支持往返/单程行程规划。触发词:规划行程、高铁查询、航班查询、机场周边、时间安排、出行方案、当天往返。 涵盖:航班/高铁时刻查询、中转方案、时间约束筛选、详细时间线生成。 license: MIT
Trip Planner Skill
行程规划助手,支持往返行程(当天/隔天/多天)和单程行程规划。
前置条件
本技能使用DuMate自带的携程connector查询交通信息,无需额外安装依赖。
可选配置:
BMAP_WEBAPI_AK - 百度地图API密钥,用于驾车时间查询(如未配置将使用估算值)可用工具
| 工具 | 功能 | 数据源 |
|------|------|--------|
| ___query_flight | 查询航班 | 携程 |
| ___query_train | 查询高铁/火车 | 携程 |
| ___query_hotel | 查询酒店 | 携程 |
| ___query_ticket | 查询景点门票 | 携程 |
触发场景
用户需要规划行程,涉及飞机、高铁、驾车等交通方式的选择和组合。
行程类型
核心规则
一、硬性约束(必须满足)
二、软性约束(尽量满足)
三、时间预留
四、交通方式选择
五、驾车限制
六、不考虑价格因素
时间最关键,不因价格差异改变推荐方案。
航班查询规则(携程)
1. 打开页面
2. 按时间排序
3. 滚动加载完整数据(关键!)
携程等网站使用懒加载,必须滚动到底部才能获取所有航班。
操作步骤:
1. 获取初始快照
2. 滚动页面:playwright-cli mousewheel 0 500
3. 等待2秒让数据加载
4. 获取新快照
5. 重复步骤2-4,直到页面不再加载新内容
判断是否加载完成:
常见错误:
实际案例:
4. 数据提取
携程connector数据解析规则:
使用 ___query_flight 工具时,返回的 routeList 中每个 route 包含 flights 数组:
flights 数组长度为1,且 aport.name 为目标机场flights 数组长度为1,但 stops 不为空flights 数组长度大于1筛选直飞航班时,必须同时满足:
1. len(flights) == 1
2. flights[0].aport.name == 目标机场名称
错误示例:只按 len(flights) == 1 筛选,未检查到达机场,导致遗漏部分直飞航班
5. 数据完整性验证
6. 出发机场优先
高铁查询规则(12306)
1. 查询实时数据
2. 未开售处理
穷尽周边机场
触发条件
操作方法
1. 确定目的地具体位置 2. 在地图上搜索周边200-300km范围内的所有机场 3. 不能凭印象列举,要系统性地排查 4. 逐一查询每个机场的航班
优先级
示例
综合排序
驾车时间查询
BMAP_WEBAPI_AK 环境变量)工作流程
1. 明确需求
2. 确定目的地位置
3. 调研交通方式
4. 生成方案
5. 呈现方案
输出格式
方案对比表
| 方案 | 出发时间 | 到达时间 | 总耗时 | 交通方式 | 备注 | |------|----------|----------|--------|----------|------| | 方案A | XX:XX | XX:XX | X小时 | XX→XX→XX | 简要说明 | | 方案B | XX:XX | XX:XX | X小时 | XX→XX→XX | 简要说明 |
最优方案详细时间线
06:30-08:10 北京首都机场 值机、安检、候机
08:10-09:35 北京首都机场 → 烟台蓬莱机场 乘坐SC5069航班
09:35-10:30 烟台机场 → 龙口 打车
...
注意事项
输出前自洽性检查(必须!)
时间线输出前,逐行检查:
1. 时间段长度与耗时说明一致
2. 每个交通节点预留候车/候机时间
常见错误
1. 只查去程不查返程:导致返程时间不合适
2. 忽略机场/车站到目的地的交通时间:导致实际停留时间不足
3. 不考虑值机时间:导致赶不上航班
4. 不区分机场/车站:导致用户跑错地方
5. 违反硬性约束:推荐了不满足用户时间要求的方案
6. 航班数据提取不完整:只获取了部分航班,遗漏更优方案
7. 凭印象列举周边机场:遗漏更近的机场
8. 只按价格排序:忽略了出发机场、总耗时等因素
9. 时间线自相矛盾:时间段长度与耗时说明不一致(如写"05:50-06:08"但说明"地铁30分钟")
10. 数据解析错误:携程connector返回了完整数据,但解析时筛选条件不正确,遗漏了部分航班(如只按 len(flights)==1 筛选,未检查到达机场是否为目标机场)
示例
用户需求:4月25日从上海浦东去泸州郎酒庄园,9:30后出发
目的地位置分析:
调研结果:
方案对比:
| 方案 | 出发时间 | 到达庄园时间 | 总耗时 | 航班价格 | 驾车距离 | |------|----------|-------------|--------|---------|---------| | A(泸州直飞) | 14:25 | 21:30 | 约7小时 | ¥740 | 100km | | B(重庆转车) | 10:00 | 18:30 | 约7小时 | ¥900 | 200km |
推荐:方案B,从浦东出发更方便,到达时间更早。