这篇教程将展示如何利用n8n的Evaluation节点系统,快速实现AI工作流的智能评估。无需复杂的外部工具,无需繁琐的代码,你将学会用Evaluation节点打造企业级的AI质量保证体系。
想象一个场景:你构建了一个AI任务分类工作流,运行了一段时间后开始出现问题。你调整了提示词、换了模型,但你怎么知道改进是真的有效还是运气好?99%的开发者面临这个困境——没有客观的数据来证明自己的优化是否真的管用。
这正是Evaluation节点的价值所在。Evaluation节点是n8n内置的AI工作流测试框架,它让你能够:

n8n的Evaluation节点提供了三个关键操作,让你能够构建完整的评估流程:
Evaluation Trigger是评估流程的起点,它从Google Sheets或数据表读取测试数据集,并逐行将数据输入到工作流中。
工作原理很简单:
实际配置:
Set Metrics操作用于定义和计算性能指标,它支持多种预置指标和自定义指标:
| 指标名称 | 说明 | 适用场景 |
|---|---|---|
| Correctness(AI-based) | AI评估答案意思是否与参考答案一致,得分1-5 | 判断答案是否正确 |
| Helpfulness(AI-based) | 评估回答是否有用,得分1-5 | 评估客服回复质量 |
| String Similarity | 计算与参考答案的字符相似度,0-1分 | 评估精确匹配度 |
| Categorization | 判断分类是否完全匹配(1=匹配,0=不匹配) | 分类任务评估 |
| Tools Used | 检查是否使用了正确的工具 | 多工具AI代理评估 |
| Custom Metrics | 自定义指标,完全由你控制计算逻辑 | 业务特定的评估需求 |
Set Outputs操作将工作流的评估结果写回到Google Sheets或数据表,保存所有的关键信息用于后续分析。
这样做的好处是:
Check If Evaluating是一个特殊的条件节点,用于判断当前工作流执行是否处于评估模式。
这个节点的妙处在于:
这是一个完整可执行的工作流代码,它实现了一个任务优先级分类系统,并集成了Evaluation节点。你可以直接复制这段JSON代码到n8n中导入。
{
"name": "AI任务优先级分类与评估系统",
"active": true,
"nodes": [
{
"parameters": {
"source": "googleSheets",
"limit": false
},
"id": "Evaluation Trigger",
"name": "Evaluation Trigger",
"type": "n8n-nodes-base.evaluationTrigger",
"typeVersion": 1,
"position": [
250,
300
]
},
{
"parameters": {
"model": "gpt-4o-mini",
"messages": [
{
"role": "system",
"content": "你是一个AI任务分类专家。你需要根据用户提供的任务描述,将其分类为以下优先级之一:紧急、高、中、低。\n\n分类规则:\n- 紧急:系统故障、数据丢失、安全漏洞、客户投诉\n- 高:新功能开发、性能优化、重要bug修复\n- 中:常规改进、代码重构、技术债\n- 低:文档更新、美化UI、研究任务\n\n你的响应必须是ONLY一个单词:紧急、高、中或低"
}
],
"prompt": "任务描述:{{ $json.taskDescription }}\n\n请分类这个任务"
},
"id": "OpenAI Chat Model",
"name": "OpenAI Chat Model",
"type": "n8n-nodes-base.openaiChat",
"typeVersion": 1,
"position": [
450,
300
]
},
{
"parameters": {
"operation": "checkIfEvaluating"
},
"id": "Check If Evaluating",
"name": "Check If Evaluating",
"type": "n8n-nodes-base.evaluation",
"typeVersion": 1,
"position": [
650,
300
]
},
{
"parameters": {
"operation": "setMetrics",
"metrics": [
{
"name": "分类准确性",
"metric": "categorization",
"expectedValue": "={{ $json.expectedPriority }}"
},
{
"name": "自定义质量评分",
"metric": "customMetric",
"value": "={{ $json.quality_score ? $json.quality_score : 3 }}"
}
]
},
"id": "Set Metrics",
"name": "Set Metrics",
"type": "n8n-nodes-base.evaluation",
"typeVersion": 1,
"position": [
850,
200
]
},
{
"parameters": {
"operation": "setOutputs",
"source": "googleSheets",
"outputs": [
{
"name": "分类结果",
"value": "={{ $json.response ? $json.response.trim() : '未分类' }}"
},
{
"name": "处理时间",
"value": "={{ Date.now() - $json.startTime || 0 }}"
}
]
},
"id": "Set Outputs",
"name": "Set Outputs",
"type": "n8n-nodes-base.evaluation",
"typeVersion": 1,
"position": [
850,
400
]
},
{
"parameters": {
"operation": "noOp"
},
"id": "Production Response",
"name": "Production Response",
"type": "n8n-nodes-base.noOp",
"typeVersion": 1,
"position": [
1000,
300
]
}
],
"connections": {
"Evaluation Trigger": [
{
"node": "OpenAI Chat Model",
"type": "main",
"index": 0,
"from": 0,
"to": 0
}
],
"OpenAI Chat Model": [
{
"node": "Check If Evaluating",
"type": "main",
"index": 0,
"from": 0,
"to": 0
}
],
"Check If Evaluating": [
{
"node": "Set Metrics",
"type": "main",
"index": 0,
"from": 0,
"to": 0
},
{
"node": "Set Outputs",
"type": "main",
"index": 0,
"from": 0,
"to": 0
},
{
"node": "Production Response",
"type": "main",
"index": 0,
"from": 1,
"to": 0
}
]
}
}{ 开始到最后的 })在Google Sheets中创建如下结构的测试表:
| taskDescription | expectedPriority | quality_score |
|---|---|---|
| 系统数据库连接失败,无法处理用户请求 | 紧急 | 5 |
| 更新产品文档中的截图 | 低 | 3 |
| 实现新的支付功能模块 | 高 | 4 |
| 优化查询性能,减少响应时间 | 中 | 4 |
在Set Metrics节点中:
指标1:分类准确性
- 类型:Categorization
- 期望值:{{ $json.expectedPriority }}
指标2:处理速度评分
- 类型:Custom Metrics
- 值:{{ $json.quality_score }}传统方法中,开发者经常说"这个改进看起来更好",但实际上没有数据支撑。Evaluation节点改变了这一切,让你有客观的数字指标来证明每一次优化是否真的有效。
当你对工作流进行改进时(如调整提示词、切换模型),Evaluation节点可以让你一键对比改进前后的性能指标,找出最佳方案。
通过Check If Evaluating节点,你可以在评估时计算复杂的指标(即使成本高),在生产环境中则直接返回结果,两全其美。
❌ 错误1:评估数据集太小或质量差
正确做法:使用真实的生产数据来创建测试集,包含至少10-20个代表性示例和边界情况。
❌ 错误2:忘记配置Google Sheets凭证
正确做法:在使用前,确保已在n8n中添加Google Sheets的OAuth2凭证。
❌ 错误3:在评估时计算昂贵的指标导致成本激增
正确做法:使用Check If Evaluating分支评估逻辑,避免生产环节中不必要的计算。
除了预置指标,你还可以创建完全自定义的指标来满足特定的业务需求:
// 示例:自定义相关性评分
{
"name": "内容相关性",
"metric": "customMetric",
"value": "={{
// 计算相似度分数
$json.response && $json.expectedAnswer
? calculateSimilarity($json.response, $json.expectedAnswer)
: 0
}}"
}通过Function节点或Code节点,你可以实现任何你需要的评估逻辑。
Evaluation节点将n8n从一个简单的自动化工具变成了企业级的AI系统。它让你能够:
初学者可以从简单的分类任务开始,逐步深入掌握自定义指标和高级评估策略。无论是个人项目还是企业应用,Evaluation节点都是确保AI工作流质量的关键工具。
[1] 官方文档: https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.evaluation/
[2] n8n系列教程: https://www.undsky.com/blog/?category=n8n%E6%95%99%E7%A8%8B#