关于 compare-hotels
面向 Agent 的住宿搜索编排技能,将酒店现金价、高端预订门户和度假租赁纳入统一比较。它协调搜索工具并评估项目权益,不是独立脚本。
主要功能
- 01协调酒店与租赁搜索
- 02比较现金价和门户价格
- 03纳入 Airbnb 与 VRBO 选项
- 04核查高端项目资格
- 05按列明权益调整价格
- 06报告来源错误与缺失
适用场景
- 01比较目的地的酒店与租赁
- 02评估 Chase 和 Amex 酒店门户选项
- 03对照高端权益与直接预订价
MCP 相关
该技能可调用 airbnb_search MCP 工具查询度假租赁和价格。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ borski/ travel-hacking-toolkit --skill compare-hotels安装后在 Claude Code 中输入/compare-hotels确认已加载。
详细介绍
**配套参考技能。**加载以下技能以获取更深入的背景信息:
hotel-chains— 品牌酒店与忠诚度计划的对应关系premium-hotels— FHR / THC / Chase Edit 额度及叠加策略points-valuations— 酒店计划每积分美分价值(CPP)的下限/上限(Hyatt 为 1.4-1.7cpp,Hilton 下限为 0.4cpp 等)fallback-and-resilience— 酒店来源失效时的恢复方案
比较酒店
搜索所有可用来源,查找住宿并提供统一的比较结果。将门户高端计划(Chase Edit、Amex FHR/THC)、现金价格和 Airbnb 备选方案整合到一个视图中。
**这是一项编排技能。**它会告诉 Agent 要运行哪些工具以及如何组合结果。没有独立脚本。
适用场景
- “帮我找 8 月 11 日至 15 日在巴黎的酒店”
- “这家酒店应该通过 Chase 还是 Amex 预订?”
- “比较奥斯陆的酒店和 Airbnb”
- 用户希望全面了解住宿选择的任何搜索需求
来源
尽可能并行运行以下来源。绝不静默失败。
门户高端计划(需要 Docker)
| 来源 | 技能 | 速度 | 可查找内容 |
|---|---|---|---|
| Chase Travel | chase-travel | ~45s | Edit 酒店(100 美元额度、早餐、升级)、Points Boost、普通酒店 |
| Amex Travel | amex-travel | ~45s | FHR(100 美元以上额度、早餐、升级、延迟退房)、THC(入住 2 晚及以上可享 100 美元额度) |
现金价格和元搜索
| 来源 | 技能/工具 | 速度 | 可查找内容 |
|---|---|---|---|
| SerpAPI | serpapi | ~3s | Google Hotels 现金价格和直接预订链接。 |
| Trivago | 网络搜索 | ~5s | 对多个 OTA 进行元搜索。使用 tavily/exa 搜索 trivago.com。查找最便宜的 OTA 价格。 |
| LiteAPI | 网络搜索 | ~5s | 提供协议价格的酒店 API 聚合器。查看 liteapi.travel。可能找到低于公开 OTA 价格的价格。 |
| RapidAPI | rapidapi | ~3s | Booking.com 房源和价格。可选,仅在用户特别询问 Booking.com 时使用。 |
质量和评分
| 来源 | 技能/工具 | 速度 | 可查找内容 |
|---|---|---|---|
| TripAdvisor | tripadvisor | ~2s | 评分、排名、分项评分(位置/服务/清洁度)、评论、照片、设施、奖项。每月 5K 次调用。 |
**SerpAPI、Trivago 和 LiteAPI 均为默认来源。**始终搜索这三个来源。只有在用户特别询问 Booking.com 时,才添加 RapidAPI。使用 TripAdvisor 获取质量数据(评分、排名、评论),补充其他来源提供的价格信息。
度假租赁
| 来源 | 技能/工具 | 速度 | 可查找内容 |
|---|---|---|---|
| Airbnb | airbnb_search MCP 工具 | ~5s | 整套房源、独立房间及总价 |
| VRBO | vrbo 技能(Patchright) | ~20s | 整套住宅、公寓、木屋。由专业机构管理的房源通常不会出现在 Airbnb 上。使用有头模式/Docker — 受 Akamai 保护。 |
高端酒店数据库(本地,立即可用)
| 来源 | 数据文件 | 可查找内容 |
|---|---|---|
| FHR 房源 | data/fhr-properties.json | 预订前检查酒店是否属于 FHR |
| THC 房源 | data/thc-properties.json | 检查酒店是否属于 THC |
| Chase Edit 房源 | data/chase-edit-properties.json | 检查酒店是否加入 Chase 的 Edit 计划 |
工作流
步骤 1:搜索所有来源
PARALLEL GROUP 1 (fast — HTTP/API/MCP calls, no browser, ~3-5s):
- SerpAPI: Google Hotels cash prices
- Trivago: metasearch across OTAs (web search)
- LiteAPI: negotiated hotel rates (web search)
- Airbnb: vacation rentals in the area (npx MCP — lightweight scrape, not a browser)
- Local data: check premium-hotels databases for the city
PARALLEL GROUP 2 (slow — headed browser via Patchright/Xvfb in Docker, ~20-45s):
- VRBO: whole homes / condos / cabins — vrbo skill (~20s, headed/Docker, behind Akamai; run for whole-home comparisons alongside Airbnb)
- Chase Travel: --hotel --dest "City" --checkin YYYY-MM-DD --checkout YYYY-MM-DD --json
- Amex Travel: --hotel --dest "City" --checkin YYYY-MM-DD --checkout YYYY-MM-DD --json
对每个来源,记录:
- 来源名称
- 状态:“ok” | “error: {reason}” | “skipped: {reason}”
- 结果数量
- 数据
步骤 2:识别叠加机会
将搜索结果与 data/fhr-properties.json、data/thc-properties.json 和 data/chase-edit-properties.json 交叉核对:
For each hotel in results:
- Is it in FHR? → Tag [FHR]
- Is it in THC? → Tag [THC]
- Is it in Chase Edit? → Tag [EDIT]
- Is it in multiple? → Tag [FHR+EDIT] and note stacking potential
叠加是指:通过一个门户预订,单独使用另一张卡付款。例如,通过 Amex 预订 FHR(获得早餐、额度和升级),然后在该酒店的其他消费上使用 CSR 的 300 美元旅行额度。
第 3 步:计算积分价值
Chase:
- CSR/CSP 的 Chase 门户定价采用动态 Points Boost。每次预订都会显示特定的积分价格;CSR 的有效 cpp 通常在 1.5-2.0 cpp 之间,但并非每次预订都能保证达到这一底线。请获取门户中的实际报价。
- Points Boost 优惠是动态的,会因路线、日期和库存而异。
- 门户报价就是实际的 UR 成本。不要除以 1.5——所列积分已经反映报价时的动态 Boost 费率。
Amex:
- 酒店门户定价会变动(航班并非总是按 1 cpp 计价)。
- 显示的积分价格就是实际的 MR 成本。根据现金与积分的比例计算 CPP。
- FHR 礼遇($100+ 抵用金、早餐)能大幅抵扣价格。
计算扣除礼遇后的价格:
FHR adjusted = total_price - $100 credit - (breakfast_value × nights)
breakfast_value ≈ $30-50/person × 2 people = $60-100/night
THC adjusted = total_price - $100 credit (2+ night stays only)
Edit adjusted = total_price - $100 credit - (breakfast_value × nights)
第 4 步:呈现统一表格
始终使用 Markdown 表格。 酒店按扣除礼遇后的总价排序。
示例:巴黎,8 月 11-15 日(4 晚,2 位客人)
| # | 酒店 | 计划 | 星级 | 每晚 | 总价 | 积分 | 礼遇 | 调整后总价 |
|---|---|---|---|---|---|---|---|---|
| 1 | SO/ Paris | EDIT+BOOST | 5★ | $639 | $2,555 | 127,756 UR | 早餐、$100 抵用金、升级 | ~$1,855 |
| 2 | Hotel Balzac | EDIT+BOOST | 5★ | $614 | $2,455 | 122,769 UR | 早餐、$100 抵用金、升级 | ~$1,755 |
| 3 | Le Bristol | FHR | 5★ | $1,849 | $8,284 | 不适用 | $100 抵用金、早餐、升级、下午 4 点退房 | ~$6,884 |
| 4 | Marriott Champs-Élysées | — | 4★ | $289 | $1,156 | — | — | $1,156 |
| 5 | Airbnb:Marais 2BR | — | — | $195 | $780 | — | 厨房、洗衣机 | $780 |
已检查的来源:
- ✅ Chase Travel:21 家酒店(15 家 Edit,6 家标准酒店)
- ✅ Amex Travel:17 家酒店(13 家 FHR,4 家 THC)
- ✅ SerpAPI:25 家酒店
- ✅ Trivago:30 家酒店(每家酒店最便宜的 OTA)
- ✅ LiteAPI:22 家酒店(协商价)
- ✅ Airbnb:18 个房源
- ✅ 高端数据库:巴黎有 8 家 FHR、3 家 THC、15 家 Edit 酒店
- ⏭️ RapidAPI/Booking.com:已跳过(未请求)
第 5 步:推荐
表格之后,始终提供:
- 奢华酒店最佳性价比: 哪家高端酒店扣除礼遇后节省最多
- 最佳经济型选择: 最便宜的选项(较长时间入住时通常是 Airbnb)
- 礼遇叠加机会: 同时属于 FHR/THC 和 Chase Edit 的酒店
- 抵用金使用: 适用哪些信用卡抵用金($600 Amex FHR、$300 CSR 旅行、$250 Select Hotels)
- 积分还是现金: 使用积分是否值得?(计算 CPP)
- 直接预订对比: 如果直接预订比门户价格便宜很多,请注明
Airbnb 集成
使用 airbnb_search MCP 工具:
airbnb_search(
location="Paris, France",
checkin="2026-08-11",
checkout="2026-08-15",
adults=2,
propertyType="entire_home"
)
对于每个 Airbnb 搜索结果,请提取:
- 名称、价格、评分、评论数
- 房源类型(整套住宅、独立房间)
- 主要设施(厨房、洗衣机、Wi-Fi、空调)
- 房源直达链接
适合选择 Airbnb 的情况:
- 入住 5 晚或以上(每晚价格通常更低)
- 团体或家庭需要更大空间
- 酒店价格过高的目的地
- 需要使用厨房(饮食限制、节省餐费)
适合选择酒店的情况:
- 短期入住(1-2 晚)
- 高端礼遇可抵扣房价(仅 FHR 早餐的价值就可能达到每晚 $100+)
- 积分兑换可获得不错的 CPP
- 忠诚度计划会籍礼遇(升级、延迟退房、休息室使用权)
错误处理
绝不能默默失败。 每个来源都必须报告其状态。
- ❌ Chase Travel: Login failed. No Chase portal pricing available.
- ❌ Airbnb: No results for this location/dates.
- ⚠️ Amex Travel: Only 3 results (some hotels may not be available for these dates).
如果高端数据库显示该城市有 FHR/Edit 酒店,但门户搜索没有返回这些酒店,请注明:“FHR 数据库列出巴黎有 8 家酒店,但 Amex Travel 只返回了 3 家。部分酒店可能在您选择的日期无空房。”
使用的数据文件
| 文件 | 用途 |
|---|---|
data/fhr-properties.json | 按城市/坐标查询 FHR 酒店 |
data/thc-properties.json | 查询 THC 酒店 |
data/chase-edit-properties.json | 查询 Chase Edit 酒店 |
data/hotel-chains.json | 酒店集团到忠诚度计划的映射 |
data/points-valuations.json | 积分计算所用的 CPP 估值 |
限制
- 门户搜索需要 Docker 和凭据。若未配置,请跳过。
- 必须能够使用 Airbnb MCP。若不可用,请妥善跳过。
- FHR/THC/Edit 数据库会定期更新。住宿可能已添加或移除。
- Amex 酒店积分价格浮动(并非 1 cpp)。请使用门户中的实际积分价格。
- Chase 门户价格会动态变化,采用 Points Boost(部分预订约为 1.5-2.0 cpp,并非保证的最低值)。过去固定的 1.5x 倍数已不复存在。
- 直接预订价格(通过 SerpAPI)可能与同一家酒店的门户价格不同。