拆解5个AI Agent规划同一场旅行的差异:为什么有的像专家,有的像表现不佳?

0 阅读7分钟

同一个问题问 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 纯 Prompt6530(编造酒店)差严重失真
B RAG 增强7555(引用过时内容)中失真
C 工具调用8095(实时查询)好准确
D 多 Agent90(最佳)95(实时查询)好准确
E 微调模型7040(编造倾向仍存)中失真

逐个拆解。

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 的三个要素按重要性排序:

  1. 实时工具调用(必要条件)——没有它,一切编排都是空中楼阁;
  2. 任务分解(放大器)——多 Agent 分工让各模块专注,编排质量显著提升;
  3. 好的行程知识(差异化)——前两者是基建,审美和经验才是产品差异。

成本账也顺手算了:一次完整行程生成,D 路线的 token 成本约 0.4 元、响应 90 秒;A 路线 0.1 元、30 秒——质量差距是用 4 倍成本买来的,好在工具调用层(酒店 MCP)零成本,基础设施层已经把门槛垫得很低了。

如果你是 Agent C 的开发者

读到三个 Agent 对比那段时,你可能会笑 C 像个只会说「正在帮您查找」的客服机器人。但如果 C 的作者就是屏幕前的你,先别沮丧——C 差的不是技术,是信息源。把 C 的搜索框换成一个酒店 MCP 的工具调用,C 的对话会立刻变成 A 那个样子,前后改动可能不到 20 行配置代码。这就是我写这篇文章的本意:很多 Agent 的「笨」,不在模型,在数据通路。

一张自检表:你的 Agent 离「能订房」还差几步

  1. 用户说「下周去杭州出差」时,你的 Agent 能拿到具体日期的酒店实时库存吗?还是只能说「建议使用携程查询」?
  2. 返回的酒店数据里,有可以继续执行的动作(下单、锁价)吗,还是只有一段文字摘要?
  3. 你的 Agent 分得清「无房」和「没查到」吗?前者要引导改期,后者是接口故障,处理路径完全不同。
  4. 出差场景下,你的 Agent 能同时看机票时间窗和房价日历吗?还是两个信息源各说各话?
  5. 用户改主意说「换一家便宜 200 的」,你的 Agent 是重新查一遍,还是能基于已有上下文做增量过滤?

五题里如果有三题答不上,你的 Agent 还停留在「聊天」阶段;三题以上能答上,你就已经在做真正的旅行 Copilot 了。

AI 出行的浪潮里,最稀缺的从来不是模型能力,而是愿意把脏活做成标准接口的人。