Back to skills
extension
Category: Development & EngineeringNo API key required

全球酒店实时查询与预订-RollingGo新版

RollingGo 2.0版本酒店预订Skill. 只需对 Agent 说一句「我要去 XX 玩,帮我订酒店」 RollingGo酒店预订Skill就能帮你全程搞定: 🔍 按需求智能筛选,省心帮你挑酒店 📋 实时查房型、报价和退改规则,明明白白不踩坑 🛏️ 心仪房型提前锁定,不用愁晚订没房 🔐 无需切换其他平台,Agent内一键安全登录,隐私信息有保障 💳 说句“帮我下单”就跳转支付宝直接付 📑 订单状态随时能查,全程都省心 💴 还能设置24 小时自动盯价,降价马上提醒 全球酒店实时推荐及闭环预订,不用自己蹲点比价,不用纠结早订亏、晚订无,订酒店的烦心事,一句话帮你全打理妥当。

RollingGo 酒店搜索与预订 Skill

安装

如果本地环境未安装 rgh 命令,必须通过以下两种方式之一进行安装:

方式一:通过 npm 安装(推荐) 如果环境中有 Node.js 和 npm,请执行:

npm install -g @rollinggo/hotel@latest

方式二:下载独立可执行文件(免 Node 环境) 如果环境中没有 npm,请判断当前操作系统,并通过 curl 等工具从以下 Release 页面下载对应的单文件程序(Windows: rgh-win.exe, Mac: rgh-macos, Linux: rgh-linux): https://github.com/RollingGo-AI/oauth-hotel-cli/releases/latest

下载后将其重命名为 rgh 并赋予执行权限。

⚠️ 自动升级拦截原则: CLI 工具内置了版本检测。当你在执行任何 rgh 命令时,如果控制台输出中出现 📦 有新版本可用!运行以下命令更新 的提示,你必须立即暂停当前操作,先使用上述两种方式之一将工具升级到最新版,升级成功后再重新执行刚才中断的命令。 这样可避免由于服务端接口过期而导致的预订失败。


⚠️ 输出规范

  1. 严禁向用户展示任何技术细节,包括但不限于:工具名(如 search-hotelshotel-detail)、JSON 字段名(如 hotelIdratePlanIdreferenceNo)、命令行内容、技术参数。
  2. 只展示用户关心的信息:酒店名称、星级、价格、距离、核心设施、标签、预订链接。
  3. 结果必须格式化展示,每家酒店独占一个卡片,关键信息换行分隔,禁止堆砌在一行。
  4. 价格说明:搜索结果中的价格为参考展示价,实际下单价以价格确认为准,展示时注明"参考价"。
  5. 登录授权:用户通过 Agent 对话时看不到终端输出,执行 rgh login 后必须从输出中提取授权链接并回复给用户,不要展示二维码文本。

When to Use

用户涉及酒店住宿相关的任何意图时均应触发本 Skill,包括但不限于以下场景:

搜索与发现

  • 按地点找酒店:"帮我找北京三里屯附近酒店"、"三亚有什么好酒店"、"西湖旁边住宿推荐"
  • 按条件筛选:"五星酒店"、"带泳池的酒店"、"含早餐的住宿"、"亲子酒店"、"宠物友好酒店"
  • 按预算筛选:"500块以内的酒店"、"经济实惠的住宿"、"豪华酒店推荐"
  • 按品牌筛选:"希尔顿"、"万豪"、"亚朵"、"全季"

查询与对比

  • 查房价:"杭州酒店多少钱一晚"、"这个酒店什么价格"
  • 看房型:"有什么房型"、"大床房有没有"、"家庭房推荐"
  • 比较住宿:"帮我对比一下这两家酒店"、"哪个更划算"
  • 了解设施:"有没有泳池"、"离地铁站多远"、"停车方便吗"

预订与订单

  • 预订酒店:"帮我订这家酒店"、"我要下单"、"预订一间房"
  • 查询订单:"我的订单"、"之前订的酒店"、"订单状态"

