ToolFuzz -- Automated Agent Tool Testing
作者: Ivan Milev, Mislav Balunović, Maximilian Baader, Martin Vechev
分类: cs.AI, cs.SE
发布日期: 2025-03-06 (更新: 2025-03-11)
💡 一句话要点
ToolFuzz:自动化测试Agent工具文档,提升LLM Agent可靠性
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: LLM Agent 工具测试 自动化测试 模糊测试 自然语言处理
📋 核心要点
- 现有Agent工具文档质量参差不齐,存在过度、不足或不明确的规范,导致Agent性能下降,缺乏有效的自动化测试手段。
- ToolFuzz通过生成大量多样化的自然语言输入,模拟用户查询,从而触发工具运行时错误或Agent响应错误,实现自动化测试。
- 实验表明,ToolFuzz在发现工具文档错误方面显著优于提示工程方法,能够有效提升Agent的可靠性。
📝 摘要(中文)
大型语言模型(LLM) Agent利用LLM的先进推理能力来解决现实世界的应用。为了与环境交互,这些Agent通常依赖于工具,例如网络搜索或数据库API。由于Agent向LLM提供工具文档以及用户查询,因此该文档的完整性和正确性至关重要。然而,工具文档通常存在过度、不足或不明确的规范,从而影响Agent的准确性。标准的软件测试方法难以识别这些以自然语言表达的错误。因此,尽管其重要性,但目前还没有自动化的方法来测试Agent的工具文档。为了解决这个问题,我们提出了ToolFuzz,这是第一个用于自动化测试工具文档的方法。ToolFuzz旨在发现两种类型的错误:(1)导致工具运行时错误的用户查询,以及(2)导致Agent响应不正确的用户查询。ToolFuzz可以生成大量且多样化的自然输入,有效地以低误报率发现工具描述错误。此外,我们提出了两种直接的提示工程方法。我们在32个常见的LangChain工具和35个新创建的自定义工具以及2个新的基准上评估了所有三种工具测试方法,以进一步加强评估。我们发现许多公开可用的工具都存在规范不足的问题。具体来说,我们表明ToolFuzz识别出的错误输入比提示工程方法多20倍,使其成为构建可靠AI Agent的关键组成部分。
🔬 方法详解
问题定义:论文旨在解决LLM Agent中工具文档测试的自动化问题。现有方法,如人工测试或提示工程,效率低、覆盖率有限,无法有效检测工具文档中的错误,例如参数类型不匹配、缺失必要信息等,导致Agent在实际应用中出现错误。
核心思路:ToolFuzz的核心思路是模糊测试(Fuzzing),即通过生成大量随机或半随机的输入,来触发程序中的错误。不同于传统的软件Fuzzing,ToolFuzz针对自然语言描述的工具文档,生成自然语言形式的测试用例,并监控Agent的执行过程,检测潜在的错误。
技术框架:ToolFuzz的整体框架包含以下几个主要模块:1) 输入生成器:负责生成大量多样化的自然语言输入,模拟用户查询。2) Agent执行器:将生成的输入提交给Agent,并监控Agent的执行过程。3) 错误检测器:分析Agent的执行结果,判断是否存在错误,例如工具运行时错误或Agent响应错误。4) 报告生成器:将检测到的错误信息整理成报告,方便开发者进行调试。
关键创新:ToolFuzz的关键创新在于其针对自然语言描述的工具文档,设计了有效的输入生成策略和错误检测方法。它能够自动生成大量多样化的测试用例,并以低误报率发现工具文档中的错误,显著提高了测试效率和覆盖率。与传统的软件测试方法相比,ToolFuzz更适合于测试LLM Agent的工具文档。
关键设计:ToolFuzz的输入生成器采用了多种策略,包括基于语法的生成、基于模板的生成和基于变异的生成。错误检测器则通过监控Agent的执行日志、分析Agent的响应内容等方式,来判断是否存在错误。此外,ToolFuzz还提供了一些配置选项,例如输入生成数量、错误检测阈值等,方便用户根据实际情况进行调整。
🖼️ 关键图片
📊 实验亮点
ToolFuzz在32个常见的LangChain工具和35个新创建的自定义工具上进行了评估,并与提示工程方法进行了对比。实验结果表明,ToolFuzz识别出的错误输入比提示工程方法多20倍,证明了其在发现工具文档错误方面的显著优势。此外,ToolFuzz还能够以低误报率检测到各种类型的错误,例如参数类型不匹配、缺失必要信息等。
🎯 应用场景
ToolFuzz可应用于各种基于LLM Agent的应用场景,例如智能客服、自动化运维、智能家居等。通过自动化测试工具文档,可以有效提高Agent的可靠性和安全性,降低维护成本,提升用户体验。该研究对于推动LLM Agent的广泛应用具有重要意义。
📄 摘要(原文)
Large Language Model (LLM) Agents leverage the advanced reasoning capabilities of LLMs in real-world applications. To interface with an environment, these agents often rely on tools, such as web search or database APIs. As the agent provides the LLM with tool documentation along the user query, the completeness and correctness of this documentation is critical. However, tool documentation is often over-, under-, or ill-specified, impeding the agent's accuracy. Standard software testing approaches struggle to identify these errors as they are expressed in natural language. Thus, despite its importance, there currently exists no automated method to test the tool documentation for agents. To address this issue, we present ToolFuzz, the first method for automated testing of tool documentations. ToolFuzz is designed to discover two types of errors: (1) user queries leading to tool runtime errors and (2) user queries that lead to incorrect agent responses. ToolFuzz can generate a large and diverse set of natural inputs, effectively finding tool description errors at a low false positive rate. Further, we present two straightforward prompt-engineering approaches. We evaluate all three tool testing approaches on 32 common LangChain tools and 35 newly created custom tools and 2 novel benchmarks to further strengthen the assessment. We find that many publicly available tools suffer from underspecification. Specifically, we show that ToolFuzz identifies 20x more erroneous inputs compared to the prompt-engineering approaches, making it a key component for building reliable AI agents.