RollingGo 酒店搜索与预订 Skill
安装
如果本地环境未安装 rgh 命令,可以通过以下三种方式之一进行安装:
方式一:通过 npm 安装(推荐) 如果环境中有 Node.js 和 npm,请执行:
npm install -g @rollinggo/hotel@latest
方式二:通过 Python 自动脚本安装(免 Node.js 环境)
如果环境中有 Python,可以直接在 Skill 目录下运行我们提供的自动化安装脚本,它将自动检测您的操作系统并下载最新版的 rgh 独立二进制程序到本地 bin 文件夹:
python scripts/install.py
方式三:手动下载独立可执行文件(免 Node/Python 环境)
如果环境中既没有 npm 也没有 Python,请从以下 Release 页面下载对应的单文件程序(Windows: rgh-win.exe / rgh-windows.exe, Mac: rgh-macos, Linux: rgh-linux):
https://github.com/RollingGo-AI/oauth-hotel-cli/releases/latest
下载后将其重命名为 rgh(Windows下为 rgh.exe),赋予执行权限,并放入系统环境变量 PATH 或技能目录的 bin 文件夹中。
⚠️ 自动升级拦截原则:
CLI 工具内置了版本检测。当你在执行任何 rgh 命令时,如果控制台输出中出现 📦 有新版本可用! 或 运行以下命令更新 的提示,你必须立即暂停当前操作,先使用上述三种方式之一将工具升级到最新版,升级成功后再重新执行刚才中断的命令。 这样可避免由于服务端接口过期而导致的预订失败。
⚠️ 输出规范:
- 严禁向用户展示任何技术细节,包括但不限于:工具名(如
search-hotels、hotel-detail)、JSON 字段名(如hotelId、ratePlanId、referenceNo)、命令行内容、技术参数。- 只展示用户关心的信息:酒店名称、星级、价格、距离、核心设施、标签、预订链接。
- 结果必须格式化展示,每家酒店独占一个卡片,关键信息换行分隔,禁止堆砌在一行。
- 价格说明:搜索结果中的价格为参考展示价,实际下单价以价格确认为准,展示时注明"参考价"。
- 登录授权:用户通过 Agent 对话时看不到终端输出,执行
rgh login后必须从输出中提取授权链接并回复给用户,不要展示二维码文本。
When to Use
用户涉及酒店住宿相关的任何意图时均应触发本 Skill,包括但不限于以下场景:
搜索与发现:
- 按地点找酒店:"帮我找北京三里屯附近酒店"、"三亚有什么好酒店"、"西湖旁边住宿推荐"
- 按条件筛选:"五星酒店"、"带泳池的酒店"、"含早餐的住宿"、"亲子酒店"、"宠物友好酒店"
- 按预算筛选:"500块以内的酒店"、"经济实惠的住宿"、"豪华酒店推荐"
- 按品牌筛选:"希尔顿"、"万豪"、"亚朵"、"全季"
查询与对比:
- 查房价:"杭州酒店多少钱一晚"、"这个酒店什么价格"
- 看房型:"有什么房型"、"大床房有没有"、"家庭房推荐"
- 比较住宿:"帮我对比一下这两家酒店"、"哪个更划算"
- 了解设施:"有没有泳池"、"离地铁站多远"、"停车方便吗"
预订与订单:
- 预订酒店:"帮我订这家酒店"、"我要下单"、"预订一间房"
- 查询订单:"我的订单"、"之前订的酒店"、"订单状态"
触发词覆盖: 找酒店、订酒店、搜酒店、酒店推荐、酒店查询、附近酒店、五星酒店、民宿、度假村、查房价、看房型、入住、住哪、住宿、出差住宿、旅游住宿、亲子酒店、带泳池的酒店、含早餐酒店、商务酒店、情侣酒店、温泉酒店、海景房、江景房。
When NOT to Use
- 用户询问机票、火车票、租车、景点门票等非住宿类旅行需求
- 用户只是闲聊旅游目的地,没有明确住宿意图
- 用户已明确表示"不用订"、"只是问问"
安全门控
⚠️ 酒店预订属于真实消费操作:
- 两步确认:展示房型和价格后,须等用户明确选择方可锁价与下单。
- 信息完整性:下单前须确认入住人姓名拼音与邮箱。
- 锁价时效:锁定的价格凭证(
referenceNo)有效期约 15-30 分钟,超时须重新锁价。
工作流程与动态 CLI 探知
💡 动态命令与参数自探知法则 (Self-Discovery Rule):
- 代理调用:所有 CLI 命令统一通过代理脚本调用:
node scripts/rgh.js <子命令>(无 Node 环境时使用python scripts/rgh.py <子命令>),以确保自动完成环境解析与CLIENT_ID(rollinggoskill) 的挂载。- 动态参数探知:执行任何子命令前,先运行
node scripts/rgh.js <子命令> --help获取实时命令行参数帮助,并按最新的--help动态拼装命令参数!
业务步骤指南
Step 0:登录授权检查
- 执行
node scripts/rgh.js status(也可使用whoami)检查登录状态。 - 若未登录,执行
node scripts/rgh.js login(⚠️ 必须以异步/后台模式运行,如WaitMsBeforeAsync=2000)。从输出提取授权链接(https://rollinggo.store/s/xxx),回复给用户完成授权。
Step 1:信息收集
- 确认目的地(必须)、入住日期(默认明天)、入住晚数(默认 1 晚)、人数(默认 2 人)。
Step 2:获取标签字典(按需)
- 遇特色需求(如泳池、早餐、亲子、宠物等),先执行
node scripts/rgh.js hotel-tags精确匹配标签名称。
Step 3:搜索酒店
- 先运行
node scripts/rgh.js search-hotels --help查看最新筛选参数,根据用户需求拼装命令。 - placeType 选择规则(必须精确匹配):
城市、机场、景点、火车站、地铁站、酒店、区/县、详细地址。
搜索结果展示模板(每家酒店一个卡片):
(【极其重要】:你必须使用标准的 Markdown 图片语法  来渲染 imageUrl,且必须将图片展示在模板末尾。若 imageUrl 中包含未编码的空格,需手动将空格替换为 %20,或使用尖括号将其包裹如 ,否则会导致宿主平台无法渲染图片!绝对禁止使用 HTML <img> 标签,绝对禁止使用纯文本 URL!)
🏨 {酒店名称}
⭐ {星级}星 *(仅当返回了 distanceInMeters 字段时展示:📍 距{搜索地点}{距离}米)*
💰 参考价 ¥{最低价}/晚
🏷️ {标签1} · {标签2} · {标签3}

返回 3-5 家酒店后,询问用户:"想了解哪家的详细房型和价格?"
Step 4:查询房型与实时价格
- 先运行
node scripts/rgh.js hotel-detail --help查看参数,传入选中的hotelId查询实时房态报价。
房型展示模板(每个房型一条):
🛏️ {房型中文名}({床型描述})
💰 总价 ¥{totalPrice}(¥{均价}/晚)
📋 取消政策:{取消政策描述}
展示 3-5 个推荐房型后,引导用户回复:“请告诉我您选择的房型名称,我来为您锁定价格并办理下单。”
Step 5:价格确认与下单(安全门控)
- 运行
node scripts/rgh.js price-confirm --help查看参数,锁定价格并获取凭证referenceNo。 - 确认联系人拼音姓名与邮箱后,运行
node scripts/rgh.js book --help查看参数,提交订单并提取支付链接。
待支付订单展示模板: (【极其重要】:绝不能臆造或编造支付方式(如“自动识别环境,支持支付宝或微信”)。必须严格按照以下模板输出,绝不允许自行添加任何关于支付环境或支付方式的说明!)
📝 订单已生成,等待支付!
确认号:**{orderNo}**
酒店:{酒店名}
房型:{房型名}
入住:{入住日期} | 离店:{离店日期}
总价:¥{价格}
📋 取消政策:{取消政策描述}
💳 请在30分钟内完成支付:{支付链接}
Step 6:查询订单与详情
- 运行
node scripts/rgh.js orders --help或node scripts/rgh.js order-detail --help查询用户历史订单或单条订单详情。
搜索结果不理想时的语义化降级策略
若搜索 0 结果,按以下顺序静默放宽条件重试:
- 移除星级范围限制
- 扩大搜索半径/距离参数
- 将硬约束标签(Required Tag)降级为软偏好标签(Preferred Tag)
- 增大返回数量(Size)
- 仅保留目的地与入住日期
关键交互规则
- 屏蔽技术细节:严禁向用户暴露
hotelId、ratePlanId、referenceNo、JSON 响应或命令行。 - 真实价格说明:搜索展示价注明“参考价”,最终金额以价格确认锁价为准。
- 支付链接真实可用:生成的订单支付链接可直接提供给用户点击完成支付。
- 多家对比:用户要对比时,可同时展示多家的卡片,突出差异点(价格/距离/设施)。
详细参考文档
- references/cli-params.md — CLI 命令完整参数规范