在旅行积分领域,一个核心问题始终困扰着里程玩家:「到底是该烧掉积分还是付现金?」传统方式需要人工打开多个网站、逐个查询可用里程、对比现金价格,效率极低。travel-hacking-toolkit 的出现正是为了解决这一痛点 —— 它将 AI 智能体与多个旅行数据源通过 MCP(Model Context Protocol)深度整合,让用户只需用自然语言描述需求,AI 即可自动完成跨联盟里程搜索、积分估值与最优兑换路径计算。
项目定位与核心能力
该项目定位为 AI 驱动的旅行积分规划工具,直接面向两大受众:一是使用 OpenCode 的开发者,二是采用 Claude Code 的 AI 应用用户。其核心能力体现在三个层面:第一,支持 Award flight 可用性搜索,覆盖超过 25 家航空里程计划;第二,整合实时现金价格数据源,支持「积分还是现金」决策;第三,联动忠诚度账户余额查询与门户估值计算,最终输出完整的预订建议。
从技术实现角度,项目采用分层架构:底层是数据文件层,存储联盟关系、酒店集团、合作伙伴奖励规则、积分估值等静态数据;中间是 Skills 层,负责向 AI 解释如何调用各个旅行 API;顶层是 MCP 服务器层,提供 AI 可直接调用的实时工具。这种分层设计使得新增数据源或 API 时,只需在对应层级添加配置,而无需改动核心逻辑。
MCP 服务器层的工程实现
MCP 服务器是整个系统的实时数据入口。项目预置了六个 MCP 服务器,分别对应不同的旅行搜索场景。Skiplagged 提供隐藏城市票价搜索,这是航空里程领域的独特数据源,能够发现官方渠道无法找到的低价组合。Kiwi.com 支持虚拟联程(virtual interlining),即跨航空公司组合行程,AI 可以利用这一能力发现创意路由。Trivago 作为酒店元搜索引擎,覆盖多个预订平台的房价数据。Ferryhopper 覆盖 33 个国家的轮渡路线,填补了陆地与航空之外的交通空白。Airbnb MCP 经过项目方打补丁,增加了地理编码修正与房产类型筛选功能。LiteAPI 则提供酒店实时房价与预订能力。
这些服务器中,前五个完全免费,无需任何 API 密钥即可直接使用。LiteAPI 需要申请 API 密钥,但提供免费额度。这种「开箱即用 + 可选进阶」的 设计思路,大大降低了用户的入门门槛。值得注意的是,项目在 Claude Code 环境下需要使用 --strict-mcp-config 标志加载 MCP 配置,这是为了规避已知的自动发现缺陷。
Skills 层的 API 知识传递机制
如果说 MCP 服务器是 AI 的「手」和「眼」,那么 Skills 则是 AI 的「大脑说明书」。Skills 目录下的每个子目录对应一个旅行 API,包含 SKILL.md 文件与必要的运行脚本。以 Seats.aero Skill 为例,它详细记录了端点文档、curl 示例、jq 过滤器以及工作流指导。AI 在处理用户请求时,会先阅读这些 Skill 文件,学会如何构造合法的 API 调用。
项目中集成了八个核心 Skills。Duffel 提供实时航班搜索与预订能力,是少数支持直接出票的 API 之一。Seats.aero 是奖励航班可用性的核心数据源,覆盖 25 家以上的里程计划。AwardWallet 支持查询用户的忠诚度账户余额、精英会籍状态与历史记录。SerpAPI 则调用 Google Flights 获取现金价格,是「积分还是现金」决策的关键数据源。RapidAPI 作为二级价格来源,聚合 Google Flights Live 与 Booking.com 数据。Atlas Obscura 提供目的地隐藏景点数据,满足用户探索「冷门目的地」的需求。Scandinavia Transit 整合北欧三国的公共交通数据,包括挪威 Entur、瑞典 Trafiklab 与丹麦 Rejseplanen 的 API。WhereToCredit 则记录各航空公司与舱位的里程积累规则。
Setup 脚本支持两种 Skills 加载方式:全局安装到工具的 Skills 目录,或者创建项目级符号链接。前者适合长期使用同一工具的用户,后者则方便在项目目录下直接调试。
数据层的积分估值与联盟知识
项目在 data/ 目录下维护了六个关键的静态数据文件,这些是 AI 进行智能决策的知识库。alliances.json 记录航空公司联盟成员资格与双边合作关系,AI 需要这些信息来理解哪些里程计划可以兑换到目标航空公司。hotel-chains.json 包含酒店集团、子品牌与忠诚度计划的对应对照表,并支持反向查询。partner-awards.json 定义了哪些里程计划可以兑换哪些航空公司的航班,分为联盟内兑换与双边合作兑换两类。points-valuations.json 聚合了四个来源的积分估值数据,给出地板价与天花板价范围。sweet-spots.json 收录了高价值奖励兑换与最佳预订窗口,这是里程玩家眼中的「宝藏攻略」。transfer-partners.json 记录了信用卡积分可以转入的合作伙伴与转账比例,是构建积分池的重要参考。
这些数据文件的存在,使得 AI 不仅能够执行简单的 API 调用,还能进行复杂的推理 —— 比如计算某次航班通过不同里程计划兑换的性价比,或者推荐将信用卡积分优先转入哪个合作伙伴以最大化价值。
核心工作流:从需求到预订的自动化
项目定义了一套标准化的旅行规划工作流,AI 会按照该流程逐步执行。第一步是搜索奖励可用性,通过 Seats.aero API 查询目标航线在 25 家里程计划中的座位情况。第二步是搜索现金价格,使用 SerpAPI 调用 Google Flights 或通过 Skiplagged 查询替代路线价格。第三步是估算门户价值,这里需要动态查询当前信用卡积分门户的实际加成比例 —— 项目文档特别指出,Chase Points Boost 在 2025 年 6 月提供 1.5 到 2.0 美分的加成,而非固定比例,Amex 与 Capital One 则大约在 1.0 美分左右。第四步是比较积分与现金价值,AI 会给出每种方案的净成本。第五步是检查忠诚度余额,通过 AwardWallet 确认用户账户中有足够的里程。第六步是生成预订链接,使用 Seats.aero 或 Duffel 提供的链接完成实际预订。
这套工作流的设计体现了工程化的严谨性:它不是简单返回搜索结果,而是引导 AI 进行完整的决策链条推理,最终产出可执行的行动建议。
工程落地的关键参数
若要正式部署这套系统,需要关注以下工程参数。API 成本方面,Seats.aero Pro 订阅约为每月 8 美元,是唯一的必需付费项;SerpAPI 提供每月 100 次免费搜索,超出后按量计费。响应时间方面,Seats.aero 奖励搜索通常在 2-5 秒返回结果,SerpAPI 现金搜索受 Google 限流影响可能需要 5-10 秒,建议在 UI 层实现流式加载与进度提示。数据新鲜度方面,奖励可用性数据接近实时,但积分估值与门户加成是动态的,AI 输出结果后应提示用户自行核实最终价格。
在 MCP 服务器配置层面,项目提供两种配置文件格式:opencode.json 用于 OpenCode,.mcp.json 用于 Claude Code。两者在功能上等价,选择取决于用户的 AI 工具偏好。首次部署时建议先运行 ./scripts/setup.sh,该脚本会交互式引导完成 API 密钥配置、依赖安装与 Skills 链接。
与传统 RAG 系统的本质差异
理解这个项目的技术特点,需要将其与近期热门的 RAG(检索增强生成)系统进行对比。RAG 的核心是让 AI 访问私有文档库,通过向量检索找到相关片段后生成答案。而 travel-hacking-toolkit 的核心是让 AI 访问实时 API 与结构化数据,通过 MCP 协议执行工具调用后生成行动建议。前者解决的是「知识访问」问题,后者解决的是「任务执行」问题。从这个角度看,项目更接近于 AI Agent(智能体)的工程实践 —— 它展示了如何将 AI 从被动回答问题转变为主动完成多步骤任务。
项目中 data/ 目录下的静态数据文件可以类比为 RAG 的知识库,但它们的作用不是被检索后写入回答,而是作为 AI 推理时的参考上下文。Skills 层则扮演了 RAG 中 prompt engineering 的角色 —— 它定义了 AI 何时应该调用哪个 API、如何解析返回值、如何进行后续推理。
小结
travel-hacking-toolkit 展示了一种将 AI 智能体落地到垂直领域的工程范式:通过 MCP 协议接入多个实时数据源,将 API 调用封装为 AI 可理解的工具,结合结构化数据提供领域知识支持,最终实现从自然语言需求到可执行预订建议的完整自动化。这一架构对于任何希望构建领域专用 AI Agent 的开发者都具有参考价值 —— 关键不在于 AI 本身有多强大,而在于是否构建了足够丰富的工具生态与知识库,使其能够「看见」「理解」并「操作」专业领域的各个环节。