AgentLoop 实验功能用于对 LLM 或 AI Agent 进行重复测试,帮助验证优化效果、执行回归测试和发现潜在问题。通过数据集中的数据对模型服务或 Agent 服务发起实验,并使用评估器量化实验结果,可以系统性地评估和改进 AI 应用的表现。
实验分类
实验按照被测对象可分为 LLM 实验和 Agent 实验,按照发起调用的环境可分为在线实验和离线实验。
LLM 实验和 Agent 实验
LLM 实验对模型服务进行实验,常用于以下场景:
模型对比测试:使用同样的提示词测试不同模型的返回,并评估返回结果的幻觉、正确性等指标,以挑选适应特定场景的最佳模型。
提示词调优:针对同一批问题,使用不同的提示词测试模型的返回,并评估相关指标以获得最优的提示词。
模型降智检测:使用一批具有一定难度的问题,定期测试模型服务提供商提供的模型服务,并评估模型返回值的正确性等指标。当相关指标出现明显下跌时往往代表模型出现了问题。
Agent 实验对部署的 AI Agent 进行实验,常用于以下场景:
Agent 回归测试:在每次 Agent 变更后,使用相同数据集对 Agent 进行一轮回测,并评估 Agent 在重点指标(如准确性、幻觉、证据支持度)上是否有明显下跌。
Agent 调优验证:在对当前的一些 badcase 进行针对性优化后,使用这些 badcase 对优化后的 Agent 进行一轮回测,验证 Agent 在重点指标(如准确性、幻觉、证据支持度)上是否有优化。
在线实验和离线实验
由于实验过程中涉及向 LLM 或 Agent 发起 HTTP 请求,会涉及到网络隔离的问题。LLM 服务或 Agent 服务在 AgentLoop 服务端可能是不可达的(但需要保证自身环境能正常访问 AgentLoop 服务端,通过公网或内网的方式)。因此 AgentLoop 区分了在线实验和离线实验。
在线实验和离线实验最核心的区别在于发起实验调用的环境:在线实验由 AgentLoop 服务端发起,离线实验由用户自己的环境发起。整体区别如下:
对比项 | 在线实验 | 离线实验 |
发起环境 | AgentLoop 服务端 | 用户本地环境 |
网络要求 | AgentLoop 服务端能访问用户的 LLM/Agent 服务 | 用户本地环境能访问 AgentLoop 服务端 |
实验配置 | 在页面配置实验组(端点+提示词模板) | 无需配置实验组,获取本地运行代码 |
适用场景 | 用户服务可被 AgentLoop 服务端直接访问 | 用户服务在内网或无法被 AgentLoop 直接访问 |
如果服务可被 AgentLoop 服务端直接访问,选择在线实验;如果服务在内网或无法被 AgentLoop 直接访问,选择离线实验。
实验请求的链路追踪
进行实验时,如果通过 HTTP 调用发起实验,不管是在线实验还是离线实验,都会向 HTTP 请求头添加符合 W3C 规范的携带 traceId 信息的请求头 traceparent(例如 traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01)。
如果 AI Agent 按照 AgentLoop 接入中心的规范完成了接入,则实验发起请求的 traceId 和本次 Agent 处理请求的 traceId 是一致的,实验计划配置的评估器也能正确获取 Agent 执行轨迹。
创建在线实验
步骤一:注册服务(可选)
如果使用 AgentLoop 内置的模型服务,可跳过此步骤;如果需要测试自定义的模型服务或 Agent 服务,前往页面注册模型服务或 Agent 服务。
步骤二:创建数据集
前往数据中心创建一个数据集,并保证数据集至少包含一条数据。如果已有通过其他方式创建好的数据集,可以跳过本步骤。

步骤三:创建在线实验计划
在实验页面单击创建实验计划。
依次输入计划名称、计划描述,选择在线实验,并选择该实验关联的数据集。
单击新建计划。
步骤四:配置实验
单击新建计划后进入实验配置页面,该页面主要分为三个部分:实验配置、评估指标和数据集展示。

实验配置
实验配置部分通过小方块的形式展示一组一组的实验配置。每个实验配置包含两个阶段:
选择本次实验拨测的端点:可以是 AgentLoop 内置的模型服务,也可以是前面步骤注册的模型服务或 Agent 服务。
填写发送给模型的提示词模板或发送给 Agent 服务的 HTTP 请求 body 模板。模板支持使用双括号(
{{列名}})的形式引用数据集的列名。
评估指标
评估指标部分,单击右侧配置可以选择 0 个到多个评估器。选择好评估器后需要检查评估器的变量映射部分。当前实验支持以下变量用于配置变量映射:
变量 | 说明 |
| 一次实验的输入,即实验配置中配置的提示词模板和请求 body 模板进行变量填充后的内容 |
| 一次实验的输出,即拨测大模型或用户 Agent 之后的返回内容 |
| 本次实验中用户 Agent 执行的轨迹。只有当 Agent 应用按照 AgentLoop 接入指南完成接入后,实际评估时该变量才能被替换为真实的 Agent 轨迹 |
| 数据集中的某一列,其中 |
数据集展示
数据集展示部分位于最左侧一列,展示当前数据集的数据。单击右上角实验按钮后,实验的结果会在右侧列展示,每一组实验对应一列。

创建离线实验
离线实验的前置步骤(注册服务、创建数据集、创建实验计划)和在线实验一致,但在创建实验计划时选择离线实验。
在离线实验的配置页面,不需要配置实验组。系统会根据当前的实验配置生成一份本地运行的 Python 代码,复制代码并调整后在本地运行即可。

配置好评估器后,单击右上角按钮即可获得本地运行的代码。根据本地发起实验的方式选择以下三种模式:
通过 HTTP 请求发起实验。
通过执行一个 bash 命令发起实验。
其他情况,完全自定义实验的执行方式和返回内容。

关于离线实验结果的上报方式,参见使用离线实验上报实验结果。
查看实验结果
不管是离线实验还是在线实验,每次实验完成后,都会在实验记录页面生成一条实验记录。

选择任意两条实验记录进行对比(建议选择同一实验计划的两次记录),可以逐条查看数据两次实验的返回结果差异和评分差异。
