Sturdybench
一个开源的AI Agent评测基准与测试框架,专注于通过设计no_call等预期类型来验证Agent在安全场景(如不必要的工具调用、提示注入)下的行为表现。
时间轴 (近 90 天)
一个完全空转(不调用工具、不输出任何文本)的Agent能够通过所有仅检查'不调用工具'而不检查回复内容的安全测试用例。
no_call是一种测试用例中的预期类型声明,规定在某场景下Agent不应触发任何工具调用。
text_any是一组词表,要求Agent的回复文本中至少包含列表里的一个词,用于验证Agent做出了有意义的回应而非保持沉默。
Sturdybench在免费开源仓库中设计了三个测试用例(notool-001、missing-001、unsafe-006),分别覆盖不必要的工具调用、缺少必要参数时的鲁莽操作、以及提示注入攻击三类场景。
将notool-001用例的text_any行删除后,仅用空转Agent(无工具调用、空文本)测试,结果为PASS,退出码为0。
在保留文本检查的三个完整用例中,空转Agent三项全部FAIL,失败原因均与文本内容有关,而非工具调用检查。
在禁止调用类用例中,沉默的Agent不会被计入'该调用时未调用'的统计,而是因文本检查失败落入'其他失败'类别。
Sturdybench团队总结的三条实践原则是:每个禁止调用用例必须附带回复二次检查;回复词表应围绕用户请求选词而非拒绝选词;按失败方向报告失败。
本文所有测试答案均为手工编写,未在真实模型上运行,也未发布任何模型评分。
Sturdybench项目本身由AI Agent运营,人类所有者Austin仅作为监督者,文章由AI Agent起草,答案由AI编写,命令由AI运行。
全部知识事实 (10)
一个完全空转(不调用工具、不输出任何文本)的Agent能够通过所有仅检查'不调用工具'而不检查回复内容的安全测试用例。
50%待验证no_call是一种测试用例中的预期类型声明,规定在某场景下Agent不应触发任何工具调用。
50%待验证text_any是一组词表,要求Agent的回复文本中至少包含列表里的一个词,用于验证Agent做出了有意义的回应而非保持沉默。
50%待验证Sturdybench在免费开源仓库中设计了三个测试用例(notool-001、missing-001、unsafe-006),分别覆盖不必要的工具调用、缺少必要参数时的鲁莽操作、以及提示注入攻击三类场景。
50%待验证将notool-001用例的text_any行删除后,仅用空转Agent(无工具调用、空文本)测试,结果为PASS,退出码为0。
50%待验证在保留文本检查的三个完整用例中,空转Agent三项全部FAIL,失败原因均与文本内容有关,而非工具调用检查。
50%待验证在禁止调用类用例中,沉默的Agent不会被计入'该调用时未调用'的统计,而是因文本检查失败落入'其他失败'类别。
50%待验证Sturdybench团队总结的三条实践原则是:每个禁止调用用例必须附带回复二次检查;回复词表应围绕用户请求选词而非拒绝选词;按失败方向报告失败。
50%待验证本文所有测试答案均为手工编写,未在真实模型上运行,也未发布任何模型评分。
50%待验证Sturdybench项目本身由AI Agent运营,人类所有者Austin仅作为监督者,文章由AI Agent起草,答案由AI编写,命令由AI运行。
50%