Install
openclaw skills install chengxin同程程心 Skill - 基于同程旅行大模型(程心)的在线旅游搜索能力。提供更专业的机票、火车票、酒店、度假产品(自由行/跟团游)、旅游攻略、行程规划、特价机票、汽车票、长途汽车、景区、门票等的查询能力,基于同程官方数据,更加实时准确可靠,一键进入预订页面,让旅行更简单,更快乐。
openclaw skills install chengxin同程旅行官方旅游助手
调用本技能前,大模型必须确认:
channel 和 surface 参数调用本技能时,用户的任何修饰性需求都不应被丢弃,必须完整传入 --extra。
| 需求类型 | 示例关键词 | 处理方式 |
|---|---|---|
| 时间偏好 | 最早、最晚、上午、下午、晚上、夜间 | 传入 --extra |
| 价格偏好 | 最便宜、低价、经济型、预算有限 | 传入 --extra(机票特价需求可配合 --low-price) |
| 服务等级 | 高铁、动车、一等座、商务舱、五星级、含早餐 | 传入 --extra |
| 行程偏好 | 直飞、中转、经停、少换乘、快、自驾 | 传入 --extra |
| 人群偏好 | 亲子、情侣、老人、宠物友好 | 传入 --extra |
| 特色筛选 | 免费、夜景、夜游、赏花、海景 | 传入 --extra |
⚠️ 规则:先提取结构化参数(出发地/目的地/日期等),剩余所有修饰用户需求全部拼接到
--extra中,不得省略。补偿查询时,extra会原样传递给下游接口,确保需求链不中断。
| 意图类型 | 用户示例 | 调用方式 |
|---|---|---|
| 机票查询 | "北京到上海的机票"、"明天飞广州的航班" | flight-query.js |
| 特价机票 | "上海到北京的特价机票"、"北京出发的特价机票"、"从上海飞哪里便宜" | flight-query.js --low-price(可与 --destination 同时使用) |
| 火车票查询 | "北京到上海的高铁"、"苏州到上海的火车票" | train-query.js |
| 酒店查询 | "上海外滩附近的酒店"、"下周一北京的五星级酒店" | hotel-query.js |
| 长途汽车 / 汽车票 | "北京到上海的长途汽车"、"苏州到上海的大巴"、"苏州到南京的汽车票"、"买张苏州到北京客运票" | bus-query.js |
| 度假产品 / 跟团游 / 自由行 / 行程规划 | "云南旅游团"、"三亚自由行"、"帮我规划北京三日游"、"从苏州出发到杭州玩三天" | travel-query.js |
| 交通查询 | "北京到上海怎么走"、"去苏州有什么交通方式"、"苏州到南京" | traffic-query.js |
| 景区查询 | "苏州有哪些景区"、"上海迪士尼门票"、"杭州有什么好玩的景点" | scenery-query.js |
⚠️ 路由规则:上表每一类意图只通过对应的
*-query.js调用 API;参数不足时引导用户补齐后再执行脚本,不使用其它入口替代。
🚨 智能推荐:当用户未明确指定交通方式时使用此接口!
智能交通查询能力,同时返回机票、火车票、汽车票等多种交通方式,方便用户对比选择。
| 场景 | 示例 | 推荐接口 |
|---|---|---|
| 用户明确说"火车票" | "北京到上海的火车票" | train-query.js ✅ |
| 用户明确说"机票" | "明天飞北京的航班" | flight-query.js ✅ |
| 用户明确说"汽车票/大巴/客运"(公路) | "苏州到南京的汽车票"、"买大巴票" | bus-query.js ✅ |
| 用户未指定交通方式 | "北京到上海怎么走" | traffic-query.js ✅ |
| 组合 | 参数示例 | 说明 |
|---|---|---|
| 出发地 + 目的地 | --departure "北京" --destination "上海" | 按城市查询 |
| 参数 | 说明 |
|---|---|
--departure <城市> | 出发地城市(必填) |
--destination <城市> | 目的地城市(必填) |
--extra <补充信息> | 额外信息(日期、偏好等) |
"明天" - 明天的班次"自驾" - 偏好自驾路线"明天 高铁优先" - 多条件组合"最早" / "最晚" - 时间偏好"最便宜" - 价格优先# 北京到上海,智能推荐交通方式
node scripts/traffic-query.js --departure "北京" --destination "上海" --channel webchat --surface webchat
# 明天出发
node scripts/traffic-query.js --departure "北京" --destination "上海" --extra "明天" --channel webchat --surface webchat
# 包含自驾偏好
node scripts/traffic-query.js --departure "苏州" --destination "南京" --extra "自驾" --channel webchat --surface webchat
同时展示多种交通方式:
每种交通方式都包含:
⚠️ 重要:
traffic-query.js的调用优先级低于专用查询接口!
正确用法:
train-query.jsflight-query.jsbus-query.jstraffic-query.js🚨 优先级最高:查询机票时,必须优先使用此方法!
更精准的机票查询能力,支持航班号精确查询、特价机票查询、多列表推荐。
| 组合 | 参数示例 | 说明 |
|---|---|---|
| 出发地 + 目的地 | --departure "北京" --destination "上海" | 按城市查询 |
| 航班号 | --flight-number "CA1234" | 精确查航班 |
| 出发地 + lowPrice | --departure "北京" --low-price | 特价/低价(未指定目的地时,可查多地低价推荐) |
| 出发地 + 目的地 + lowPrice | --departure "上海" --destination "北京" --low-price | 指定航线上的特价/低价查询 |
| 参数 | 说明 |
|---|---|
--departure <城市> | 出发地城市 |
--destination <城市> | 目的地城市 |
--flight-number <航班号> | 航班号 (如 CA1234) |
--extra <补充信息> | 额外信息 (日期、偏好等) |
--low-price | 特价/低价查询;可与 --destination 同用(指定航线),也可仅出发地(多地低价推荐) |
--low-price 表示用户要特价、低价、便宜等优惠向机票,有两种常见说法:
--departure、--destination 与 --low-price,查该航线上的低价/特价结果。--departure 与 --low-price,由接口返回从该地出发的低价推荐(含目的地推荐)。触发关键词:
示例场景:
| 用户查询 | 调用方式 | 说明 |
|---|---|---|
| "上海到北京的特价机票" | --departure "上海" --destination "北京" --low-price | 指定航线特价/低价 |
| "北京出发的特价机票" | --departure "北京" --low-price | 北京出发低价航线/推荐 |
| "清明节北京出发的特价机票" | --departure "北京" --low-price --extra "清明节" | 带节假日条件 |
| "从上海飞哪里便宜" | --departure "上海" --low-price | 查询低价目的地推荐 |
| "周末从广州出发哪里好玩" | --departure "广州" --low-price --extra "周末" | 带时间偏好 |
--low-price 与 --extra 的协同--low-price 用于触发特价/低价专属查询逻辑,可与 --extra 同时使用以叠加更多用户需求:
| 用户查询 | 调用方式 | 说明 |
|---|---|---|
| "上海到北京明天最便宜的机票" | --departure "上海" --destination "北京" --low-price --extra "明天 最便宜" | 指定航线 + 特价逻辑 + 时间/价格偏好 |
| "北京出发哪里便宜(要最早的)" | --departure "北京" --low-price --extra "最早" | 低价推荐 + 时间偏好 |
| "清明节北京出发的特价机票" | --departure "北京" --low-price --extra "清明节" | 低价推荐 + 节假日 |
原则:
--low-price负责触发 API 的特价/低价查询逻辑;--extra负责承载用户的其他修饰需求(时间、偏好等)。两者不互斥。
引导话术(仅出发地、未说目的地时):
💡 您只提供了出发地,没有指定目的地。
您可以:
1. 补充目的地 (如:北京到上海),需要特价可加 --low-price
2. 或继续用 --low-price 查看从该地出发到全国各地的低价推荐
# 北京到上海,明天的机票
node scripts/flight-query.js --departure "北京" --destination "上海" --extra "明天" --channel webchat --surface webchat
# 查询特定航班
node scripts/flight-query.js --flight-number "CA1234" --channel webchat --surface webchat
# 指定航线特价(上海 → 北京)
node scripts/flight-query.js --departure "上海" --destination "北京" --low-price --channel webchat --surface webchat
# 从北京出发的特价/低价推荐(未指定目的地)
node scripts/flight-query.js --departure "北京" --low-price --channel webchat --surface webchat
# 清明节北京出发的特价/低价
node scripts/flight-query.js --departure "北京" --low-price --extra "清明节" --channel webchat --surface webchat
若用户只提供出发地、未提供目的地:提示用户要么补充目的地(可加 --low-price 查该航线特价),要么使用 --low-price 查从该地出发的低价推荐。
当 flight-query.js 无航班、脚本输出「无结果」或 API code 为 1(见 references/error-handling.md)时,可引导用户尝试「从临近枢纽机场所在城市出发」的空铁联运思路。原则:不编造航班、价格与预订链接;航班与链接只能来自脚本输出,地面段车次、班次与链接只能来自对应脚本输出。
flight-query.js:将 --departure 改为该临近城市,保持 --destination、--extra 与用户原查询一致,并沿用相同 --channel / --surface,完整输出脚本结果。node scripts/flight-query.js --departure "<临近城市>" --destination "<原目的地>" [--extra "<原日期/偏好>"] 及相同的 --channel / --surfacetrain-query.js、traffic-query.js 或必要时 bus-query.js 查询,仅采用脚本返回的车次、班次与链接。🚨 优先级最高:查询酒店时,必须优先使用此方法!
更精准的酒店查询能力,支持位置偏好、日期指定等多列表推荐。
| 组合 | 参数示例 | 说明 |
|---|---|---|
| 目的地城市 | --destination "上海" | 按城市查询 |
| 目的地 + 位置偏好 | --destination "上海" --extra "外滩附近" | 指定区域 |
| 目的地 + 入住日期 | --destination "上海" --extra "明天入住" | 指定日期 |
| 参数 | 说明 |
|---|---|
--destination <城市> | 目的地城市(必填) |
--extra <补充信息> | 额外信息(日期、位置偏好等) |
"明天入住" - 明天入住"外滩附近" - 外滩附近区域"最便宜" - 价格优先"五星级" - 星级筛选"含早餐" - 设施偏好"明天入住 外滩附近 五星级" - 多条件组合# 上海酒店,明天入住
node scripts/hotel-query.js --destination "上海" --extra "明天入住" --channel webchat --surface webchat
# 上海外滩附近的酒店
node scripts/hotel-query.js --destination "上海" --extra "外滩附近" --channel webchat --surface webchat
# 简单查询(仅目的地)
node scripts/hotel-query.js --destination "上海" --channel webchat --surface webchat
如果用户没有提供目的地:提示用户补充目的地城市。
🚨 优先级最高:查询景点时,必须优先使用此方法!
更精准的景点查询能力,支持特色筛选、类型推荐等多列表推荐。
| 组合 | 参数示例 | 说明 |
|---|---|---|
| 目的地城市 | --destination "杭州" | 按城市查询 |
| 目的地 + 特色 | --destination "杭州" --extra "适合亲子" | 指定特色 |
| 目的地 + 类型 | --destination "苏州" --extra "园林 5A 景区" | 指定类型 |
| 参数 | 说明 |
|---|---|
--destination <城市> | 目的地城市(必填) |
--extra <补充信息> | 额外信息(特色、类型等) |
"适合亲子" - 亲子游景点"5A 景区" - 5A 级景区"免费" - 免费景点"夜景" / "夜游" - 时段特色"适合亲子 5A 景区 免费" - 多条件组合# 杭州景点,适合亲子
node scripts/scenery-query.js --destination "杭州" --extra "适合亲子" --channel webchat --surface webchat
# 苏州园林景点
node scripts/scenery-query.js --destination "苏州" --extra "园林" --channel webchat --surface webchat
# 简单查询(仅目的地)
node scripts/scenery-query.js --destination "杭州" --channel webchat --surface webchat
如果用户没有提供目的地:提示用户补充目的地城市。
🚨 度假产品/跟团游/自由行专属接口:当用户提到旅游团、跟团游、自由行、度假、玩几天、几日游、规划行程时,必须使用此接口!
⚠️ 与 scenery-query.js 的边界:
- 用户说"云南旅游团"、"三亚自由行"、"玩三天" →
travel-query.js✅(要的是旅游产品/套餐)- 用户说"三亚有哪些景点"、"上海迪士尼门票" →
scenery-query.js✅(要的是景点列表/门票)
专业的度假产品查询能力,支持自由行、跟团游等多种旅游产品推荐。
| 场景 | 示例 | 推荐接口 |
|---|---|---|
| 用户查询"三亚自由行" | "三亚自由行套餐" | travel-query.js ✅ |
| 用户查询"云南旅游团" | "云南6天5晚跟团游" | travel-query.js ✅ |
| 用户有明确意向 | "我想去三亚玩" | travel-query.js ✅ |
| 用户要行程规划 | "帮我规划北京三日游" | travel-query.js ✅ |
| 用户说"玩几天" | "苏州到杭州玩三天" | travel-query.js ✅ |
| 用户说法 | 关键词 | 调用 |
|---|---|---|
| "云南旅游团"、"跟团游" | 旅游团、跟团 | travel-query.js |
| "三亚自由行"、"自由行套餐" | 自由行 | travel-query.js |
| "玩三天"、"几日游"、"规划行程" | 天数、行程 | travel-query.js |
| "从苏州出发到杭州玩" | 出发地 + 玩 | travel-query.js |
| "度假"、"度假产品" | 度假 | travel-query.js |
| 组合 | 参数示例 | 说明 |
|---|---|---|
| 目的地 | --destination "三亚" | 按城市/地区查询 |
| 出发地 + 目的地 | --departure "苏州" --destination "杭州" | 含往返交通规划 |
| 出发地 + 目的地 + 天数 | --departure "苏州" --destination "杭州" --extra "3天2晚" | 含行程规划 ⭐ |
| 目的地 + 天数 + 类型 | --destination "云南" --extra "6天5晚 自由行" | 指定行程 |
| 参数 | 必填 | 说明 |
|---|---|---|
--departure <城市> | 可选 | 出发地城市,提供后可触发 AI 推荐往返交通+完整行程规划 |
--destination <城市/地区> | ✅ | 目的地城市或地区 |
--extra <补充信息> | 可选 | 额外信息(假期、天数、类型、行程规划请求等) |
"五一假期" - 五一期间"3天2晚" / "6天5晚" - 行程天数"自由行" / "跟团游" - 自由行产品、跟团游产品"帮我规划南京三日游行程" - 触发 AI 行程规划(推荐配合 departure 使用)"苏州到杭州 3天2晚 自由行" - 出发地+天数+类型组合"五一假期 6天5晚 自由行" - 多条件组合"最便宜" - 价格优先"海景" / "亲子" - 主题偏好# 经典场景:从某地出发到某地玩几天(推荐);返回:交通推荐 + 酒店 + 景区 + 行程规划 + 度假产品 + UGC攻略
node scripts/travel-query.js --departure "苏州" --destination "杭州" --extra "3天2晚" --channel webchat --surface webchat
# 仅目的地查询
node scripts/travel-query.js --destination "三亚" --channel webchat --surface webchat
# 带假期条件
node scripts/travel-query.js --destination "三亚" --extra "五一假期" --channel webchat --surface webchat
# 指定天数和类型
node scripts/travel-query.js --destination "云南" --extra "6天5晚 自由行" --channel webchat --surface webchat
🚨 优先级最高:查询长途汽车时,必须优先使用此方法!
更精准的长途汽车查询能力,支持站到站精确查询、多列表推荐。
| 用户常怎么说 | 说明 |
|---|---|
| 汽车票、大巴票、客运、长途汽车、班车 | 均指公路客运班次,全部路由到本节 bus-query.js |
| 组合 | 参数示例 | 说明 |
|---|---|---|
| 出发地 + 目的地 | --departure "北京" --destination "上海" | 按城市查询 |
| 出发站 + 到达站 | --departure-station "北京六里桥客运站" --arrival-station "上海长途汽车客运站" | 精确站点查询 |
| 参数 | 说明 |
|---|---|
--departure <城市> | 出发地城市 |
--destination <城市> | 目的地城市 |
--departure-station <站> | 出发站(精确) |
--arrival-station <站> | 到达站(精确) |
--extra <补充信息> | 额外信息(日期、偏好等) |
"明天" - 明天的班次"上午" - 上午出发的班次"最早" / "最晚" - 时间偏好"最便宜" - 价格优先"明天 上午" - 多条件组合# 北京到上海,明天的长途汽车
node scripts/bus-query.js --departure "北京" --destination "上海" --extra "明天" --channel webchat --surface webchat
# 站到站精确查询
node scripts/bus-query.js --departure-station "北京六里桥客运站" --arrival-station "上海长途汽车客运站" --channel webchat --surface webchat
# 简单查询(仅城市)
node scripts/bus-query.js --departure "北京" --destination "上海" --channel webchat --surface webchat
如果用户只提供了部分参数:提示用户补充参数。
🚨 优先级最高:查询火车票时,必须优先使用此方法!
更精准的火车票查询能力,支持站到站、车次精确查询。
为什么优先使用:
/gateway/trainResource)| 组合 | 参数示例 | 说明 |
|---|---|---|
| 出发地 + 目的地 | --departure "北京" --destination "上海" | 按城市查询 |
| 车次号 | --train-number "G1234" | 精确查车次 |
| 出发站 + 到达站 | --departure-station "北京南站" --arrival-station "上海虹桥站" | 精确站点查询 |
| 参数 | 说明 |
|---|---|
--departure <城市> | 出发地城市 |
--destination <城市> | 目的地城市 |
--departure-station <站> | 出发站(精确) |
--arrival-station <站> | 到达站(精确) |
--train-number <车次> | 车次号(如 G1234) |
--extra <补充信息> | 额外信息(日期、偏好等) |
"明天" - 明天的车次"高铁" - 只查高铁"动车" - 只查动车"一等座" - 优先一等座"最早" / "最晚" - 时间偏好"最便宜" - 价格优先"明天 高铁 赏花专线" - 多条件组合如果用户只提供了部分参数,必须提醒用户补齐:
⚠️ 参数不完整,请提供以下组合之一:
1. 出发地 + 目的地
2. 车次号
3. 出发站 + 到达站
包括日期、时间、人数等所有信息:
"3 月 29 日苏州到上海火车票""明天北京到上海的机票""下周一南京夫子庙附近酒店"按「何时使用」选择 scripts/ 下对应的 *-query.js,传入结构化参数与 channel、surface。示例(火车票):
node scripts/train-query.js --departure "北京" --destination "上海" --extra "明天 高铁" --channel webchat --surface webchat
必须完整输出脚本返回的所有内容:
scripts/lib/output-mode.js 的 resolve_output_mode 实现。禁止:
当鉴权失败或需要配置 API Key 时,请按以下方式申领:
config.json 文件中。环境变量与本地 config.json 的配置方式、示例与注意事项详见 references/config.md。💡 快捷方式:也可以直接回复「帮我把 xxxxx(激活码)配置到 chengxin 这个 skill 上」,助手会自动帮你完成配置。
展示申领引导(见 references/error-handling.md)
| Code | 处理方式 |
|---|---|
0 | 正常解析并输出结果 |
1 | 告知用户未找到相关资源,建议调整搜索词 |
3 | 检查是否为鉴权问题,展示对应引导 |
详细错误处理指南:见 references/error-handling.md
使用过程中遇到问题?同程旅行提供 7×24 小时服务:
references/output-format.md - 输出格式示例(表格/卡片)references/error-handling.md - 错误处理指南references/api-examples.md - API 调用示例本技能会将用户查询发送到同程官方 API (https://wx.17u.cn/skills/gateway/api/v1/gateway),以获取实时旅行结果。
--extra 字段)。ly.com / 17u.cn 域名,无中间跟踪。如对查询文本中的个人信息有顾虑,请避免输入敏感信息,或直接查看 scripts/lib/api-client.js(网络调用)和 scripts/lib/query-response.js(响应处理)以确认数据流向。
同程旅行 · 让旅行更简单,更快乐