

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 了解结果和输出
<a name="batch-evaluations-results"></a>

批量评估结果分为两层：API 响应中的汇总摘要和 CloudWatch 日志中的每个会话的详细信息。

## 汇总结果
<a name="batch-eval-aggregate-results"></a>

批量评估完成后，`GetBatchEvaluation`响应中会包含一个包含汇总摘要的`evaluationResults`对象。

### 会话计数
<a name="batch-eval-session-counts"></a>


| 字段 | 说明 | 
| --- | --- | 
|  `numberOfSessionsCompleted`  | 所有评估人员成功评估的会话数。 | 
|  `numberOfSessionsFailed`  | 至少有一个评估器失败的会话数。 | 
|  `numberOfSessionsInProgress`  | 仍在评估的会话数（作业完成时为 0）。 | 
|  `totalNumberOfSessions`  | 从会话源发现的会话总数。 | 
|  `numberOfSessionsIgnored`  | 评估时忽略的会话数。该服务可评估每个任务最多 500 个会话。如果发现的会话超过 500 个，则该服务会选择最近的 500 个会话而忽略其余会话。 | 

### Per-evaluator 摘要
<a name="batch-eval-evaluator-summaries"></a>

中的每个条目都为一位评估者`evaluatorSummaries`提供了汇总指标：


| 字段 | 说明 | 
| --- | --- | 
|  `evaluatorId`  | 短 ID（例如，`Builtin.GoalSuccessRate`）。 | 
|  `statistics.averageScore`  | 所有评估会话的平均分数。范围取决于评估器（通常为 0—1）。 | 
|  `totalEvaluated`  | 该评估者成功评分的会话次数。 | 
|  `totalFailed`  | 该评估器返回错误的会话数。 | 

### 响应示例
<a name="batch-eval-example-response"></a>

```
{
    "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 日志中的详细信息
<a name="batch-eval-per-session-detail"></a>

`GetBatchEvaluation`响应中的`outputConfig`字段指定了 CloudWatch 日志位置，在该位置中，每个评估器的每个会话的结果将作为事件写入。 OpenTelemetry 

```
{
    "outputConfig": {
        "cloudWatchConfig": {
            "logGroupName": "/aws/bedrock-agentcore/evaluations/batch",
            "logStreamName": "12345678-1234-1234-1234-123456789012"
        }
    }
}
```

**注意**  
此处`logGroupName`返回的内容反映了您为工作选择的目的地。有关可用`outputConfig`选项，请参阅[开始批量评估](batch-evaluations-start.md)。

日志流中的每个事件都包含每回合、每个评估者的详细信息：


| 字段 | 说明 | 
| --- | --- | 
|  `gen_ai.evaluation.score.value`  | 本回合的数字分数。 | 
|  `gen_ai.evaluation.score.label`  | 分类标签（例如，`PASS`，`Very Helpful`）。 | 
|  `gen_ai.evaluation.explanation`  | 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"])
```

## 解释分数
<a name="batch-eval-interpreting-scores"></a>

批量评估分数遵循与按需评估相同的惯例：
+  **数字分数 ** (`value`)：范围取决于评估者。大多数内置评估器的分数从 0 到 1，越高越好。
+  **标签 ** (`label`)：分数的分类描述。例如，`Builtin.Helpfulness`返回诸如、`Very Helpful``Somewhat Helpful`、之类的标签`Not Helpful`。

## 错误处理
<a name="batch-eval-error-handling"></a>

### Job-level 错误
<a name="batch-eval-job-errors"></a>

如果批量评估作业完全失败，`status`则`FAILED`会`errorDetails`包含一条或多条错误消息，描述出了什么问题。常见原因：
+ 在指定源中未找到会话。
+  CloudWatch 日志组或服务名称无效。

### Session-level 错误
<a name="batch-eval-session-errors"></a>

当整个任务成功时，单个会话可能会失败。`numberOfSessionsFailed`计数`evaluationResults`表示有多少会话出现错误。 Per-session 错误记录在 CloudWatch 日志输出中。

### Evaluator-level 错误
<a name="batch-eval-evaluator-errors"></a>

在成功评估的会话中，个别评估者可能会失败。每个评估者摘要上的`totalFailed`计数表示评估者无法对多少次会话进行评分。常见原因包括跨度格式错误或缺少必需的属性。

## 比较各次运行的结果
<a name="batch-eval-comparing-runs"></a>

常见的工作流程是在变更（即时更新、模型交换、工具修改）之前和之后运行批量评估，并比较总分数：

```
# 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 查看结果
<a name="batch-eval-viewing-from-cli"></a>

除了 `GetBatchEvaluation` API 之外， AgentCore CLI 还显示了相同的结果：
+  `agentcore view batch-evaluation <batch-evaluation-id>`— 查看单个任务及其结果（`--json`为原始输出添加）。
+  `agentcore batch-evaluations history`— 列出批量评估作业（正在运行的作业从服务中刷新；添加`--json`）。
+  `agentcore run batch-evaluation …​ --json`— 返回上面 JSON 示例中显示的相同 `batchEvaluationId``evaluationResults`//`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…​>`）。