跳转到主要内容

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.

评估中心让你能够在部署到生产环境之前验证智能体质量。创建测试用例数据集,针对任何已发布的智能体运行测试,并获得包含每个用例通过/失败判定、延迟和令牌使用情况的定量报告。
为企业采购审查而设计 — 每个结果都是可审计的、可重现的,并持久存储。

工作原理

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

智能体执行

真实的 ReActAgent 运行测试用例提示。使用与聊天相同的引擎:相同的模型、相同的工具、相同的指令。无模拟、无捷径。产出:答案延迟令牌使用量
2

LLM 评分

一个单独的”评分器” LLM(快速模型)根据预期行为和断言来判断答案。输入:提示 + 预期行为 + 断言 + 答案。输出:{ verdict: "pass"|"fail", reasoning: "..." }
3

持久化与聚合

每个用例的结果被保存到数据库。所有用例完成后:计算通过率平均延迟总令牌数并附加到运行中。

关键设计决策

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

工作流

1. 创建数据集

导航到 Eval Center → Datasets 标签页,然后点击 New Dataset 数据集是测试用例的命名集合。为其提供一个描述性的名称(例如,“Customer Support — Tier 1 Questions”)和可选的描述。

2. 添加测试用例

点击进入您的数据集并添加测试用例。每个用例有三个字段:
字段必需描述
提示词发送给智能体的确切问题或指令
预期行为对正确答案应该是什么样的自然语言描述
断言具体检查项列表(例如,“答案提到退款政策”、“响应少于200字”)
编写好的测试用例:
  • 提示词:要具体。“我们企业计划的退款政策是什么?“比”告诉我关于退款的事情”更好。
  • 预期行为:描述结果,而不是确切的措辞。“解释30天退款窗口并提及年度计划的例外情况”。
  • 断言:用于硬性要求。评分器将显式验证每个断言。

3. 启动评估

转到 Eval Runs 选项卡,然后点击 New Evaluation。选择:
  1. Agent — 任何您拥有的智能体
  2. Dataset — 任何至少包含一个测试用例的数据集
点击 Start Evaluation。您将被重定向到结果页面。

4. 查看结果

结果页面显示:
  • 标题:智能体名称、数据集名称、状态徽章、通过率、平均延迟、总令牌数
  • 进度条:随着用例完成而填充(绿色 = 通过比例)
  • 结果表:每个测试用例一行,包含:
    • 提示词(截断 — 点击展开)
    • 判定:通过(绿色)、失败(红色)或错误(橙色)
    • 智能体的回答(截断 — 点击展开)
    • 评分器的推理(为什么通过或失败)
    • 延迟(毫秒)和令牌计数
当运行进行中(pendingrunning 状态)时,页面每 3 秒自动刷新一次。如果您想实时查看结果出现,请勿离开此页面。

测试内容

包含内容

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

不包括的内容(设计考虑)

  • 连接器:外部 HTTP 连接器需要实时第三方服务 — 为避免测试不稳定而在评估中跳过
  • MCP 服务器:原因相同 — 外部进程依赖
  • 对话历史:每个案例独立运行,没有先前上下文
  • 知识库:知识库检索工具在评估模式下不加载
这意味着评估结果反映的是智能体的推理和工具使用能力,而不是它与外部服务的集成。通过连接器测试功能单独测试连接器。

评分器

评分器是一个 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. 智能体的实际答案
输出架构:
{
  "verdict": "pass" | "fail",
  "reasoning": "Explanation of why the answer passes or fails..."
}
评分器使用 structured_llm_call 和函数调用来强制执行架构。如果评分器本身失败(网络错误、格式错误的响应),该案例被标记为 error

最佳实践

数据集设计

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

解释结果

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

何时重新评估

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