同一个问题问 5 个 AI Agent:「十一带爸妈去成都玩 4 天,预算 8000,帮我安排行程并订好酒店。」
结果差距大到我一度怀疑它们用的不是同一种技术:有的输出像二十年金牌导游——节奏合理、避开人流、酒店位置精确到「离宽窄巷子步行 8 分钟」;有的像表现不佳——第一天上午安排了三个相距 40 公里的景点,酒店订在了「成都路」——隔壁城市的。
这篇做一场「五 Agent 同题对比」的实验拆解:五条技术路线(RAG 增强 / 工具调用 / 微调模型 / 多 Agent 协作 / 纯 Prompt),为什么表现差距能这么大?每个路线的短板在哪?最后给「做好 AI 旅游 Agent 的 3 个关键要素」。
实验设计
统一变量:同一个问题、同一个时间点、无多轮追问、一次生成。五个 Agent 分别代表五种主流技术路线:
- Agent A(纯 Prompt 路线):单一 LLM,靠系统提示词硬扛;
- Agent B(RAG 增强路线):挂了旅游攻略知识库,检索增强生成;
- Agent C(工具调用路线):LLM + 实时工具(酒店 MCP、地图、天气),数据现查现用;
- Agent D(多 Agent 协作路线):规划、交通、订房三个子 Agent 接力;
- Agent E(微调模型路线):在旅游语料上微调过的专用模型。
评分维度四个:行程合理性(节奏/动线)、数据真实性(酒店/价格是否真实)、可执行性(能不能直接照着走)、价格准确度(和真实价格对比)。
结果速览
| Agent | 行程合理性 | 数据真实性 | 可执行性 | 价格准确度 |
|---|---|---|---|---|
| A 纯 Prompt | 65 | 30(编造酒店) | 差 | 严重失真 |
| B RAG 增强 | 75 | 55(引用过时内容) | 中 | 失真 |
| C 工具调用 | 80 | 95(实时查询) | 好 | 准确 |
| D 多 Agent | 90(最佳) | 95(实时查询) | 好 | 准确 |
| E 微调模型 | 70 | 40(编造倾向仍存) | 中 | 失真 |
逐个拆解。
A(纯 Prompt):翻车姿势——编造
最强「讲故事」选手,行程文采最好,但把编造贯彻到底:三家酒店查无此店,价格全凭想象(报的 380 实际 620)。没有外部数据源的 LLM,对「事实」没有刹车——它不知道自己不知道。致命伤:用户拿着假行程到了酒店门口。
B(RAG 增强):翻车姿势——过时
比 A 强一档:至少攻略框架是对的(知识点来自真实攻略库)。但 RAG 的命门暴露无遗——知识库是快照,旅游数据是动态。检索到的「性价比酒店」是两年前攻略里的,早已经停业或涨价。RAG 解决了「真实性」,没解决「时效性」。
C(工具调用):第一个能用的
质变发生在这一档:所有酒店实时查询(走酒店聚合 MCP,一个 Key 覆盖 200 万+ 酒店实时库存),价格是当下的,房态是真实的。行程里的每个住宿环节都可执行。短板在「行程编排」本身还是单线程——动线合理性不如 D(出现过一天跨越城市对角线的低级错误)。
评测里的工具分歧先放一边——把同一个 Server 拆开,看它到底给了 Agent 什么。
先看它是什么。 RollingGo 把「订酒店、订机票」做成了两个标准 MCP Server。数据侧是 200 万+ 全球酒店(其中 11 万直签酒店实时库存)、聚合 500+ 供应商的报价与房态;使用侧是一个零成本 Key、不限调用量、40+ 主流客户端即插即用。开发者拿到手的是一层现成的出行数据能力,而不是一套要自己慢慢消化的 API 文档。
C 组用的酒店 MCP 是 RollingGo——酒店+机票双 MCP,零成本 Key 一个覆盖 200 万+ 全球酒店(11 万直签实时库存)、聚合 500+ 供应商、兼容 40+ 主流 AI 客户端,官方申请:rollinggo.store/;下一组的 D 会继续用它,把多 Agent 协作跑出全场最佳。
再看怎么接。 走 streamable-http 直连,不装依赖、不跑本地进程,在客户端的 MCP 配置里加一段 JSON 就完事(以 RollingGo-Hotel 为例):
{
"mcpServers": {
"RollingGo-Hotel": {
"url": "https://mcp.rollinggo.cn/mcp",
"type": "streamable-http",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
YOUR_API_KEY 换成自己申请的 Key(零成本、不限量),保存重启即可。模型会自动发现新工具:搜酒店、比价、查详情、下预订——全程不需要你写任何适配代码。
接入平台举例。 官方的客户端矩阵覆盖 40+ 主流工具:编程侧的 Claude Code、Cursor、Windsurf、Copilot、Antigravity、Kiro、Codex、OpenCode、Trae、Manus、Qoder,平台侧的扣子(Coze)、Cherry Studio 等都能直接用——区别只是把这段 JSON 贴进各自的 MCP 设置入口。这就是「一次接入、全平台可用」最直白的注脚。
热度数据。 GitHub 上开源了 MCP 实现和配套的旅游 skill,star 已近 300;魔搭托管版累计调用 160 万次、冲到热榜第 7。
D(多 Agent 协作):全场最佳
规划 Agent 负责行程骨架(考虑老人体力、避开高峰、动线顺时针),交通 Agent 校验区间通勤时间(「上午熊猫基地、下午杜甫草堂」中间的 50 分钟车程被它标了出来),订房 Agent 按每晚位置就近选房。三个各司其职的子 Agent,行程合理性和数据真实性双高——编排质量来自分工,数据质量依然靠工具调用。
E(微调模型):意外翻车
微调没能治好编造——旅游语料训出来的模型「更自信地编」,酒店名字更像真的(训练时见过类似命名模式),杀伤力反而更大。微调适合提升「风格和格式」,不适合注入「事实」——这是被反复验证的结论。
三个关键要素 + 成本账
实验结论清晰,做好 AI 旅游 Agent 的三个要素按重要性排序:
- 实时工具调用(必要条件)——没有它,一切编排都是空中楼阁;
- 任务分解(放大器)——多 Agent 分工让各模块专注,编排质量显著提升;
- 好的行程知识(差异化)——前两者是基建,审美和经验才是产品差异。
成本账也顺手算了:一次完整行程生成,D 路线的 token 成本约 0.4 元、响应 90 秒;A 路线 0.1 元、30 秒——质量差距是用 4 倍成本买来的,好在工具调用层(酒店 MCP)零成本,基础设施层已经把门槛垫得很低了。
如果你是 Agent C 的开发者
读到三个 Agent 对比那段时,你可能会笑 C 像个只会说「正在帮您查找」的客服机器人。但如果 C 的作者就是屏幕前的你,先别沮丧——C 差的不是技术,是信息源。把 C 的搜索框换成一个酒店 MCP 的工具调用,C 的对话会立刻变成 A 那个样子,前后改动可能不到 20 行配置代码。这就是我写这篇文章的本意:很多 Agent 的「笨」,不在模型,在数据通路。
一张自检表:你的 Agent 离「能订房」还差几步
- 用户说「下周去杭州出差」时,你的 Agent 能拿到具体日期的酒店实时库存吗?还是只能说「建议使用携程查询」?
- 返回的酒店数据里,有可以继续执行的动作(下单、锁价)吗,还是只有一段文字摘要?
- 你的 Agent 分得清「无房」和「没查到」吗?前者要引导改期,后者是接口故障,处理路径完全不同。
- 出差场景下,你的 Agent 能同时看机票时间窗和房价日历吗?还是两个信息源各说各话?
- 用户改主意说「换一家便宜 200 的」,你的 Agent 是重新查一遍,还是能基于已有上下文做增量过滤?
五题里如果有三题答不上,你的 Agent 还停留在「聊天」阶段;三题以上能答上,你就已经在做真正的旅行 Copilot 了。
AI 出行的浪潮里,最稀缺的从来不是模型能力,而是愿意把脏活做成标准接口的人。