这篇文章记录了我用 AI 帮朋友找优惠机票的经历。从 ChatGPT、Gemini,再到 Claude Cowork,Claude Code 以及各种国内订票平台的 AI。
最后,我的确用 AI 帮朋友买到了更优惠的机票。但也折腾了 2天。所以我不禁感慨:AI 这么厉害,但帮普通人买优惠机票,依然不容易。
昨天,一个朋友来问我:“AI 能帮我买到优惠机票吗?”
我第一反应是:这不是很适合 AI 吗?
毕竟,ChatGPT 刚出来那会儿,山姆·奥特曼就拿 “买机票” 举过例子。再加上,这种任务听起来也很像 AI 擅长的那类事:信息搜索、价格比较、给建议。
但朋友很快给我泼了盆冷水。
她其实已经试过了,体验并不好。AI 并没有帮她找到真正便宜的机票,只是给了一些很模糊的建议。

她说,可能是她提问得不够准确。所以,我根据重新写了一版更明确、更完整的需求,然后丢给 ChatGPT 试了试。结果,和她反馈的一样。AI 只是给了模糊的购买时间区间建议。
这件事为什么麻烦?
因为她的需求比较特殊:
- • 往返时间范围:6 月 25 日 - 8 月 25 日
- • 停留时长:25 - 45 天
- • 希望直飞
- • 想找尽可能便宜的票
我让 AI 算了一下,一共有 567 种日期组合。

哪怕用上 Google Flights、携程这类工具自带的「弹性搜索功能」,工作量也不小。

比如 Google Flight「日期网格」功能。这一张图,其实就涵盖了 “7.12-7.18 出发,8.9-8.15 返回总共 7x7=49 种情况”。如果出行时间基本按照打工人的假期来,看完这样一张图基本就能搞定价格的决策了。
但是朋友的需求是 10 倍,这些网站的工程师,不会为了这样的特殊需求专门开发。因为页面资源是有限的,他们只能给用户看一个页面。他们首先考虑的,是绝大部分人的需求。
事实上,这是一个非常适合用代码搞定的任务,而不是直接交给聊天式的大语言模型。
因为完成这个任务,需要的都是重复的操作:
- 打开 Google Flights 或携程
- 输入一组日期
- 看价格、记下来
- 换一组日期继续
- 重复几百次
- 最后排序、选择
不过,考虑朋友是非技术背景,我也想看看「现在的 ChatGPT 这种通用模型会不会进化了」。
我决定亲自试试看。
第一轮:聊天式 AI,基本都不行
ChatGPT
我进一步优化了一版需求,把目标和我期待的执行方式都写得更清楚了。

结果,ChatGPT 很坦诚,直接 “躺平”:
它告诉我,它只能基于公开可访问的数据做有限查询,没法真正遍历所有日期组合。
看到这里,我第一次很明确地意识到:聊天式 AI 很难完成这种高重复度、强执行型的任务。
Gemini
接着,我又试了 Gemini。
我本来还抱有一点期待:毕竟 Google Flights 是 Google 的产品,说不定 Gemini 会更有优势。
结果并没有。

有的时候它查得对,有时候又不行,相当不稳定。我发现:每次它用来比价的表格,日期都不一样,看起来也是 “偷懒” 了。
虽然结果不太好,但我和朋友一样,第一时间还是怀疑:是不是我的 prompt 没写好?
所以,我决定让 AI 帮忙优化使用 AI 的方法。
第二轮:我让 AI 帮我想 “怎么用 AI”
具体来说,我做了两个尝试:
- 1. 让 AI 优化向它提问的提示词( prompt)
我是这么问它的:
我想让 AI 帮我搜 最划算机票,确保你理解我的意思,然后帮我优化 prompt:温哥华到北京往返, 6 月 25 日之后出发, 8 月 25 日之前回温哥华,在北京呆 25-45 天,只考虑直飞,怎么买最划算?
它优化后的 prompt 如下,确实更完整、更像样。但这并不能改变它底层的行为模式:它依然只是做有限搜索,然后很快开始总结。
帮我搜索并比较温哥华(YVR)到北京(PEK 或 PKX)往返直飞机票,目标是找到最划算、总价最低的方案。
限制条件:
- • 只看往返
- • 只考虑直飞
- • 去程必须在 6 月 25 日之后
- • 回程必须在 8 月 25 日之前
- • 在北京停留时间必须是 25 天到 45 天之间
请完成以下内容:
1。 找出符合条件的低价日期组合,并按价格从低到高排序
2。 至少列出 5-10 个方案
3。 每个方案注明:
- • 出发日期
- • 返回日期
- • 停留天数
- • 航空公司
- • 出发/到达机场
- • 总价
- • 是否含托运行李
- • 退改签限制
- • 购票平台或官网
4。 帮我总结:- • 哪些日期最便宜
- • 哪种停留天数最便宜
- • 哪个平台最划算
5。 直接告诉我:- • 目前最值得买的方案
- • 怎么买最省钱
如果两个方案价格接近,请优先推荐包含托运行李、退改条件更合理的方案,而不是只看最低裸票价。
- 2. 我干脆直接问 AI :你告诉我,我可以怎么用 AI 买到划算的机票。

