本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
了解结果和输出
批量评估结果分为两层:API 响应中的汇总摘要和 CloudWatch 日志中的每个会话的详细信息。
汇总结果
批量评估完成后,GetBatchEvaluation响应中会包含一个包含汇总摘要的evaluationResults对象。
会话计数
| 字段 | 说明 |
|---|---|
|
|
所有评估人员成功评估的会话数。 |
|
|
至少有一个评估器失败的会话数。 |
|
|
仍在评估的会话数(作业完成时为 0)。 |
|
|
从会话源发现的会话总数。 |
|
|
评估时忽略的会话数。该服务可评估每个任务最多 500 个会话。如果发现的会话超过 500 个,则该服务会选择最近的 500 个会话而忽略其余会话。 |
Per-evaluator 摘要
中的每个条目都为一位评估者evaluatorSummaries提供了汇总指标:
| 字段 | 说明 |
|---|---|
|
|
短 ID(例如, |
|
|
所有评估会话的平均分数。范围取决于评估器(通常为 0—1)。 |
|
|
该评估者成功评分的会话次数。 |
|
|
该评估器返回错误的会话数。 |
响应示例
{ "batchEvaluationId": "12345678-1234-1234-1234-123456789012", "status": "COMPLETED", "evaluationResults": { "numberOfSessionsCompleted": 47, "numberOfSessionsFailed": 3, "numberOfSessionsIgnored": 0, "totalNumberOfSessions": 50, "evaluatorSummaries": [ { "evaluatorId": "Builtin.GoalSuccessRate", "statistics": { "averageScore": 0.72 }, "totalEvaluated": 47, "totalFailed": 0 }, { "evaluatorId": "Builtin.Helpfulness", "statistics": { "averageScore": 0.81 }, "totalEvaluated": 47, "totalFailed": 0 } ] } }
Per-session CloudWatch 日志中的详细信息
GetBatchEvaluation响应中的outputConfig字段指定了 CloudWatch 日志位置,在该位置中,每个评估器的每个会话的结果将作为事件写入。 OpenTelemetry
{ "outputConfig": { "cloudWatchConfig": { "logGroupName": "/aws/bedrock-agentcore/evaluations/batch", "logStreamName": "12345678-1234-1234-1234-123456789012" } } }
注意
此处logGroupName返回的内容反映了您为工作选择的目的地。有关可用outputConfig选项,请参阅开始批量评估。
日志流中的每个事件都包含每回合、每个评估者的详细信息:
| 字段 | 说明 |
|---|---|
|
|
本回合的数字分数。 |
|
|
分类标签(例如, |
|
|
LLM-generated 得分的理由。 |
要读取这些事件,请使用日 CloudWatch 志 API:
import boto3 logs_client = boto3.client("logs", region_name="us-west-2") response = logs_client.get_log_events( logGroupName="/aws/bedrock-agentcore/evaluations/batch", logStreamName="12345678-1234-1234-1234-123456789012", ) for event in response["events"]: print(event["message"])
解释分数
批量评估分数遵循与按需评估相同的惯例:
-
数字分数 (
value):范围取决于评估者。大多数内置评估器的分数从 0 到 1,越高越好。 -
标签 (
label):分数的分类描述。例如,Builtin.Helpfulness返回诸如、Very HelpfulSomewhat Helpful、之类的标签Not Helpful。
错误处理
Job-level 错误
如果批量评估作业完全失败,status则FAILED会errorDetails包含一条或多条错误消息,描述出了什么问题。常见原因:
-
在指定源中未找到会话。
-
CloudWatch 日志组或服务名称无效。
Session-level 错误
当整个任务成功时,单个会话可能会失败。numberOfSessionsFailed计数evaluationResults表示有多少会话出现错误。 Per-session 错误记录在 CloudWatch 日志输出中。
Evaluator-level 错误
在成功评估的会话中,个别评估者可能会失败。每个评估者摘要上的totalFailed计数表示评估者无法对多少次会话进行评分。常见原因包括跨度格式错误或缺少必需的属性。
比较各次运行的结果
常见的工作流程是在变更(即时更新、模型交换、工具修改)之前和之后运行批量评估,并比较总分数:
# After running two batch evaluations baseline = client.get_batch_evaluation(batchEvaluationId=baseline_id) treatment = client.get_batch_evaluation(batchEvaluationId=treatment_id) baseline_summaries = { s["evaluatorId"]: s["statistics"]["averageScore"] for s in baseline["evaluationResults"]["evaluatorSummaries"] } treatment_summaries = { s["evaluatorId"]: s["statistics"]["averageScore"] for s in treatment["evaluationResults"]["evaluatorSummaries"] } print(f"{'Evaluator':<35} {'Baseline':>10} {'Treatment':>10} {'Delta':>10}") print("=" * 67) for eid in baseline_summaries: b = baseline_summaries[eid] t = treatment_summaries.get(eid, 0) delta = t - b print(f"{eid:<35} {b:>10.4f} {t:>10.4f} {delta:>+10.4f}")
从 CLI 查看结果
除了 GetBatchEvaluation API 之外, AgentCore CLI 还显示了相同的结果:
-
agentcore view batch-evaluation <batch-evaluation-id>— 查看单个任务及其结果(--json为原始输出添加)。 -
agentcore batch-evaluations history— 列出批量评估作业(正在运行的作业从服务中刷新;添加--json)。 -
agentcore run batch-evaluation … --json— 返回上面 JSON 示例中显示的相同batchEvaluationIdevaluationResults//evaluatorSummaries对象。
# View a single batch evaluation job and its results agentcore view batch-evaluation 12345678-1234-1234-1234-123456789012 --json # List batch evaluation jobs (running jobs are refreshed from the service) agentcore batch-evaluations history --json
注意
用于选择评估器的运行命令标志是-e, --evaluator <ids…>(或--evaluator-arn <arns…>)。