

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

# A/B 测试
<a name="ab-testing"></a>

A/B 测试将实时制作流量分为两个变体，并持续评估具有统计意义的性能。 AgentCore 网关处理流量路由；您的代理代码不变。

A/B 测试是[AgentCore 优化改进循环中的验证步骤](optimization-how-it-works.md)。生成[建议](optimization-recommendations.md)并通过[离线批量评估对其进行验证后](dataset-evaluations.md)，您需要运行 A/B 测试以确认该更改可以提高实时流量的性能，然后再承诺全面推出。您可以将流量路由到不同的 AgentCore 运行时（基于目标），也可以将不同的配置传送到同一个 AgentCore 运行时（配置包）。

## 何时使用 A/B 测试
<a name="ab-testing-when-to-use"></a>

在需要时使用 A/B 测试：
+  **在将所有生产流量路由到优化配置**之前，请验证建议。
+  **使用严格的统计数据比较实时流量的两个模型版本**（例如，从一个基础模型移动到另一个基础模型）。
+  **衡量即时更改**对真实用户会话的影响，而不是精心策划的测试集的影响。
+  **在全面部署之前，通过对一部分实时流量进行验证，逐步推出一项新功能**（新工具、更新的系统提示）。

## 工作原理
<a name="ab-testing-how-it-works"></a>

 A/B 测试遵循以下流程：

1.  **您可以通过指定已经部署的 AgentCore 网关`agentcore run ab-test`、两种变体（控制和治疗）、流量权重和用于评分的在线评估配置来启动 A/B 测试**。（执行角色是可选的——传递`--role-arn`给你自带，或者让 CLI 创建一个。） 每个变体都引用 AgentCore 网关目标或配置包版本。命令返回后，测试立即开始运行（`--disable-on-create`用于停止启动）。

1.  ** AgentCore 网关分流量。**测试运行后，网关会根据运行时会话 ID 在两个变体之间拆分传入流量。分配是粘性的；给定的会话 ID 总是路由到相同的变体。

1.  **在线评估为每个环节打分。**您指定的在线评估配置会在每个会话完成时对每个会话运行评估器。 A/B 测试聚合管道将分数映射到变体。

1.  **该服务计算统计显著性。**随着样本量的增加，该服务会计算每个评估者的指标：平均分数、绝对变化和百分比变化、p 值、置信区间和显著性标志。p 值低于 0.05 表示差异具有统计学意义。在不影响统计有效性的情况下`agentcore view ab-test <id>`随时使用投票结果。

1.  **你推广治疗变体。**当结果显著时，运行`agentcore promote ab-test -i <id>`停止测试并将治疗变体写入其中`agentcore.json`，然后`agentcore deploy`将其推出。（你也可以`agentcore stop ab-test -i <id>`不晋升。）

## A/B 测试模式
<a name="ab-testing-patterns"></a>

A/B 测试支持两种变体配置模式：

当变更包括代码更改、框架升级或想要比较完全不同的代理实现时使用。每个变体都路由到指向不同的运行时端点的不同 AgentCore 网关目标。

当更改纯粹是配置（系统提示、型号 ID 或工具描述）时使用。这两个变体在同一个 AgentCore 运行时上运行，配置包版本不同。 AgentCore Gateway 通过 W3C 行李标头将捆绑引用注入到每个请求中，运行时可以使用该包头通过 SDK 提取配置。 AgentCore 


| 方面 | Target-based 变体 | 配置包变体 | 
| --- | --- | --- | 
| 有何不同 | 整个运行时端点（代码、框架、模型） | 系统提示、工具描述、模型参数 | 
| 路由 | 每个变体都有不同的目标 | 相同的目标，不同的配置包 | 
| 评估配置 | 每个 AgentCore 运行时一个在线评估配置 | 单一共享在线评估配置 | 
| 何时使用 | 代码更改、框架升级、比较不同的代理 | Configuration-only 在单个 AgentCore 运行时进行更改 | 

**Topics**