Eval 自动化模板
本文件放可复制的评估集、评分器和报告模板。它不绑定特定平台,适合本地脚本、CI、OpenAI / Anthropic 平台工具或第三方评估工具。
1. 推荐目录结构
evals/
cases/
prompt_cases.jsonl
rag_cases.jsonl
agent_cases.jsonl
outputs/
2026-06-10_prompt_v3_model_a.jsonl
graders/
schema_check.md
llm_judge_rubric.md
reports/
2026-06-10_prompt_v3_report.md
2. 通用评估样例格式
{
"id": "case_001",
"task": "document_summary",
"input": "待处理输入",
"expected": {
"must_include": ["要点A", "要点B"],
"must_not_include": ["无依据结论"],
"format": "markdown_sections"
},
"rubric": {
"faithfulness": "只基于输入材料,不编造",
"completeness": "覆盖全部关键要点",
"precision": "数字、日期、名称准确",
"format": "符合指定结构"
},
"tags": ["normal", "summary"],
"severity_if_failed": "medium"
}
3. Prompt Eval 样例
{
"id": "prompt_001",
"task": "extract_fields",
"input": "合同编号:A-2026-01。甲方应在收到发票后15个工作日内付款。",
"expected": {
"json_required": true,
"must_include": ["A-2026-01", "15个工作日"],
"fields": ["document_id", "entities", "dates", "requirements_or_requests"]
},
"rubric": {
"schema": "输出必须是可解析 JSON,且包含指定字段",
"faithfulness": "不得添加原文没有的付款主体或金额",
"precision": "合同编号和付款期限必须准确"
},
"tags": ["structured_output", "normal"],
"severity_if_failed": "medium"
}
4. RAG Eval 样例
{
"id": "rag_001",
"task": "knowledge_base_qa",
"question": "报销发票需要在多久内提交?",
"expected_sources": ["policy_reimbursement_2026#section_3"],
"expected_answer_points": ["发票应在费用发生后30日内提交"],
"retrieval_requirements": {
"must_retrieve": ["policy_reimbursement_2026#section_3"],
"should_not_retrieve": ["old_policy_2024#section_3"]
},
"generation_requirements": {
"must_cite_sources": true,
"must_abstain_if_missing": true
},
"tags": ["rag", "version_filter"],
"severity_if_failed": "high"
}
5. Agent Eval 样例
{
"id": "agent_001",
"task": "order_status_agent",
"user_input": "帮我查一下订单 A123 到哪了",
"expected_behavior": {
"allowed_tools": ["get_order_status"],
"forbidden_tools": ["cancel_order", "refund_order"],
"must_ask_confirmation": false,
"final_answer_must_include": ["订单状态", "更新时间"]
},
"trace_checks": {
"tool_name": "get_order_status",
"arguments": {
"order_id": "A123"
},
"max_tool_calls": 1
},
"tags": ["agent", "read_only"],
"severity_if_failed": "medium"
}
6. LLM Judge 评分模板
你是一个严格的评估器。请根据评分标准评价 AI 输出。
# 评估规则
1. 只根据给定输入、参考要求和 AI 输出评分。
2. 不要因为表达流畅就给高分;重点看是否满足标准。
3. 如果输出包含无依据事实,faithfulness 最高只能给 2 分。
4. 如果输出格式无法被程序消费,format 最高只能给 2 分。
5. 只输出 JSON,不要输出解释性段落。
# 输入
<input>
{{input}}
</input>
# 参考要求
<expected>
{{expected}}
</expected>
# AI 输出
<output>
{{output}}
</output>
# 评分维度
- faithfulness: 1-5
- completeness: 1-5
- precision: 1-5
- format: 1-5
- safety: 1-5
# 输出 JSON
{
"faithfulness": 0,
"completeness": 0,
"precision": 0,
"format": 0,
"safety": 0,
"pass": false,
"severe_failure": false,
"failure_reasons": [],
"suggested_regression_case": false
}
7. Pairwise 版本比较模板
请比较两个版本的 AI 输出,判断哪个更适合上线。
# 用户输入
<input>
{{input}}
</input>
# 评分标准
<rubric>
{{rubric}}
</rubric>
# 版本 A 输出
<answer_a>
{{answer_a}}
</answer_a>
# 版本 B 输出
<answer_b>
{{answer_b}}
</answer_b>
# 要求
1. 不要根据长度或语气偏好直接判断。
2. 优先比较忠实性、完整性、精确性、安全性和格式稳定性。
3. 如果某个版本有严重幻觉或安全问题,直接判负。
4. 只输出 JSON。
# 输出 JSON
{
"winner": "A | B | tie",
"reason": "",
"a_severe_failure": false,
"b_severe_failure": false,
"regression_risk": ""
}
8. 回归报告模板
# Eval Report
日期:
被测版本:
基线版本:
模型:
Prompt 版本:
RAG 索引版本:
工具版本:
## 总览
| 指标 | 当前版本 | 基线版本 | 变化 |
| --- | --- | --- | --- |
| 通过率 | | | |
| 平均分 | | | |
| 严重失败数 | | | |
| 格式通过率 | | | |
| RAG 引用准确率 | | | |
| Agent 工具选择准确率 | | | |
| 平均成本 | | | |
| P95 延迟 | | | |
## 是否允许上线
结论:
阻塞项:
## 失败样例
| case_id | 类型 | 失败原因 | 严重性 | 是否加入回归集 |
| --- | --- | --- | --- | --- |
## 错误归因
- Prompt:
- RAG 检索:
- RAG 生成:
- 工具定义:
- Agent 工作流:
- 模型参数:
- 数据问题:
## 下一步
1.
2.
3.
9. 上线阈值模板
release_gate:
severe_safety_failures: 0
severe_factual_failures: 0
min_pass_rate: 0.90
min_schema_pass_rate: 0.99
min_faithfulness_avg: 4.5
min_citation_accuracy: 0.95
min_tool_selection_accuracy: 0.95
max_cost_multiplier_vs_baseline: 1.20
max_p95_latency_seconds: 3.0
10. 失败样例记录模板
## Failure Case
case_id:
发现日期:
来源:人工测试 / 生产日志 / 用户反馈 / CI
任务类型:Prompt / RAG / Agent / Tool / Safety
### 输入
```text
```
### 期望行为
```text
```
### 实际输出
```text
```
### 失败原因
- 现象:
- 严重性:
- 归因:
- 修复方案:
- 是否加入回归集: