> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fim.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 评估中心

> 使用测试数据集和自动化 LLM 评分对你的智能体进行定量基准测试。

评估中心让你能够在部署到生产环境**之前**验证智能体质量。创建测试用例数据集，针对任何已发布的智能体运行测试，并获得包含每个用例通过/失败判定、延迟和令牌使用情况的定量报告。

<Info>
  为企业采购审查而设计 — 每个结果都是可审计的、可重现的，并持久存储。
</Info>

## 工作原理

每次评估运行都会为每个测试用例执行一个**三阶段管道**：

<Steps>
  <Step title="智能体执行">
    真实的 ReActAgent 运行测试用例提示。使用与聊天相同的引擎：相同的模型、相同的工具、相同的指令。无模拟、无捷径。

    产出：**答案**、**延迟**、**令牌使用量**。
  </Step>

  <Step title="LLM 评分">
    一个单独的"评分器" LLM（快速模型）根据预期行为和断言来判断答案。

    输入：提示 + 预期行为 + 断言 + 答案。输出：`{ verdict: "pass"|"fail", reasoning: "..." }`。
  </Step>

  <Step title="持久化与聚合">
    每个用例的结果被保存到数据库。所有用例完成后：计算**通过率**、**平均延迟**、**总令牌数**并附加到运行中。
  </Step>
</Steps>

### 关键设计决策

| 决策                         | 原因                                  |
| -------------------------- | ----------------------------------- |
| **真实 ReActAgent**（非模拟）     | 测试实际的智能体行为，包括工具调用和多步推理              |
| **独立的评分器 LLM**（快速模型）       | 成本低且速度快；智能体 LLM 在执行期间已消耗令牌          |
| **`asyncio.Semaphore(5)`** | 将并发限制在 5 以避免向 LLM 提供商发送过多请求导致速率限制错误 |
| **每个案例都是独立的**              | 案例之间没有对话历史；每个案例都获得一个新的智能体实例         |
| **后台执行**                   | 运行作为异步任务触发 — API 立即返回，前端每 3 秒轮询一次   |

## 工作流

### 1. 创建数据集

导航到 **Eval Center → Datasets** 标签页，然后点击 **New Dataset**。

数据集是测试用例的命名集合。为其提供一个描述性的名称（例如，"Customer Support — Tier 1 Questions"）和可选的描述。

### 2. 添加测试用例

点击进入您的数据集并添加测试用例。每个用例有三个字段：

| 字段       | 必需 | 描述                                |
| -------- | -- | --------------------------------- |
| **提示词**  | 是  | 发送给智能体的确切问题或指令                    |
| **预期行为** | 是  | 对正确答案应该是什么样的自然语言描述                |
| **断言**   | 否  | 具体检查项列表（例如，"答案提到退款政策"、"响应少于200字"） |

<Tip>
  **编写好的测试用例：**

  * **提示词**：要具体。"我们企业计划的退款政策是什么？"比"告诉我关于退款的事情"更好。
  * **预期行为**：描述*结果*，而不是确切的措辞。"解释30天退款窗口并提及年度计划的例外情况"。
  * **断言**：用于硬性要求。评分器将显式验证每个断言。
</Tip>

### 3. 启动评估

转到 **Eval Runs** 选项卡，然后点击 **New Evaluation**。选择：

1. **Agent** — 任何您拥有的智能体
2. **Dataset** — 任何至少包含一个测试用例的数据集

点击 **Start Evaluation**。您将被重定向到结果页面。

### 4. 查看结果

结果页面显示：

* **标题**：智能体名称、数据集名称、状态徽章、通过率、平均延迟、总令牌数
* **进度条**：随着用例完成而填充（绿色 = 通过比例）
* **结果表**：每个测试用例一行，包含：
  * 提示词（截断 — 点击展开）
  * 判定：**通过**（绿色）、**失败**（红色）或**错误**（橙色）
  * 智能体的回答（截断 — 点击展开）
  * 评分器的推理（为什么通过或失败）
  * 延迟（毫秒）和令牌计数

<Warning>
  当运行进行中（`pending` 或 `running` 状态）时，页面每 3 秒自动刷新一次。如果您想实时查看结果出现，请勿离开此页面。
</Warning>

## 测试内容

### 包含内容

* **内置工具**：计算器、网络搜索、网页获取、Python 执行、文件操作等
* **智能体指令**：智能体的 `extra_instructions` 字段会被传递
* **智能体配置的模型**：如果智能体有自定义模型配置，将使用该模型

### 不包括的内容（设计考虑）

* **连接器**：外部 HTTP 连接器需要实时第三方服务 — 为避免测试不稳定而在评估中跳过
* **MCP 服务器**：原因相同 — 外部进程依赖
* **对话历史**：每个案例独立运行，没有先前上下文
* **知识库**：知识库检索工具在评估模式下不加载

<Info>
  这意味着评估结果反映的是智能体的**推理和工具使用能力**，而不是它与外部服务的集成。通过连接器测试功能单独测试连接器。
</Info>

## 评分器

评分器是一个 LLM（系统的"快速"模型），它接收四条信息并返回结构化的 JSON 判决：

**系统提示：**

> You are an impartial AI evaluator. Your job is to judge whether an AI agent's answer meets the expected behavior for a given prompt.
>
> Be strict but fair. A "pass" requires the answer to genuinely address the prompt according to the expected behavior. A "fail" means the answer is wrong, incomplete, off-topic, or misses key requirements.

**用户消息包括：**

1. 原始提示
2. 预期行为
3. 断言列表（或"未指定"）
4. 智能体的实际答案

**输出架构：**

```json theme={null}
{
  "verdict": "pass" | "fail",
  "reasoning": "Explanation of why the answer passes or fails..."
}
```

评分器使用 `structured_llm_call` 和函数调用来强制执行架构。如果评分器本身失败（网络错误、格式错误的响应），该案例被标记为 `error`。

## 最佳实践

### 数据集设计

* **从小处开始**：5–10 个案例涵盖智能体的核心用例
* **覆盖边界情况**：至少包含 2–3 个对抗性或超出范围的提示
* **在预期行为中保持具体**：模糊的期望会导致评分不一致
* **使用断言来处理硬性要求**："必须提及价格"比希望评分器捕捉到它更可靠

### 解释结果

* **80%+ 通过率** 是配置良好的智能体的良好基线
* **低通过率且高延迟** 表明智能体在多步推理方面遇到困难
* **错误状态** 意味着智能体或评分器崩溃 — 检查服务器日志了解详情
* **评分器分歧**：如果您认为评分器有误，请阅读其推理。您可能需要优化您的预期行为描述

### 何时重新评估

* 更改智能体指令后
* 切换智能体的 LLM 模型后
* 添加或删除工具类别后
* 在任何生产部署前（CI/CD 集成将在未来版本中推出）
