用 AI 做个旅行规划工具:第二次聊需求
前几篇文章里,我陆续写了旅行规划工具第一版原型怎么来的、Chat 和 Agent 怎么选。
这篇文章介绍第二次尝试时首版需求的生成过程。

文末有干货小结,欢迎打包带走
人是怎么规划旅行的
这次还是先从 Chat 方式开始的,我先让它当个老鸟旅游达人,问它平时出门前都会看些什么信息,怎么选目的地和中转,怎么在省钱和好玩之间做取舍,又是怎么一步步把整个行程排出来的。
它讲得还挺系统,从自己先想清楚要什么,到怎么收集信息、怎么设计路线、怎么平衡成本和体验,最后落成一个能执行的行程单。看起来是一个比较真实的情况,但是感觉还不太够。
于是我又补了一个更常见的情况:如果是暑假或者冬季要出去玩一段时间,时间和目的地都不太确定,或者有好几个选项可以挑,那第一步该怎么选?
它讲了“漏斗式筛选”,用预算、假期长短、一起去的人、季节特点,把范围慢慢收窄。虽然有点过于理想化,但我还是决定先用这个作为最基本的输入开始往下推进。
产品经理视角
我把前面聊的东西总结了一下,大概意思就是:目的地、时间、预算、偏好这些东西其实是互相影响的。有时候你得拿行程方案去反过来试试这个目的地合不合适、时间对不对、钱够不够花。要是不行就得换一个目的地、换个时间,或者换种玩法。
这时候 AI 自然是顺着我来说,还强调旅行规划是一个不断迭代的过程。
后来我开始找它要答案了:现在你不光是旅游达人了,你还得当个产品经理。给像你这样的旅游达人做一个系统,能让他在这种“拉扯”里更轻松一点。你觉得这个系统应该长什么样,能怎么帮到他。
它从产品角度给出了一个大概的框架,提到什么“动态平衡木”交互、时间轴滑块、预算分配器,还有冲突提醒、方案快照之类的。想法挺多,算是一个产品视角的初稿吧。
产品加用户视角
但这个视角其实有点儿飘,跟实际用的人想要的东西,还是挺不一样的。于是我让它把身份往旅游达人方向偏一些,从使用者角度再想想这个系统应该有哪些功能,能怎么帮自己把行程越调越好。
这时候它给出了用户视角,这个会更实际一些:比如灵感回收站、实时算账、平行宇宙对比、顺滑拉扯、过来人预警、执行清单……这更贴近实际使用者的感受。
这时候再让它把这两条线合在一起,让产品经理从产品设计上加一些容错的情况(比如打折机票突然没了、行程要避开某些日期),为了避免它走偏,我特意让它写了几个互相有差异的 User Story(用户故事)描述如何使用这个系统。就像一边写代码,一边写单元测试一样。
(后续会分享几个 User Story,感兴趣的朋友请关注本公众号的推送)
拉回产品重心
这一版方案,以及 User Story 跟我的设想还是有点偏差。它设计了很多自动帮助用户调节的地方,但我真正想要的是一个辅助工具,让我自己来设计行程,系统主要是给我提供信息、各种小工具,还有把约束条件及时告诉我,而不是让它替我做决定。
另外,我平时安排行程的时候,其实不太在意每一天具体去哪几个点。更舒服的方式是按目的地来规划,比如“这三天在成都”,就把成都附近能玩的都放进一个资源池里,到时候再灵活选。只有那些需要提前预约的景点,才值得系统给我做个提醒。
我把这个想法反馈给它之后,它就调整了方向,出了一个以工具为主的版本:灵感收纳箱、目的地探索工具、行程框架工具、资源池管理、成本计算器、时间和体力估算、库存监控、天气观察、预约提醒、随身行程本、复盘笔记……
打磨细节
这些工具挺多,有些功能设计的还有问题,在这一环节我感觉它像是一个思考得不仔细的新手。
如果对目的地不熟,只让用户往框架里“加卡片”,那怎么知道有哪些地方可选?怎么决定每个地方停留多久?系统看起来就只是在记东西,没有真正帮忙。
另外,“打开成本计算器”、“打开天气观察员”这种说法也不太对——这些关键信息应该默认就摆在那儿,不然用户可能已经把一个目的地加进去了,才发现没有直达航班,转机机票贵得离谱,或者添加海岛时并不知道那段时间有台风预警。
我希望这个系统更像一个大屏驾驶舱:选一个目的地,所有相关信息都能一眼看到;加一个景点或者一段行程,各种约束和影响马上就能体现出来,不需要再点开别的页面。
它根据这些反馈重新整理了用户视角和 PRD,做了全局布局(顶部仪表盘、左侧行程框架、右侧详情面板),成本、天气、库存这些信息默认就显示着,操作之间也能实时联动。
后面我又让它把 User Story 更新了版本,还特别加了“机票太贵、通过中转城市调整”的拉扯场景。像是增加了一个测试用例的感觉。
换个会话再做一次评审
前面这些阶段我基本都在同一个长对话里完成的。聊到这里,我觉得应该再换个视角再看看。
我又新开了一个对话,让它扮演一个很懂携程、去哪儿以及国内旅游市场的产品老手。让它根据 PRD 和几个用户视角、User Story 给评审意见。
它的反馈里,对大方向认可,但也补了不少缺口,比如同行者画像怎么融合、住宿和补给怎么设计、证照管理、经验怎么沉淀成知识库、移动端怎么支持现场决策等等。
我把这个评审意见又丢回原来的对话,让它自己判断哪些可以采纳、理由是什么。最后我们保留了大部分建议,但把“一键容错”改成了“容错清单”(还是希望主导权在用户手里),证照中心也改成了“证照提醒”。
基于这些调整,才算形成了这一轮的第一个版本。
最后的一些感受
回顾整个过程,我自己有几点挺深的感受。
第一,虽然有个评审的单独会话,但整体上主要是靠一个会话完成的。这样效率是挺高的,但我会担心有些地方考虑得不全面,只是自己一时还没发现。
第二,把那么多文档从一个对话复制粘贴到另一个对话,真的挺麻烦的。这也是我后来更愿意把东西放进 Agent 环境、用文件来管理的原因。(后续我会具体介绍项目中的实践,请关注我以及时获取最新文章)
第三,AI 虽然能生成很多看起来很完整的文档,但往哪个方向走、哪些东西要坚持、哪些要放弃,最后还是得靠人来决定,毕竟它不用为结果负责。
第四,AI 能抬高你能力的上限,但弥补不了能力的下限,你自己能搞定的事,AI 可以帮你更快更好地搞定它,但你自己搞不定的事,你又怎么能判断 AI 做的是对的呢?
干货小结
以上就是这次的全部内容了,总结成下面这几句干货,欢迎打包带走:
-
1. 讨论需求时先聊怎么用,再聊长什么样。 -
2. 写用户故事当单元测试用,卡住需求文档。 -
3. 明确“我”和“AI”的定位,不要被 AI 牵着走。 -
4. 审视自己的能力边界,让 AI 帮你把事情做得更好,而不是让 AI 做你做不了的事情。
如果你也想用 AI 做类似的事,希望这些记录能有点用。如果你有想法或建议,也欢迎交流。
夜雨聆风