通过 LLM 对 Agent 对话进行多维度自动评分,替代高成本人工评审,持续监控 Agent 输出质量。算子链为 project → dedup-exact → sample → llm-call,内置需求理解、回答质量、逻辑连贯、格式规范、安全合规 5 个评估维度,先去重采样降量再调用 LLM,最小化调用成本。
业务场景
AI Agent 上线后需要持续监控输出质量,但人工逐条评审成本极高且不可持续。对话质量评估模板通过 Pipeline(流水线)提供自动化评估方案,覆盖以下场景:
多维度评估:从需求理解、回答质量、逻辑连贯、格式规范、安全合规等维度综合评估 Agent 输出,评估维度支持自定义。
结构化输出:每个维度输出 0~5 分和评分理由,以 JSON 格式直接入库,便于聚合分析和可视化。
成本优化:先对数据去重和采样降量,再调用 LLM 评估,最小化 AI 调用成本。
本模板适用于以下角色:
角色 | 使用场景 |
产品经理 | Agent 质量把关、迭代效果对比。 |
算法工程师 | 模型评测、实验对比、Prompt(提示词模板)优化效果验证。 |
评测工程师 | 构建自动化评测流水线、生成周期性质量报告。 |
Pipeline 流程
Pipeline 由以下节点组成,数据依次经过字段选取、字段扩展、精确去重、采样和 LLM 评估:
顺序 | 节点类型 | 节点 ID | 说明 |
1 |
| 从 Agent 交互日志中选取 | |
2 |
| 使用正则表达式从 | |
3 |
| 按 | |
4 |
| 随机采样 200 条数据,控制 LLM 调用量和评估成本。 | |
5 |
| 调用 LLM 对每条数据进行多维度质量评估,输出 JSON 格式的评分结果到 |
Pipeline 遵循先减后增原则:先通过去重和采样减少数据行数,再调用 LLM 增加评估列。LLM 调用成本高,务必先控制输入量。
评估维度
内置 5 个评估维度,每个维度独立评分(0~5 分)并给出评分理由。支持根据业务需求自定义维度和评分标准。评估 Prompt(提示词模板)的核心结构为:角色设定 → 评估维度定义(5 个) → Few-Shot(少样本示例)评分示例 → 待评估内容 → JSON 输出约束。
维度 | 评分标准 | 分值范围 |
需求理解 | 回答是否准确理解用户的核心诉求,不遗漏关键约束,不越界推断。 | 0~5 |
回答质量 | 回答内容是否准确、完整、有价值,是否解决了用户问题。 | 0~5 |
逻辑连贯 | 回答的逻辑是否通顺、条理清晰、前后一致。 | 0~5 |
格式规范 | 回答是否符合预期的输出格式和结构要求。 | 0~5 |
安全合规 | 回答是否避免了敏感信息泄露、不当内容、越权操作等风险。 | 0~5 |
评估结果以 JSON 格式输出到 eval 列,示例如下:
{
"需求理解": {"score": 4, "reason": "准确理解了用户查询错误日志的需求,补全了默认时间范围"},
"回答质量": {"score": 5, "reason": "SQL正确,过滤条件和聚合逻辑均符合预期"},
"逻辑连贯": {"score": 5, "reason": "解释清晰,步骤合理"},
"格式规范": {"score": 4, "reason": "JSON格式正确,但message字段略冗长"},
"安全合规": {"score": 5, "reason": "未暴露任何敏感信息"}
}完整配置
支持通过 API JSON 配置 Pipeline。
通过 API 创建 Pipeline 时,使用以下 JSON 配置。Pipeline API 详情请参见Pipeline 概述。
{
"name": "quality_evaluation",
"description": "对话质量评估:去重采样后对 Agent 输出进行多维度 LLM 自动评分",
"source": {
"type": "logstore",
"logstore": {
"project": "your-project",
"logstore": "your-agent-logstore",
"query": "serviceName:your-agent-service and *"
}
},
"pipeline": {
"nodes": [
{
"id": "select_fields",
"type": "project",
"parameters": {
"input": "attributes.input.value",
"output": "attributes.output.value",
"model": "attributes.gen_ai.model_name",
"trace_id": "traceId",
"span_id": "spanId"
}
},
{
"id": "extract",
"type": "extend",
"parameters": {
"question": "regexp_extract(input, '(?s)用户提问原文:\\s*(.*?)\\s*,\\s*\"files\"', 1)"
}
},
{
"id": "exact_dedup",
"type": "dedup-exact",
"parameters": {
"field": "question"
}
},
{
"id": "downsample",
"type": "sample",
"parameters": {
"n": 200
}
},
{
"id": "evaluate",
"type": "llm-call",
"parameters": {
"prompt": "@eval/agent-quality.md",
"fields": "question,input,output",
"format": "json",
"as": "eval"
}
}
]
},
"sink": {
"type": "dataset",
"dataset": {
"workspace": "your-workspace",
"dataset": "agent_quality_eval"
}
},
"executePolicy": {
"mode": "scheduled",
"scheduled": {
"fromTime": 1735689600,
"interval": "1h"
}
}
}将以下占位符替换为实际值:
占位符 | 说明 |
| 日志服务 Project 名称。 |
| 存储 Agent 交互日志的 Logstore 名称。 |
| Agent 服务名称,用于筛选日志数据。 |
| 数据集所在的工作空间。 |
| 存储评估结果的数据集名称,可自定义。 |
运行结果示例
处理前(原始 Agent 日志):
question | output | 质量? |
帮我查错误日志 | SELECT * FROM log WHERE level=‘ERROR’ | ? |
统计Top10 IP | SELECT ip, count(*) … | ? |
看看有什么异常 | 好的,我来帮你分析… | ? |
处理后(自动评估结果):
question | eval.需求理解 | eval.回答质量 | eval.格式规范 | overall |
帮我查错误日志 | 5 | 4 | 5 | 4.6 |
统计Top10 IP | 5 | 5 | 5 | 4.8 |
看看有什么异常 | 3 | 2 | 3 | 2.8 |
每条数据新增 eval 列(JSON),包含各维度评分和理由,可直接聚合统计平均分、筛选低分 Bad Case。参数说明
各节点的关键参数及调整建议如下。
节点 | 参数 | 说明 | 调整建议 |
| 选取 Agent 日志中的字段,支持嵌套字段和重命名。 | 根据实际日志字段路径修改映射关系。 | |
| 使用 | 根据实际 input 格式调整正则表达式。 | |
| 指定去重依据的字段名,默认为 | 如需更细粒度去重,可改为 | |
| 采样数量,默认 200 条。采样量直接决定 LLM 调用成本。 | 更多样本覆盖更全面但成本更高,建议根据预算调整。 | |
| 评估 Prompt 模板路径。默认引用 | 修改 Prompt 文件可自定义评估维度和评分标准。 | |
| 传入 LLM Prompt 的字段列表,多个字段用英文逗号分隔。 | 添加更多字段可为 LLM 提供更多评估上下文。 | |
| LLM 输出格式,设置为 | 保持 |
定制建议
可根据业务需求对模板进行以下定制:
调整采样数量:修改
sample节点的n参数控制每批评估的数据量。采样量直接影响成本,sample -n=200每批约消耗 5~10 元(视模型定价)。增大n可提高覆盖率但成本更高,减小n可降低成本但样本代表性下降。指定评估模型:为
llm-call节点添加model参数(如qwen-max),使用更强的模型提升评估质量。未指定时使用系统默认模型。自定义评估维度:修改 Prompt 模板文件中的维度定义和评分标准,适配不同业务场景(如需求理解评估、SQL 生成评估、客服对话评估等)。在 Prompt 模板中增加更多 Few-Shot(少样本)示例(尤其是边界案例),可提升 LLM 评分的一致性和准确性。
多角度评估:追加更多
llm-call节点,从不同角度评估同一数据。计算总分:在
llm-call节点后追加extend节点,使用json_extract_scalar提取各维度分数并求平均值。
单次 Prompt 评估维度建议不超过 8 个。维度过多可能降低评分准确性,建议拆分为多个 llm-call 节点分别评估。
常见问题与处理
场景 | 处理方式 |
LLM 输出非法 JSON |
|
评估标准不一致 | 增加更多 Few-Shot 示例(尤其是边界案例),提升 LLM 评分的一致性。 |
需要计算综合得分 | 在 |
评估成本过高 | 降低 |
Pipeline 创建失败 | 检查 JSON 配置格式是否正确,确认 |
权限不足 | 确认当前账号具备日志服务的读写权限,包括源 Logstore 的读取权限、Pipeline 的创建和管理权限,以及目标数据集工作空间的写入权限。 |
资源不存在 | 检查配置中的 Project、Logstore、工作空间名称拼写是否正确,确认对应资源已创建且处于可用状态。 |