引言
近年来,像 GPT-4 和 LLaMA 这样的大语言模型 (LLM) 已经从简单的聊天机器人升级为“智能体 (Agents) ”。它们不仅能说话,还能行动。通过工具学习 (Tool Learning) , 这些模型可以通过调用外部 API (应用程序编程接口) 与物理和数字世界互动——例如查询天气、预订航班或查询数据库。
该领域的大多数研究都假设了一个完美的世界。在这些理想化的基准测试中,API 工具的命名合乎逻辑 (例如 Get_Weather) ,参数定义清晰,文档也一尘不染。但任何做过软件工程的人都知道,真实世界很少如此整洁。现实系统是混乱的。它们包含遗留代码、拼写错误、晦涩的命名规范 (例如 func_01_a) 以及冗余参数。
当最先进的 LLM 遇到这种“噪声”时会发生什么?
这正是论文 《RoTBench: A Multi-Level Benchmark for Evaluating the Robustness of Large Language Models in Tool Learning》 背后的核心问题。作者探讨了一个关键的脆弱点: 虽然 LLM 在结构化环境中擅长使用工具,但当面对现实世界不可避免的噪声时,它们的表现会崩溃。

如图 1 所示,LLM 可能完美地利用了一个名为 Get_Weather 的工具。但如果同一个工具被命名为 ABC (这种情况在混淆或命名糟糕的代码库中很常见) ,即使功能完全相同,模型也无法识别它。
在这篇文章中,我们将剖析 RoTBench 框架,分析为什么即使是像 GPT-4 这样最强大的模型也会在噪声面前挣扎,并介绍 RoTTuning , 这是一种旨在构建鲁棒、抗噪智能体的新颖训练策略。
背景: 工具学习的脆弱性
工具学习赋予了 LLM 扩展其能力的机会。模型不再仅仅依赖内部知识,而是获得了一份“工具” (函数描述) 列表。当用户提出问题时,模型必须:
- 选择 (Select) 正确的工具。
- 识别 (Identify) 该工具所需的参数。
- 填充 (Fill) 基于用户意图的参数内容。
现有的基准测试 (如 ToolBench 或 API-Bank) 测试了这些步骤,但它们使用的是“干净”的环境。这篇论文的作者认为,鲁棒性 (即在扰动下保持性能的能力) 与准确性同样重要。如果一个 AI 智能体无法处理 API 定义中的拼写错误或乱序的参数列表,那么它就没有准备好进行实际部署。
RoTBench: LLM 的压力测试
为了衡量这种鲁棒性差距,研究人员创建了 RoTBench 。 这是一个多级基准测试,系统地将不同类型的“噪声”注入工具环境,以观察模型的应对情况。
该基准测试定义了五个不同的环境,从完美到混乱。

如图 2 所示,这些环境分类如下:
- Clean Level (清洁级) : 基准线。工具名称与其功能匹配 (例如
cat_breed) ,参数清晰。这模仿了标准的基准测试。 - Slight Level (轻微级) : 模拟人类输入或匆忙编码中常见的拼写错误。
- *插入 (Insertion): *
cat_breed变为cat_t_breeds。 - *遗漏 (Omission): *
cat_breed变为c_at_breed。 - *替换 (Substitution): *
cat_breed变为bat_breo_d。
- Medium Level (中等级) : 引入更显著的结构性噪声。
- *反转 (Reversal): *
dog_breed变为deerb_god。 - 无意义 (Nonsense): * 名称被替换为随机字符串,如
abcDF。这测试模型是否阅读描述而不是仅依赖名称*。
- Heavy Level (重度级) : 复杂的结构变化。
- *交换 (Exchange): * 参数角色可能被交换或打乱。
- *增补 (Addendum): * 添加随机的、强制性的参数,要求模型推断值或使用占位符。
- Union Level (联合级) : 终极压力测试。它同时结合了上述所有噪声类型。
失败的三个阶段
作者不仅关注最终输出,还分析了模型在何处失败。他们将评估分解为三个阶段:
- 工具选择 (Tool Selection, \(s_{TS}\)) : 模型是否选择了正确的函数?

- 参数识别 (Parameter Identification, \(s_{PI}\)) : 模型是否识别出了哪些参数是必需的?

- 内容填充 (Content Filling, \(s_{CF}\)) : 模型是否从用户提示中提取了正确的值来填充这些参数?

通过隔离这些阶段,研究人员可以查明模型失败是因为找不到工具,还是因为无法正确格式化参数。
实验与分析
研究人员测试了六个模型: 四个开源模型 (ToolLLaMA 和 NexusRaven 的版本) 和两个闭源模型 (GPT-3.5-turbo 和 GPT-4) 。结果令人震惊。
1. 鲁棒性是一个主要弱点
虽然人类评估者无论噪声如何都能保持高性能 (表明任务是可解的) ,但 LLM 的性能却迅速下降。

