基准评测
wescode 内置完整的基准评测系统,通过 wescode run 和 wescode bench 命令评估 AI 编程能力。
两种运行模式
wescode run(单次运行)
等价于 claude -p / cursor-cli --prompt——单次无头运行:
bin/wescode run "修复这个 bug" --workdir /path/to/repo
走完整产品链路(同一个 engine.RunChat),与 VSCode RPC 模式共享引擎栈。
wescode bench(批量评测)
批量运行题库并生成报告:
bin/wescode bench \
--dataset ./tests/bench/swebench-100 \
--runs 1 \
--verbose \
--output ./results/report.json \
--predictions ./results/predictions.jsonl
数据集
自建题库(100 题)
位于 wesgine.git/tests/bench/agent/dataset/:
| 类别 | 题数 | 测试范围 |
|---|---|---|
| SWE | 30 | 软件工程(修 bug、加功能) |
| Terminal | 30 | 终端操作(文件、环境) |
| QnA | 40 | 问答(代码理解、解释) |
SWE-bench Verified(500 题)
位于 tests/bench/swebench/——来自真实开源 Python 项目的 500 道验证题。
bin/wescode bench \
--dataset tests/bench/swebench/ \
--predictions ./results/predictions.jsonl
--predictions 输出 JSONL,可直接喂给官方 swebench.harness.run_evaluation 做验证。
单题调试
bin/wescode bench --case swe-001 --runs 1 --verbose
BenchMode
wescode bench 自动设置 BenchMode=true:
| 功能 | bench 模式 | 正常模式 |
|---|---|---|
| QualityGate L2 | 禁用 | 启用 |
| EditPatrol | 禁用 | 启用 |
| 验证 | bench 自带 verify_cmd | 引擎 QualityGate |
wescode run 走完整产品链路(不设 BenchMode)。
评测报告
报告格式
{
"dataset": "swebench-100",
"total": 100,
"passed": 72,
"failed": 28,
"pass_rate": 0.72,
"avg_turns": 8.3,
"avg_tokens": 12400,
"results": [...]
}
关键指标
| 指标 | 含义 |
|---|---|
| pass_rate | 通过率 |
| avg_turns | 平均对话轮次 |
| avg_tokens | 平均 token 消耗 |
| avg_time | 平均耗时 |
| tool_usage | 工具使用分布 |
构建与运行
构建
cd backend
go build -o bin/wescode ./cmd/wescode
完整评测
# 自建题库
bin/wescode bench --dataset ../wesgine.git/tests/bench/agent/dataset/ --runs 3
# SWE-bench
bin/wescode bench --dataset tests/bench/swebench/ --runs 1 \
--predictions results/predictions.jsonl
# 验证(需要 Python 环境)
python -m swebench.harness.run_evaluation \
--predictions_path results/predictions.jsonl
注意事项
- bench 模式使用独立的工作目录
- 每道题在独立的临时目录中运行
- 不影响当前工作区的 Cell 数据
- SWE-bench 验证需要 Python 环境和 Docker
- 评测结果可用于模型选择和 prompt 优化