mcpField
F
flight-search-strategy

flight-search-strategy

github.com/borski生产力78090 次安装2 天前更新
代码仓库

关于 flight-search-strategy

面向 Agent 的机票搜索策略技能,规定如何跨现金票价、里程票和目的地数据源搜索,并比较往返与单程组合、处理来源限制。重点是并行搜索及按来源判断数据可靠性。

主要功能

  1. 01并行搜索多个数据源
  2. 02纳入里程票可用性查询
  3. 03比较往返票与单程组合
  4. 04为国际航线搜索多个市场
  5. 05应用数据源可靠性指南
  6. 06监控 Southwest 预订票价变化

适用场景

  1. 01规划国际行程的搜索方案
  2. 02比较往返票与混合航司票价
  3. 03检查 Southwest 票价是否变动

MCP 相关

该技能将 Skiplagged 和 Kiwi.com 列为机票搜索的 MCP 来源,建议调用其工具,并与其他现金票价和里程票来源的结果合并。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/borski/travel-hacking-toolkit --skill flight-search-strategy

安装后在 Claude Code 中输入/flight-search-strategy确认已加载。

详细介绍

航班搜索策略

每次搜索航班时都要搜索所有来源

这不是让你择一使用的列表。每个来源返回的结果、价格和航空公司都不同。漏掉一个来源,就意味着少了可选项。优先级顺序决定的是来源结果不一致时该相信哪个价格,而不是可以跳过哪些来源。

优先级来源优势局限
1Duffel(skill)现金价格最准确。提供真实的 GDS 票价舱位数据。可预订。不支持 Southwest。没有奖励机票价格。报价 15-30 分钟后过期。
2Ignav(skill)快速 REST API。可选择市场进行价格套利。免费。不支持 Southwest。没有奖励机票价格。
3Google Flights(skill,agent-browser)覆盖所有航空公司,包括 Southwest 的现金价格。免费。可比较经济舱和商务舱。价格可能高于 GDS。没有积分价格。
4Skiplagged(MCP)隐藏城市票价。无需配置。不支持 Southwest。在小型市场上结果可能杂乱。
5Kiwi.com(MCP)虚拟联程(巧妙的跨航空公司航线)。无需配置。在小型市场上会返回无用结果。不支持 Southwest。
6Seats.aero(skill)覆盖 25+ 个计划的奖励航班可用情况。是积分搜索的首选。数据经过缓存,并非实时。没有现金价格。不支持 Southwest。
7SerpAPI(skill,可选)搜索 Google Hotels。发现目的地(Google Travel Explore)。不用于航班搜索(价格偏高)。仅用于酒店和“我该去哪儿?”这类查询。
8Southwest(skill,Patchright)票价舱位、积分价格、Companion Pass。涵盖全部 4 种票价舱位,支持现金和积分。预构建的 Docker 映像:ghcr.io/borski/sw-fares。或使用本地 Patchright(有头模式)。每次搜索约需 20 秒。

标准航班搜索工作流

并行运行以下所有来源: Duffel + Ignav + Google Flights + Skiplagged + Kiwi。

Skiplagged 和 Kiwi 是无需密钥的 MCP 服务——每个正常启动的会话都可以使用。声称 MCP 不可用之前,务必先尝试调用工具;切勿用临时编写的浏览器抓取来替代这些来源(参见 fallback-and-resilience)。

比较奖励机票时,始终加入 Seats.aero。如果 Southwest 执飞该航线,始终运行 Southwest skill。

不要跳过任何来源。不要假定某个来源涵盖所有信息。汇总并展示所有来源的结果,突出显示最佳选项,无论结果来自哪个来源。

如需统一比较,请使用 compare-flights skill,它会并行协调上述所有来源,并进行转点优化。

往返与单程组合

如果行程有返程日期,就主动为两种组合都查询价格,无需等人提出:

  1. 所有来源的往返票价(Duffel、Ignav、Kiwi、Skiplagged 和 Google Flights 都会提供往返报价)。
  2. 两张单程票,分别独立搜索——这样也能找到往返搜索看不到的混合组合(去程由航空公司 A 执飞,返程由航空公司 B 执飞)。

