简介:编程Agent评测长期受困于"唯分数论",不同系统的SWE-bench分数因模型、harness、任务集三重变量难以横向比较。Claw-SWE-Bench基准通过解耦harness变量、统一评测流程,首次实现编程Agent能力的精准拆解与量化评估,为开发者提供更科学的评测工具。
在编程Agent评测领域,传统基准(如SWE-bench)存在一个核心缺陷:将模型能力、harness设计、任务集选择三个变量打包评估,导致不同系统的分数难以直接比较。例如,同一模型更换harness后,在SWE-bench上的得分可能波动20%以上,这种差异甚至超过模型迭代的提升幅度。
可独立测量Harness的评测基准通过解耦这三个变量,将harness从”黑盒”变为”可测量组件”。其核心特征包括:
以Claw-SWE-Bench为例,该基准要求所有系统在相同硬件环境下运行,并记录从接收任务到生成解决方案的全流程资源消耗,最终输出包含准确率和运行成本的二维评估报告。
当前编程Agent评测存在三大乱象:
Claw-SWE-Bench的诞生解决了这些痛点:
某研究团队的实际测试显示,使用该基准后,不同系统间的分数差异从原来的30%收敛至12%,更真实反映模型能力差距。
该基准由三大模块构成:
覆盖8种编程语言(Python/Java/C++等),包含:
示例任务结构:
{"repo_url": "https://github.com/apache/commons-lang","issue_id": 1234,"test_cases": [{"input": "str1", "expected": "output1"},{"input": "str2", "expected": "output2"}],"harness_template": "请使用Java实现该功能,并确保通过所有测试用例"}
包含四个关键步骤:
提供标准化接口规范:
class HarnessAdapter:def __init__(self, model_name, max_tokens=2048):self.model = load_model(model_name)self.max_tokens = max_tokensdef generate_solution(self, prompt, tools):# 实现工具调用逻辑passdef handle_timeout(self, context):# 实现超时处理策略pass
通过三重控制机制确保评测公正性:
制定严格的prompt模板规范:
# 任务描述{issue_description}# 代码上下文{code_context}# 工具列表可用工具: {tool_list}每个工具调用格式: {tool_usage_example}# 输出要求请生成完整的代码解决方案,并确保通过所有测试用例
设置双重预算限制:
采用二维评估体系:
| 指标维度 | 计算方式 | 权重 |
|————————|—————————————————-|———|
| 功能正确率 | 通过测试用例数/总用例数 | 60% |
| 资源效率 | 1/(API调用次数×推理时间) | 30% |
| 代码规范性 | 静态分析工具评分 | 10% |
该基准特别适用于以下场景:
| 特性 | Claw-SWE-Bench | 传统SWE-bench |
|---|---|---|
| 变量控制 | 独立测量harness变量 | 变量混合评估 |
| 任务覆盖 | 多语言真实仓库任务 | 侧重Python单语言任务 |
| 资源监控 | 详细记录API调用数据 | 仅关注最终结果 |
| 适配器支持 | 提供标准化接口 | 要求系统自带适配逻辑 |
| 数据质量 | 经过泄露检查 | 存在已知数据污染问题 |
Claw-SWE-Bench通过解耦模型、harness、任务集三重变量,构建了首个科学量化的编程Agent评测体系。其核心价值在于:
该基准的开源(代码与数据均已公开)将推动编程Agent领域从”分数竞赛”转向”能力竞赛”,为开发者提供更可靠的评估工具,为学术研究提供更标准化的实验环境。随着更多系统接入和任务集扩展,这种解耦变量的评测方法有望成为新一代编程Agent评测标准。