结果,它直接和我说:你最该用 AI 做的,不是 “找最低价” 这件事本身。
可是,我真正想做的,恰恰就是 “直接找到最低价”。不仅如此,它给的方案里还有一些让我手动截图它信息的过程。
我开始放弃纯聊天模式,转向更能 “动手” 的 AI。
第三轮:让 AI 真正去“做事”
Claude Cowork:方向对了,但数据不够
考虑朋友用 Cowork 可能会更容易上手,我把相同的需求发给了它 。

这一次,它一上来就想「连接浏览器」,使用外部工具。虽然中间有失败,但我一下子觉得方向对了:
它终于不像聊天机器人那样只会总结了,而是在尝试调用工具。


后来它连上了 Kiwi 之类的服务,还真的跑出了一份 Excel 文件。
里面甚至有:
- • 所有搜索结果
- • 最佳方案推荐
- • 价格热力图
第一眼看上去,很像那么回事。

但我很快发现不对:,最便宜的也要 2436 CAD,折合人民币 12000 多。
而朋友自己手动搜到的最低价,明明是 1 万出头。。
后来认真看它的执行过程我才知道问题出在哪:
Claude Cowork 主要用的是 Kiwi 的数据,而 Kiwi 的数据并不完整。
比如朋友手动搜到的最便宜方案里,有加拿大航空;但 Kiwi 并没有覆盖这部分数据。
我意识到:
AI 能不能完成任务,不只取决于模型强不强,还取决于它接入的工具和数据到底全不全。
接着,我又试了最熟悉的 Claude Code。
Claude Code:更灵活,但还是绕不开数据源问题
我直接新建了一个文件夹,打开 Claude Code,然后把相同的 prompt 丢给它。




它的表现和 Claude Cowork 有点像:执行能力更强,但主要还是在用 Kiwi 和少量其他网站的数据。
最后提醒我:最好再去 Google Flights 和航司官网交叉验证。
我看到这句话的时候,真的有点绷不住了。
既然如此,那我为啥不让直接去 Google flight 拿数据呢?
到这里,我的思路也更清晰了:
在确定性的任务上,不能给 AI 太大的自由度。需要给它明确的执行路径。
Skills:让 AI 和脚本各干各的
于是,我在上一步 Claude Code 的聊天窗口里,继续和它说:
我希望你帮我实现一个工具来做这件事,最好能直接用 Google Flight、航司官网的数据,给我推荐一些方案?
聊了几轮以后,我重新拆解了这个任务 —— 其实有两类工作:
一类是不确定性的工作,适合交给 AI,比如:
- • 理解自然语言
- • 从模糊表达里提取用户意图
- • 处理同义词
- • 做轻度歧义消解
- • 把“温哥华到北京,6 月底到 8 月底之间,待 25 到 45 天,直飞” 解析成结构化参数
另一类是确定性的工作,适合交给脚本,比如:
- • 参数校验
- • 城市与机场映射
- • 日期、货币和舱位规范化
- • 批量执行搜索
- • 汇总结果并排序
这种任务非常适合让 Skill 来完成,因为它的设计原则恰好是:
AI 负责处理不确定性,脚本负责保证确定性。
像 Google Flights 这种成熟产品已经做好的能力,就不应该再让 LLM 从不完整的公开网页里再 “猜” 一遍。
真正需要 AI 补上的,不是“再造一个 Google Flights”,而是:
把 Google Flights 没有为少数特殊用户做的那部分重复劳动补上。
最后,我让 Claude Code 帮我做了一个 skill。主要就是一个文件夹,包含下面三个部分:
- • SKILL.md[1]:用来指导 AI 理解任务、理解用户意图,转化成参数,调用脚本执行
- • 脚本:用来执行 AI 给的确定性任务
- • 脚本执行环境:确保脚本可以正常运行

实现以后,我给 AI 发了下面这句指令:
/search-flights 温哥华 北京 6 月 25 日-8 月 25 日 25-45 天 直飞

它开始用跑脚本的方式收集价格信息,得到了 258 个结果(看来也不完整?)。


最后,它给出了购买建议。我一查,这个价格果然是最便宜的,而且, 比朋友昨天自己手查的便宜了几百。我终于送了一口气,赶紧发给朋友。也因此,成功蹭到了一杯咖啡。