触发词覆盖: 找酒店、订酒店、搜酒店、酒店推荐、酒店查询、附近酒店、五星酒店、民宿、度假村、查房价、看房型、入住、住哪、住宿、出差住宿、旅游住宿、亲子酒店、带泳池的酒店、含早餐酒店、商务酒店、情侣酒店、温泉酒店、海景房、江景房。

When NOT to Use

  • 用户询问机票、火车票、租车、景点门票等非住宿类旅行需求
  • 用户只是闲聊旅游目的地,没有明确住宿意图
  • 用户已明确表示"不用订"、"只是问问"

安全门控

⚠️ 酒店预订是真实消费操作

  1. 强制两步确认:先展示房型和价格,等用户明确选择房型并确认后才进行价格锁定和下单。
  2. 信息完整性:下单前必须确认入住人姓名、邮箱(电话号码将通过 OAuth 默认获取,无需让用户填写参数)。
  3. 价格确认时效referenceNo 有效期约 15-30 分钟,过期需重新调用价格确认。

工作流程

Step 0:登录授权检查(首次使用或 Token 失效时执行)

  1. 执行 rgh whoami 检查登录状态:

    • 输出 ✅ 已登录 → 直接进入 Step 1
    • 输出 ❌ 未登录 → 执行 rgh login,进入授权流程
  2. 授权流程(⚠️ 重要:用户通过 Agent 对话时看不到终端,必须将授权信息回复给用户):

    执行 rgh login 后,终端会输出二维码和授权链接。Agent 必须:

    • 从 CLI 输出中提取授权链接(https://rollinggo.store/s/xxx 格式)
    • 将链接以可点击的形式回复给用户
    • 告知用户:"请点击链接完成授权,授权成功后请告诉我"

    回复模板

    请点击以下链接完成授权:
    [点击授权](https://rollinggo.store/s/xxx)
    
    授权成功后请告诉我,我将继续为您预订。
    

    如果平台支持图片,也可以生成二维码图片发送,方便手机用户扫码。

    用户确认授权成功后,CLI 会自动获取 Token,进入 Step 1。

Step 1:信息收集(静默判断,不打断用户)

从对话中提取以下信息,能推断的直接用,缺关键信息再追问:

| 信息 | 是否必须 | 默认值 | |------|---------|--------| | 目的地(城市/景点/地址) | ✅ 必须 | 无,需追问 | | 入住日期 | 建议有 | 明天 | | 入住晚数 | 建议有 | 1 晚 | | 成人数 | 可选 | 2 人 | | 星级偏好 | 可选 | 不限 | | 预算上限 | 可选 | 不限 | | 特殊需求(标签) | 可选 | 无 |

目的地是唯一必须确认的信息。其他信息缺失时使用默认值,不要逐一追问。

Step 2:获取标签字典(按需执行)

用户提到特定设施或特色(如"带泳池"、"含早餐"、"亲子"、"宠物")时,先执行:

rgh hotel-tags

从返回结果中找到精确的标签名称,再用于搜索。常见对应关系:

| 用户说法 | 标签类型 | 常见标签名 | |---------|---------|-----------| | 带泳池、有游泳池 | preferredTags | 户外泳池 / 室内恒温泳池 | | 含早餐、有早餐 | preferredTags | 含早餐 | | 亲子、带孩子 | preferredTags | 亲子友好 | | 宠物友好 | preferredTags | 宠物友好 | | 免费停车 | preferredTags | 免费停车场 | | 不要某类型 | excludedTags | 对应标签 | | 必须有某设施 | requiredTags | 对应标签(硬过滤) |

Step 3:搜索酒店

调用 rgh search-hotels,将用户需求转化为命令行参数:

rgh search-hotels \
  --origin-query "<用户原始表达>" \
  --place "<地点名称>" \
  --place-type "<类型>" \
  [--check-in-date YYYY-MM-DD] [--stay-nights N] \
  [--star-ratings min,max] \
  [--preferred-tag "标签名"] [--required-tag "标签名"] \
  [--max-price-per-night N] \
  --size 5

placeType 选择规则(必须精确匹配):

| 用户描述 | --place-type | |---------|-------------| | 城市名(北京、三亚、曼谷) | 城市 | | 机场(首都机场、浦东机场) | 机场 | | 景点/地标(外滩、西湖、迪士尼) | 景点 | | 火车站(虹桥站、北京南站) | 火车站 | | 地铁站 | 地铁站 | | 酒店名称 | 酒店 | | 区/县/商圈(亚龙湾、朝阳区) | 区/县 | | 具体街道地址 | 详细地址 |

搜索结果展示模板(每家酒店一个卡片):

🏨 {酒店名称}
⭐ {星级}星  📍 距{搜索地点}{距离}米
💰 参考价 ¥{最低价}/晚
🏷️ {标签1} · {标签2} · {标签3}
🔗 [查看详情 & 预订]({bookingUrl})

返回 3-5 家酒店后,询问用户:"想了解哪家的详细房型和价格?"

Step 4:查询房型与实时价格(用户选定酒店后)

从搜索结果中提取 hotelId,调用:

rgh hotel-detail \
  --hotel-id <hotelId> \
  --check-in-date <入住日期> \
  --check-out-date <离店日期> \
  --adult-count <成人数> \
  --room-count <房间数>

房型展示模板(每个房型一条):

🛏️ {房型中文名}({床型描述})
💰 总价 ¥{totalPrice}(¥{均价}/晚)  剩余 {inventoryCount} 间
📋 取消政策:{取消政策描述}

展示 3-5 个推荐房型后,提供预订链接: "如需预订,可点击 前往预订页 完成下单。"

Step 5:价格确认与下单(用户选定房型后)

  1. 调用 rgh price-confirm 锁定价格(获取 referenceNo)。注意参数是 --rooms--adults
rgh price-confirm \
  --hotel-id <hotelId> \
  --rate-plan-id <ratePlanId> \
  --rooms <房间数> \
  --check-in-date <入住日期> \
  --check-out-date <离店日期> \
  --adults <成人数>
  1. 收集联系人信息(姓名拼音、邮箱)后,调用 rgh book 创建订单:
rgh book \
  --reference-no "<上一步获取的referenceNo>" \
  --first-name "<拼音/英文名>" \
  --last-name "<拼音/英文姓>" \
  --email "<邮箱>"
  1. 从结果中提取 alipayUrl 或其他支付链接返回给用户。

下单成功展示模板

🎉 预订成功!
确认号:**{orderNo}**
酒店:{酒店名}
房型:{房型名}
入住:{入住日期} | 离店:{离店日期}
总价:¥{价格}
💳 请在30分钟内完成支付:{支付链接}

Step 6:查询订单(用户询问时)

rgh orders

展示订单列表时,请清晰提取出:酒店名、入离日期、订单状态、总价,如果是待支付状态,附上继续支付的链接。


结果不理想时的降级策略

按以下顺序放宽条件重试:

  1. 去掉 --star-ratings 限制
  2. 增大搜索范围:加 --distance-in-meter 10000
  3. --required-tag 改为 --preferred-tag
  4. 增加返回数量:--size 10
  5. 去掉所有标签限制,只保留地点和日期

关键规则

  • 地点和类型要匹配:"上海外滩"配 景点,不是 城市;"北京"配 城市
  • 价格是参考价:搜索结果的价格不是实时锁定价,展示时注明"参考价"
  • bookingUrl 直接可用:返回的预订链接可直接给用户点击跳转
  • 不要暴露 hotelId:内部 ID 不展示给用户,只用于内部调用
  • 多家对比:用户要对比时,可同时展示多家的卡片,突出差异点(价格/距离/设施)

详细参考文档