图 3 展示了性能下降 (清洁环境与噪声环境之间的“差值”) 。你可以看到,当工具名称存在噪声时, 工具选择 (Tool Selection) (左侧组) 遭受了巨大打击。如果一个 API 名为 Get_Weather,模型能找到它。如果它被命名为 x_99_z,模型通常会忽略它,即使描述中明确写着“返回天气数据”。
2. GPT 悖论: 聪明反被聪明误
论文中最迷人的发现之一涉及 Slight (轻微) 噪声级别。逻辑上讲,“轻微”噪声 (拼写错误) 应该比“中等”噪声 (无意义字符串) 更容易处理。然而,GPT 系列模型在某些情况下实际上在轻微噪声上的表现比在中等噪声上更差 。
为什么?因为 GPT 模型被训练成能够纠正用户错误的乐于助人的助手。
当 GPT-4 看到一个名为 predOict_aTge (predict_age 的噪声版本) 的工具时,它假设用户打错了字。它会“纠正”噪声并尝试调用函数 predict_age。然而,在编程环境中, 准确性至关重要 。 API 实际上注册为 predOict_aTge。通过“修复”名称,GPT-4 调用了一个不存在的函数,导致执行失败。

表 13 展示了这种现象。当工具定义为 predOict_aTge 时,GPT-3.5 输出 predict_age,导致系统错误。这种“噪声纠正”能力通常是自然对话中的优势,但在严格的工具使用中却变成了劣势。
3. 训练示例无法修复鲁棒性
研究人员试图通过向 GPT-4 提供以前的交互示例 (少样本学习) 来解决这个问题。

如图 4 所示,虽然提供示例 (第三轮,Third Turn) 提高了平均性能 (形状变大) ,但也增加了方差 (标准差) 。模型整体变好了,但在不同噪声水平下仍然不稳定。少样本提示不足以解决鲁棒性问题。
解决方案: RoTTuning
认识到固有的模型能力和标准提示是不够的,作者提出了一种名为 RoTTuning 的新训练策略。目标是在训练阶段模拟现实世界的混乱,本质上是为模型接种抗噪疫苗。
RoTTuning 过程包括四个阶段:

第一阶段: 查询扩展 (Query Expansion)
利用一小部分种子数据,他们使用 GPT-4 生成了数千个新的、多样化的用户查询。这确保了模型能看到各种各样的请求,而不仅仅是标准的“天气怎么样?”这类问题。
第二阶段: 轨迹生成 (Trajectory Generation)
他们将这些查询输入 GPT-4 (使用清洁环境) ,以生成正确的“思维-行动”轨迹。这创建了一个关于模型应该如何思考和行动以使用工具解决问题的“黄金数据集”。
第三阶段: 环境增强 (Environment Augmentation)
这是关键的一步。他们没有仅在清洁数据上进行训练,而是获取了“黄金”轨迹并人为注入噪声。他们重写了训练数据中的工具定义,以模仿 Slight、Medium 和 Heavy 环境。
- *示例: * 如果原始训练数据有一个工具
search_news,增强数据可能会将其重命名为s_ear_ch_new_s,但保持正确的逻辑用法。
第四阶段: 泛化训练 (Generalizability Training)
最后,他们使用 LoRA (低秩自适应) 微调 LLaMA-2-7B 模型。这允许模型适应这些噪声模式,而不会覆盖其所有的原始知识。
结果: 一个更鲁棒的模型
最终得到的模型名为 RoTLLaMA , 其稳定性甚至明显优于 GPT-4。

图 6 将 RoTLLaMA (蓝色柱状图) 与未进行增强或 LoRA 的版本进行了比较。
- 性能: RoTLLaMA 在工具选择、参数识别和内容填充方面均取得了最高分。
- 稳定性: 标准差 (误差棒) 更小,这意味着无论环境是整洁还是混乱,模型的表现都一致。

表 5 详细列出了具体分数。虽然随着噪声增加,绝对性能略有下降 (这是预期的) ,但与标准模型相比,下降幅度要平滑得多。最重要的是,RoTLLaMA 学会了信任函数描述而非函数名称,有效地克服了模型幻觉般纠正名称的“GPT 悖论”。
结论
从“聊天机器人”到“智能体”的转变依赖于可靠地使用工具的能力。 RoTBench 论文强调了当前 LLM 开发中的一个重大盲点: 模型是脆弱的。API 定义中的一个拼写错误或遗留的命名规范就能破坏一个价值数百万美元的模型。
这项研究的关键结论是:
- 鲁棒性不是与生俱来的: 高推理能力 (如 GPT-4) 并不能保证对结构性噪声的鲁棒性。
- 乐于助人可能是有害的: LLM “自动纠正”输入的倾向会导致在严格的编程环境中出现故障。
- 多样性是良药: 通过使用 RoTTuning——在故意充满噪声和多样化的环境中进行训练——我们可以构建出能够透过现实世界工具杂乱的语法,专注于其语义效用的模型。
随着我们要迈向与混乱、非结构化的网络进行交互的自主智能体时代,像 RoTBench 这样的基准测试对于确保我们的 AI 助手不仅在实验室中有效,而且在现实世界中也能正常工作至关重要。
](https://deep-paper.org/en/paper/2401.08326/images/cover.png)