最后,我把这篇文章发给 AI,它帮我写了个结尾:
折腾完以后,我最大的感受并不是:
- • ChatGPT 不行
- • Gemini 不行
- • Claude 更强
而是:
很多现实任务,真正的难点根本不是“理解用户在说什么”,而是“把正确的动作重复执行足够多次”。
而这,恰恰不是今天聊天式 AI 最擅长的部分。它们很擅长:解释、总结、提建议、帮你改 prompt、帮你设计流程
但如果你真的想解决问题,往往还是要给它:
- • 合适的工具
- • 可靠的数据源
- • 清晰的执行边界
- • 能落地的脚本
这就是 Claude Code 这类编程 Agent 比较擅长的了。
这个机票搜索的 Skill,我这两天会整理一下开源,欢迎持续关注。
你有类似的找机票的需求么?AI 有帮到你么?欢迎在评论区分享。
如果觉得这篇文章有用,欢迎帮忙点赞、转发给有需要的朋友。
我是李志伟,一名拥有 8 年实战经验的 AI 算法工程师,正走在一人公司的创业之路上。我喜欢研究 AI 的前沿进展,但也希望用 AI 帮助更多普通人。
欢迎关注我,愿我们在 AI 实践中一起持续进步,走得更远。
感谢您读完这篇文章。如果您使用 AI 提效或工程落地实践方面有任何问题,欢迎加我微信,交个朋友,一起交流探讨、共同成长。

后记:一些其他(失败)尝试
搞定这个需求以后,我还是挺开心的。但是我突然想起:朋友没有技术背景,一时半会儿用不了 Claude Code Skill……
不过,经过这么多尝试以后,我对需求和方案逐渐清晰:找个 Agent,在目标时间范围内反复查询 google flight,然后对比得到最优惠的价格。
这个过程可以通过脚本代码的方式实现(用我开发的 skill),也可以用一个能在浏览器点点点的 Agent 实现。
我又想起 ChatGPT,虽然它的聊天模式搞不定,但它还有个代理模式(Agent mode)。
后来我又试了 ChatGPT Agent Mode
- 1. 我按照下面的方式打开 Agent Mode

再一次,我把我的 prompt 发给 ChatGPT

在 Agent Mode 下, ChatGPT 会打开一台云端电脑,然后就像我们一样,开始进行鼠标和键盘操作。和人一样,它会打开日期网格比价。


最终,他给了我一个报告:


这个报告像模像样的,最后给出的这个日期,恰好价格也是对的,甚至比我上一次查的最低价还低。我以为这 ChatGPT Agent 也可以。于是,我迫不及待地推荐给朋友。
直到我写这篇文章,才发现,它的报告里还包含「调研方法」,它竟然直接说:为了简化,我直接把往返价格。

于是,我只好再加了个要求:

它重新开始工作,不过这一次,它不看「日期网格」图了,开始一个个翻条形图和记录


可是,它最终给我的报告依然充满 “幻觉”:
- • 它像模像样地在结论里给出截图,但截图和它的结论里的时间都不一样
- • 它最终的推荐方案是 7.22-9.13,也不满足 8.25 前返回的要求。
Claude in Chrome
最后,我想起 Claude Code 进行浏览器操作很卡。我尝试了 Claude in Chrome 这个浏览器插件。据说它可以实现浏览器操控。那我岂不是可以让他也点点点?但实际尝试下来,它的操作也是非常非常慢…… 基本没法用。

5 分钟过去了,它终于把温哥华输入出发地点了,但过了 10 分钟还没确认。所以,我放弃了。

国内订票应用的内置 AI
在这个过程中,我忍不住想起我之前用过 “海鲜市场” 的 AI 智能搜索还挺好用的。会不会国内的机票销售平台,也有类似功能?毕竟他们有自己的数据,应该能做出点东西吧?
于是,我尝试了下面这些应用的 AI,很可惜。它们都没法正确理解我的意图……

这个 AI,刚开始的的意图理解还行,但是只推荐了国航。我没来得及看,是不是他也没有加拿大航空的信息。但是它有个明显的问题:在同一个聊天框里继续发消息,他没有记住之前的上下文。一开始,因为它给出的机票建议是 7.14-7.20 的,不满足待 25-45 天的需求。所以我强调:8.25 之前回,要在北京待 25 天以上,结果它就开始给我推荐 4 月的机票了。
当我重新开启窗口,输入完整的需求,它连最开始的唯一选项都找不到了。

这个 AI 呢,一直没有理解我在时间上的要求…… 试了几次失败以后,我没有耐心了。
当然,也可能是因为我没有花很多时间尝试这些 AI ,所以 prompt 没有写好?或者是因为这个需求太复杂了?
你怎么看?有类似的找机票的需求么?有用上 AI 么?欢迎在评论区分享。
引用链接
[1] SKILL.md: http://SKILL.md
夜雨聆风