在同一批并行搜索中完成所有查询;这只是多两次搜索,不需要再进行第二轮。

哪种组合更划算取决于航线,因此切勿想当然:

  • 国际航线的传统航空公司往往往返票更划算,因为往返票价通常低于两张单程票的总价。
  • 国内航线、低成本航空公司,以及 Southwest 执飞的任何航线,往往是两张单程票更划算(SW 按单程为每段定价)。此外,单程票更灵活:每段都可以独立更改或取消。
  • 去返程由不同航空公司促销日历定价时,混合航空公司的组合经常比前两种都划算。

明确给出结论和价差:“往返票 $842,最优单程组合 $918——订往返票,可省 $76”(反之亦然)。如果价差低于约 $50,建议往返票之前,先说明分开购票的灵活性优势。

专门针对 Southwest

使用 southwest 技能:

docker run --rm ghcr.io/borski/sw-fares --origin SJC --dest DEN --depart 2026-05-15 --points

或者:

python3 skills/southwest/scripts/search_fares.py --origin SJC --dest DEN --depart 2026-05-15 --points

返回全部 4 个票价等级(Wanna Get Away、WGA+、Anytime、Business Select),并提供现金和积分价格。

google-flights 技能可作为更快的备用方案,但仅适用于 Southwest 现金价格(不提供票价等级细分或积分价格)。

监控现有的 Southwest 预订

docker run --rm -e SW_USERNAME -e SW_PASSWORD \
  ghcr.io/borski/sw-fares change --conf ABC123 --first Jane --last Doe --json

登录,选择去程和返程,并显示每个可选航班的票价差额。负差额 = 省钱机会。使用 --list 查找所有即将出行的确认号码。只读,不会修改预订。

市场选择策略

不同国家/地区市场对同一条航线会返回不同价格。从泰国(&gl=TH)搜索,与从美国(&gl=US)搜索相比,可能省下数百美元。

搜索国际航班时,务必尝试多个市场:

  1. 先尝试出发国/地区市场(例如,从美国出发的航班使用 &gl=US)
  2. 再尝试目的地国家/地区市场(例如,飞往日本的航班使用 &gl=JP)
  3. 尝试更多市场前先询问用户(例如,第三国/地区或 VPN 市场)

适用于:

  • 通过 &gl=XX URL 参数使用 google-flights
  • 在搜索负载的 market 字段中使用 ignav

Duffel 和 SerpAPI 不支持市场选择。

来源准确性优先级

来源提供的现金价格不一致时:

Duffel > 航空公司网站 > SerpAPI > Skiplagged/Kiwi

  1. Duffel 按票价等级返回真实的 GDS 价格。 这些价格可用于预订。测试结果:Duffel 显示基础舱为 $271、主舱为 $325。SerpAPI 对同一航班显示 $541。多个行程的差价都相当稳定。
  2. SerpAPI(Google Flights)会报出偏高价格。 它经常显示“主舱”或捆绑票价,而不是最便宜且可预订的票价等级。它适用于 Google Hotels 和目的地探索,但不要将其作为航班现金价格的唯一可信来源。
  3. Kiwi 在小型市场会返回垃圾结果。 对飞往小型机场的国内航线,应严格筛选,或跳过 Kiwi。

常见失败模式

  • 只运行一个来源,错过其他来源提供的更好选择。
  • 认为 SerpAPI 的价格可用于预订(这些价格通常偏高)。
  • 因为“没有 GDS 提供 Southwest 航班”而跳过 Southwest——这正是需要 SW 技能的原因。
  • 因为用户“没有那些积分”而跳过 Seats.aero——用户可能可以通过转点获得这些积分,参见 partner-awards 技能。
  • 搜索国际航线时只搜索一个市场(至少尝试 2 个市场)。

评论

支持 Markdown