第五章:Benchmark Framework
Chapter 5: Benchmark Framework
从交响乐团到体检中心:如何科学评估代理的“健康状态”?
在上一章任务工作流编排,我们学会了如何让代理像指挥家一样管理复杂任务。但就像运动员需要定期体检一样,我们需要一个基准测试框架来科学评估代理的“健康状态”——它的执行效率、准确性、稳定性如何?
核心使命:代理的“体检中心”
想象你的助手已经能生成销售报告,但你希望验证:
- 它能否在10秒内完成文件保存?
- 它是否能正确识别用户指令中的关键词?
- 它是否会因复杂任务而崩溃?
基准测试框架就像为代理设计的“体检套餐”:
✅ 自动执行预定义测试用例
✅ 分类统计测试结果(如速度、准确性)
✅ 生成直观的报告对比不同代理性能
关键概念拆解:测试的三要素
1. 测试分类(Categories)
作用:将测试用例分组管理,像医院科室一样
示例:
code
:代码生成能力测试safety
:安全性漏洞检测memory
:记忆系统稳定性测试
./run benchmark categories list
输出示例:
可用分类:📚📖 code📖 safety📖 memory...(更多分类)
2. 测试用例(Tests)
作用:具体的“体检项目”
示例:# 测试文件写入能力的用例 class TestWriteFile:def run(self):# 验证代理能否在5秒内写入指定内容return "Washington" in file_content
通过命令查看所有测试:
./run benchmark tests list
输出示例:
可用测试:📚📖 interface🔬 搜索测试 - TestSearch🔬 文件写入测试 - TestWriteFile...(其他测试)
3. 结果分析(Analysis)
作用:像体检报告一样展示关键指标
示例输出:============== 13 failed, 1 passed in 0.97s ============ ✅ 文件写入测试(耗时0.2s) ❌ 搜索测试(未找到关键词)
实战演练:为代理做“体检”
目标:测试代理的基本能力
我们将验证代理能否:
- 正确响应简单指令
- 在规定时间内完成任务
步骤1:运行完整体检
./run benchmark start MyFirstAgent
输出示例:
🚀 正在为代理 'MyFirstAgent' 运行基准测试...
✅ 文件写入测试(0.2秒)
❌ 搜索测试(未找到关键词)
...(更多测试结果)
步骤2:查看单个测试详情
./run benchmark tests details TestSearch
输出示例:
TestSearch
----------分类: interface任务: 在互联网上搜索“人工智能最新进展”并返回前3个结果依赖项: 网络连接评判标准:🔍 必须包含“Transformer模型”关键词🔍 不得包含过时的2018年论文
内部运作:测试如何“自动体检”?
以文件写入测试为例,流程如下:
关键代码片段(来自benchmark_tests_list
函数)
# 遍历所有测试用例的JSON配置文件
for data_file in glob.glob(glob_path, recursive=True):with open(data_file, "r") as f:data = json.load(f)category = data.get("category") # 获取分类信息test_name = data.get("name") # 获取测试名称tests[category].append(test_name)
扩展应用:按需定制测试套餐
场景:仅测试代理的文件操作能力
# 过滤运行指定分类的测试
./run benchmark start MyFirstAgent --category file_ops
总结与展望
通过本章,你已掌握:
✅ 通过CLI运行和管理基准测试
✅ 理解测试分类、用例和结果分析机制
下一章我们将学习如何让代理适应不同存储环境——多后端配置,带你解锁代理在云端与本地间的无缝切换!