---
title: "验证集：在部署前重放真实通话轮次"
description: "将真实的 ThunderPhone 通话片段转化为可复用的验证示例，审查预期行为，针对智能体草稿重放这些示例，并在部署前发现回归问题。"
---

一个**验证示例**会冻结真实通话中的一个智能体轮次：此前的对话、相关的呼叫者音频、智能体实际执行的操作，以及它应执行操作的真值。使用当前草稿回放一组示例可以发现回归问题，而无需再次拨打电话。

使用组织范围的**验证集**页面
(`/dashboard/validation`)构建和审查数据集。使用单个智能体的**验证**标签页运行验证集并查看运行历史记录。

## 从通话记录添加示例

<Steps>
  <Step title="选择添加示例">
    选择该示例要验证其行为的智能体。工作区会显示该智能体最近最多 25 个非模拟通话。
  </Step>
  <Step title="选择通话和智能体轮次">
    阅读转录文本，将鼠标悬停在您想保留的智能体轮次上，然后选择勾选操作。到该轮次为止的对话及其呼叫者音频片段会被复制到验证数据集。
  </Step>
  <Step title="审查预期">
    ThunderPhone 会起草正确行为的描述。请将其编辑为具体且可测试的内容，并可选择编辑已接受的示例回复和预期工具调用。
  </Step>
  <Step title="保存或启用">
    **保存草稿**会使示例保持在**需要审查**状态。
    **保存并启用**会将其纳入未来的验证运行。
  </Step>
</Steps>

重复提升同一轮会复用现有示例，而不会创建两个副本。示例是其通话的副本，因此
[删除通话](/zh/guides/review-calls)也会删除该示例。

## 示例类型和状态

类型说明示例存在的原因：

| 类型 | 用途 |
| --- | --- |
| **失败** | 暴露出您想要避免的行为的真实回复。 |
| **黄金示例** | 值得保留的已知正确回复。 |
| **手动** | 不属于上述任一类别的手动整理案例。 |

状态控制生命周期：

| 状态 | 含义 |
| --- | --- |
| **需要审查** | 真值仍在审查中；不纳入运行。 |
| **已启用** | 纳入验证运行。 |
| **已过时** | 自示例冻结后提示词已更改；请审查其预期。 |
| **不兼容** | 该示例无法使用当前配置回放。 |
| **已归档** | 为保留历史而保存，但不纳入运行。 |

## 浏览和优化数据集

按**智能体**、**状态**或**类型**筛选组织数据集。选择一个示例会显示：

- 冻结的对话上下文和可播放的呼叫者音频片段。
- 源通话和原始回复。
- 真值预期、已接受的口头回复和工具调用。
- 最新回放结果，以及原始行为和预期行为。
- 最新判定及评审说明（如有）。

选择**编辑真值**以修改预期或已接受的回复。
选择**针对草稿回放**以仅测试该示例，而不启动完整运行。回放使用智能体的当前草稿，不一定使用其已部署配置。

## 运行验证集

在智能体的**验证**标签页中，针对每个已启用示例启动一次运行。每个示例会获得以下其中一种判定：

- **通过**——回复满足预期和呼叫者音频。
- **警告**——回复可用，但有一项检查发现不确定性。
- **失败**——回复与音频矛盾，或遗漏了必需行为。
- **已跳过**——无法加载必需的呼叫者音频；该示例不计入通过率分母。
- **错误**——无法完成回放或评分。

运行摘要会报告通过、警告、失败和跳过的数量、通过率、预估成本，以及与前一次已完成运行相比从通过变为失败的任何回归。每个智能体同一时间只能有一个验证运行处于活动状态。

## 使用验证证据部署

当智能体具有验证示例时，部署对话框会报告最新完成的运行是否与当前草稿匹配。您可以：

- 使用显示的通过率和回归数量进行部署。
- 如果不存在匹配的运行，先运行验证。
- 在审查结果后仍决定部署。

验证是证据和部署检查，并非自动进行生产流量分配。若要进行实时比较，请使用
[实验（A/B 测试）](/zh/guides/experiments-ab-testing)。

## API 自动化

[验证集 API](/api-reference/validation-sets)涵盖轮次提升、示例管理、固定音频流式传输、单次重放、批量运行、运行结果、部署时状态以及组织概览。

