基于检查清单的代码生成评测,评估 Code Agent 的端到端代码生成能力。
checklist_eval/ ├── configs/ # 配置(提示词、参数等) ├── data/ # 数据模型定义 ├── generator/ # 评测题生成、代码生成 ├── evaluator/ # Checklist 评测 Agent ├── report/ # 结果汇总统计 ├── examples/ # 示例脚本和数据 └── run_eval.py # 主评测入口
评测题(requirement + checklist) → Code Agent 生成代码 → Checklist Agent 逐项验证 → 输出评测报告
cd evaluation/agent
# 完整评测(代码生成 + checklist 验证)
python -m checklist_eval.run_eval \
--questions_file checklist_eval/examples/demo_data/generated_questions_by_category.json \
--output_dir /path/to/output \
--eval_concurrency 5
注意:可使用
--skip_code_gen跳过代码生成阶段,仅评测已有代码;可使用--only_unknown只重新评测 unknown 状态的检查点。
| 参数 | 必填 | 默认值 | 说明 |
|---|---|---|---|
--questions_file | 是 | - | 评测题文件路径(JSON 格式) |
--output_dir | 是 | - | 输出目录 |
--num_questions | 否 | 全部 | 评测题目数量 |
--start_index | 否 | 0 | 起始题目索引 |
--code_gen_timeout | 否 | 1800 | 代码生成超时(秒) |
--code_gen_concurrency | 否 | 1 | 代码生成并发数 |
--eval_concurrency | 否 | 1 | 评测并发数 |
--eval_max_iterations | 否 | 30 | 评测 Agent 最大迭代次数 |
--skip_code_gen | 否 | False | 跳过代码生成阶段 |
--only_unknown | 否 | False | 只重新评测 unknown 状态的检查点 |
python -m checklist_eval.examples.generate_questions \ --categories_file checklist_eval/examples/demo_data/task_categories.json \ --output_file checklist_eval/examples/demo_data/output.json
python -m checklist_eval.examples.generate_code \
--requirement "写一个计算器程序" \
--target_path /tmp/calculator
python -m checklist_eval.examples.evaluate_repo \ --repo_path /tmp/my_repo \ --question_file checklist_eval/examples/demo_data/generated_questions_by_category.json \ --question_index 0
$output_dir/ ├── task_000/ # 单个任务目录 │ ├── (生成的代码文件) │ └── eval_result.json # 评测结果 ├── task_001/ │ └── ... ├── evaluation_summary_*.json # 汇总报告 └── logs/ # 日志目录
| 指标 | 说明 |
|---|---|
pass_rate | 检查点通过率,核心指标 |
passed_checkpoints | 通过的检查点数 |
failed_checkpoints | 失败的检查点数 |
unknown_checkpoints | 无法判定的检查点数 |
在 agent/.env 中配置:
# LLM API 密钥(用于评测)
COPILOT_API_KEY=your_api_key
# 可选:指定评测使用的模型
COPILOT_MODEL=claude-4.5-codewise
# Code Generator 配置(CODE_GEN_BASE_URL 必须配置)
CODE_GEN_MODEL_ID=Qwen3-32B
CODE_GEN_BASE_URL=http://your-server:port/v1/
代码生成功能依赖 agent-server:
npm install -g @tencent-ai/agent-server cross-env