流量分配(A/B 测试)

借助流量拆分,您可以在单个部署渠道中将用户对话分配给 CX Agent Studio 智能体应用的 不同版本。您可以使用流量拆分进行 A/B 测试,或通过将指定百分比的流量路由到每个版本来分阶段安全地部署更新。

本指南介绍了如何使用 CX Agent Studio 控制台CX Agent Studio REST API 配置流量拆分,以及在实验接收到实际客户流量后如何使用 BigQuery 日志分析版本性能。

工作流概览

  1. 创建应用版本:创建智能体应用的不可变快照(版本)以进行比较。
  2. 在部署渠道上配置流量拆分:使用控制台或 REST API 在多个应用版本之间分配流量百分比。
  3. 在 BigQuery 中分析性能:在实验运行并处理了足够的客户流量后,在 BigQuery 中查询导出的对话日志,以评估各个版本的指标。

配置流量拆分

您可以使用控制台或 REST API 配置不同应用版本之间的流量分配。每项分配都必须指向现有的智能体应用版本,并且部署中的所有流量百分比之和必须等于 100。

使用控制台

如需在智能体构建器控制台中配置流量拆分,请执行以下操作:

  1. 打开 CX Agent Studio 控制台,然后选择您的智能体应用。
  2. 点击页面顶部的部署 标签页。
  3. 选择现有部署渠道,或点击新渠道以创建一个渠道(例如,API 访问权限)。
  4. 智能体版本 下,点击添加版本 ,然后选择要纳入实验的智能体应用版本。
  5. 为每个版本输入流量百分比 (例如,版本 A 为 90%,版本 B 为 10%)。确保百分比总和为 100%。
  6. 点击创建渠道 以应用配置。

使用 REST API

您可以通过对部署资源调用 patch 方法并定义 experimentConfig.versionRelease.trafficAllocations,以编程方式设置流量拆分。

在调用 API 之前,请确保您拥有以下标识符:

  • PROJECT_ID:您的 Google Cloud 项目 ID。
  • LOCATION_ID:智能体应用的区域(例如,us-east1)。
  • APP_ID:智能体应用的 ID。
  • DEPLOYMENT_ID:部署渠道的 ID。
  • VERSION_A_UUID / VERSION_B_UUID:应用版本的唯一标识符。

发送 PATCH 请求以更新部署配置:

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  "https://ces.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID/deployments/DEPLOYMENT_ID?updateMask=experimentConfig" \
  -d '{
    "experimentConfig": {
      "versionRelease": {
        "trafficAllocations": [
          {
            "appVersion": "projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID/versions/VERSION_A_UUID",
            "trafficPercentage": 90
          },
          {
            "appVersion": "projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID/versions/VERSION_B_UUID",
            "trafficPercentage": 10
          }
        ]
      }
    }
  }'

验证部署配置

如需验证流量分配是否处于有效状态,请执行以下操作:

使用控制台

  1. CX Agent Studio 控制台 中打开 部署 页面。
  2. 在部署列表中找到您的渠道。
  3. 验证版本 列是否显示配置的拆分(例如,Version A (90%), Version B (10%))。

使用 REST API

发送 GET 请求以检索部署资源详细信息:

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://ces.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID/deployments/DEPLOYMENT_ID"

响应 JSON 包含有效的 experimentConfig,用于确认分配给每个版本的流量百分比,并在 versionRelease 中显示 "state": "RUNNING"

在 BigQuery 中分析版本性能

在流量拆分实验运行并处理了足够的实际客户对话量后,您可以使用 BigQuery 日志分析版本性能。

在分析日志之前,请确保您已为应用启用 BigQuery 导出,方法是在 CX Agent Studio 控制台中依次前往 构建 > 设置 > 高级 ,然后开启 将日志导出到 BigQuery 。启用导出后,互动记录(包括每个轮次处理的特定 app_version_id)会记录在您的 BigQuery 数据集中。

您可以运行 SQL 查询,以评估和比较在流量拆分窗口期间由每个版本生成的响应。

  1. 在 Google Cloud 控制台中,前往 BigQuery
  2. 针对互动日志表运行示例查询,替换您的项目详细信息和评估窗口(START_TIMEEND_TIME):

    SELECT
      app_version_id,
      tool_call.name AS tool_name,
      tool_call.output AS tool_result_message,
      COUNT(1) AS count
    FROM
      `PROJECT_ID.conversational_agents_logs.v1beta_logs`,
      UNNEST(json_payload.query_result.generations) AS generation,
      UNNEST(generation.tool_calls) AS tool_call
    WHERE
      json_payload.resource = 'projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID'
      AND timestamp >= TIMESTAMP('START_TIME_YYYY-MM-DD HH:MM:SS', 'TIMEZONE')
      AND timestamp <= TIMESTAMP('END_TIME_YYYY-MM-DD HH:MM:SS', 'TIMEZONE')
    GROUP BY
      app_version_id, tool_name, tool_result_message
    ORDER BY
      app_version_id, count DESC
    
  3. 评估指标

    • 识别版本:将输出行映射到您的特定版本 UUID 或工具执行(例如,比较版本 A 与版本 B 的响应)。
    • 计算成功率:比较两个版本的结果与错误或过时响应的比率,以决定是否将候选版本提升到 100% 的流量。