返回评测
Agent Agent-工具调用 未饱和 模态 · 文本 任务 · 规划

TravelPlanner

1,225 个带多重约束的旅行规划任务,模型必须调用工具查真实信息,并在预算、时间、偏好等硬约束下产出可执行方案

多校联合(TravelPlanner 团队) ·

考察能力

多步规划 工具调用 约束满足 信息检索整合

构建信息

数据规模
1,225 个规划任务(含 80 个测试集人工校验)
构建方式
基于真实航班/住宿/景点/餐饮数据库构建沙盒环境,给定出发地、目的地、天数、预算与偏好约束
评测方式
约束满足检查 + 参考答案比对(常识 / 硬约束 / 交付物三层)
核心指标
Delivery Rate / Common Sense / Hard Constraint Pass Rate

为什么重要

「帮我规划一次旅行」是 Agent 最典型的卖点场景,也是最容易糊弄的场景——模型可以生成一份看起来很合理的行程,但航班号是编的、预算超了、景点当天闭馆。TravelPlanner 的价值就在于把这件事变成可判分的:它提供一个带真实数据的沙盒环境,模型必须真的去查航班、查住宿、算预算,然后交出一份能被逐条校验的方案。

它的评分分三层,这个设计很值得注意:交付率(有没有交出完整方案)、常识约束(路线是否合理、时间是否冲突)、硬约束(预算、天数、偏好是否违反)。很多 Agent 基准只测「任务完成没」,TravelPlanner 把「完成得对不对」拆成可诊断的层次——模型失败时能看出是卡在工具调用、还是卡在约束满足、还是干脆没交。

对数据侧的意义:这类带可执行环境的规划任务是训练 Agent 的高质量数据来源,因为每个失败的轨迹都能定位到具体环节。相比纯对话式的偏好数据,它提供的是「过程可验证」的监督信号。

构建方式

  1. 构建一个包含真实航班、住宿、景点、餐厅与交通方式的数据库作为沙盒环境
  2. 为每个任务指定:出发地、目的地、起止日期、预算上限、人数、偏好(如「不吃辣」「想多逛博物馆」)
  3. 提供 8 种工具供模型调用(查询航班、查询住宿、查询景点、查询餐厅、计算距离、查询天气等)
  4. 由人工为部分测试任务标注参考答案
  5. 评分分三层:
    • Delivery:是否提交了符合格式的完整计划
    • Common Sense:路线是否连贯、时间是否冲突、是否重复 Visit
    • Hard Constraint:预算是否超支、住宿是否覆盖全程、是否违反明确偏好

任务示例

请为我规划一次从北京出发到成都的 3 天旅行,预算 5000 元,2 人同行,偏好川菜、希望每天至少参观一个博物馆。请给出具体航班、住宿、每日行程与预算明细。

模型需要:调用航班查询工具找到符合日期与预算的航班 → 查询住宿并确认覆盖 3 晚 → 查询博物馆开放时间排入行程 → 累加所有花费确认不超 5000 → 输出结构化计划。

任一环节出错都会在对应层被判定失败——比如预算算错会在 Hard Constraint 层挂掉,行程时间冲突会在 Common Sense 层挂掉。

最新进展

  • 发布时的基线显示:即便是最强的模型,端到端的完整交付率也很低,多数失败来自约束满足而非工具调用
  • 后续工作发现:给模型更明确的「分步 checklist」提示,或在工具返回中提供更结构化的信息,能明显改善成绩
  • 它推动了一批「带沙盒环境的规划类基准」出现,把 Agent 评测从「能不能调用工具」推向「能不能在约束下完成多步决策」

关键发现

  • 工具调用不是瓶颈,约束满足才是:模型大多能查到信息,但在多约束同时满足上容易顾此失彼
  • 三层评分提供可诊断性:失败可以归因到交付 / 常识 / 硬约束,便于针对性改进
  • 沙盒环境是高质量数据来源:可执行的失败轨迹比对话偏好数据更能指导 Agent 训练
  • 规划长度是难度放大器:天数越多、约束越密,性能衰减越快
Agent 规划 工具调用 约束满足 沙盒环境