Agentforce Testing API 开发者指南

简介: Testing API 程序化 Agent 测试完整指南。涵盖三种测试方式对比(Center/DX/API)、Metadata API 构建测试(AiEvaluationDefinition 结构、标准预期、质量指标)、JSONPath 自定义评估(字符串/数值比较)、AiAgentScorerDefinition 自定义评分器(业务逻辑 LLM 评估)、Connect API 运行测试(三端点:启动/状态/结果)、以及测试结果解读。

Testing API 开发者指南

测试方法和流程

要上线一个可信可靠的 Agent,必须进行充分测试。Agentforce Builder 适合测试单个对话,但测试大量语句耗时长。Testing API 可以程序化批量测试,自动化评估过程并在短时间内评估大量请求。

三种测试方式对比

方式接入方式格式自定义评估
Testing CenterUICSV❌
Agentforce DXCLIYAML✅
Testing APIMetadata + Connect APIXML✅

Testing API 工作流

  • 创建测试 —— 使用 Metadata API 构建 AiEvaluationDefinition 元数据,或使用 Agentforce DX 的 agent generate test-spec 生成 YAML 再转换为元数据

  • 部署测试 —— 使用 sf project deploy startagent test create 部署到 Sandbox

  • 运行测试 —— 使用 Connect API 的 REST 端点或 agent test run 执行测试并获取结果

重要约束:测试仅在 Sandbox 中可用;消耗 Einstein Requests 积分;最多 10 个并发 IN-PROGRESS 运行;每个 AiEvaluationDefinition 最多 1,000 个测试用例;由于测试服务的持续改进,重新运行的结果可能有所变化。

测试方法和流程

使用 Metadata API 构建测试

使用 AiEvaluationDefinition 元数据类型程序化定义测试。每个定义包含一组测试用例,具有输入(语句、上下文变量、对话历史)和预期结果。

构建测试

AiEvaluationDefinition 结构

字段说明
name测试定义的唯一 API 名称
subjectName被测试 Agent 的 API 名称
subjectType"AGENT"
subjectVersion测试版本(如 v1)
testCase[]测试用例数组,每个包含 number / inputs / expectation[]

测试用例输入

  • utterance(语句) —— 发送给 Agent 的文本:<utterance>Summarize the Global Media account</utterance>

  • contextVariable(上下文变量) —— 模拟生产环境上下文,如设置 EndUserLanguage 为 Spanish。大多数上下文变量在会话启动后不可变

  • conversationHistory(对话历史) —— 启用多轮对话测试。每个条目指定 role(user/agent)、message、index。Agent 消息必须包含 topic(使用的子代理)

结构和输入

标准预期结果(Standard Expectations)

预期类型验证内容
topic_sequence_matchAgent 是否使用了预期的子代理?需要 expectedValue
action_sequence_matchAgent 是否使用了预期的动作?值使用 JSON 数组格式。使用 [] 表示预期无动作
bot_response_rating语义比较 —— 评估核心含义而非精确文本匹配。即使措辞不同,只要核心含义匹配即可通过

质量指标(Quality Metrics)

指标说明评分
coherence响应是否易于理解、语法正确?PASS/FAILED
completeness响应是否包含所有必要信息?PASS/FAILED
conciseness响应是否简洁但全面?PASS/FAILED
output_latency_milliseconds响应时间(毫秒)—
instruction_adherence响应遵循子代理指令的程度HIGH/LOW/UNCERTAIN

标准预期和质量指标

自定义评估标准

使用 JSONPath 表达式对 Agent 响应中的特定字符串或数值进行精确验证。两种类型:string_comparison(文本)和 numeric_comparison(数值)。

自定义评估

字符串比较运算符

equals(直接匹配,区分大小写)、containsstartswithendswith

数值比较运算符

equalsgreater_than_or_equal(>=)、greater_than(>)、less_than(常用目标路径:

  • 动作输入:.function.input.query

  • 动作输出:.function.output.result

  • 嵌套输出:.function.output.additionalContext[0].value

注意:每个参数字段限 100 字符。设置 isReference=true 表示 value 是 JSONPath 表达式。先用 --verbose 运行测试查看 Generated Data JSON,再构建 JSONPath。

自定义评估类型和 JSONPath

创建自定义评分器(Custom Scorers)

使用 AiAgentScorerDefinition 定义针对业务需求的评估逻辑。评分器利用提示模板引擎通过 LLM 自动评估 Agent 行为,并将输出映射为通过/失败/不适用。

自定义评分器

核心字段

  • inputScope —— Session(整个会话)/ Interaction(单轮)/ Moment(单个动作)

  • dataType —— Text 或 Number

  • scorerVersion —— 版本配置(从 1 开始,最多 100 个版本),包含 versionNumber、status、agentAssociation(isActive/samplingRate)、engine(PromptTemplate 类型 + 引用)、outputEnumValue(Pass/Fail/NotApplicable 映射)

  • specification —— min/max/step/threshold(可选,>= threshold 为通过)

部署要点

  • 项目结构:aiAgentScorerDefinitions/<name>.aiAgentScorerDefinition

  • package.xml 中 GenAiPromptTemplate 必须排在 AiAgentScorerDefinition 之前(Metadata API 按顺序部署)

  • 可以添加新版本但不能删除已有版本;可以更新版本状态和 agentAssociation

评分器定义和部署

使用 Connect API 运行测试

Connect API 提供三个 REST 端点:启动测试(异步执行)、获取测试状态(轮询进度)、获取测试结果(详细报告)。

运行测试

设置 External Client App(ECA)

需要的 OAuth 范围:chatter_apiapiwebrefresh_token/offline_access。启用 Client Credentials Flow 和 JWT-based access tokens。

三个 Connect API 端点

`# 1. 启动测试(异步)
POST /services/data/v63.0/einstein/ai-evaluations/runs
Body: {"aiEvaluationDefinitionName": "{TEST_NAME}"}
Response: {"runId": "4KBSM00000000Xt4AI", "status": "NEW"}

2. 获取测试状态(轮询)

GET /services/data/v63.0/einstein/ai-evaluations/runs/{runId}
Response: {"status": "COMPLETED", "startTime": "...", "endTime": "..."}

3. 获取测试结果

GET /services/data/v63.0/einstein/ai-evaluations/runs/{runId}/results`
```

CLI 替代方案:sf agent test run --api-name MyTestsf api request rest <endpoint>

Connect API 设置和端点

理解测试结果

每个测试用例的结果包含三个核心部分:

1. generatedData —— Agent 的实际行为

  • actionsSequence —— 调用了哪些动作

  • outcome —— Agent 的响应文本

  • topic —— 使用了哪个子代理

2. testResults[] —— 每个预期的评估结果

  • name —— 测试类型(topic_sequence_match / action_sequence_match / bot_response_rating / coherence / ...)

  • actualValue / expectedValue —— 实际值和预期值

  • metricScore —— PASS / FAILED / HIGH / LOW / UNCERTAIN

  • metricExplainability —— 指标说明

3. 测试失败时的处理

使用 Agent Builder 预览面板进行对话式调试,追踪问题所在,根据需要调整指令、动作或子代理,然后重新运行测试。

核心要点:bot_response_rating 使用语义比较 —— 评估"要点"而非精确文本匹配。即使措辞不同,只要核心含义正确即可通过。这对处理措辞变化具有鲁棒性,同时仍能捕获根本性错误。

理解测试结果

程序化测试是大规模部署可信、可靠 Agent 的关键。通过 Metadata API 构建测试、Connect API 运行评估、自定义评分器验证业务逻辑,形成一个完整的自动化质量保障体系。

文章来源:https://www.salesforcecrm.cn/article/agentforce/agentforce-testing-api-guide.html

目录
相关文章
|
4天前
|
缓存 人工智能 安全
GPT-5.6 Terra与GPT-5.5性能实测:成本减半后的跑分对比与快速迁移指南
GPT-5.6 Terra 的定价为每百万 token 输入 2.50/输出 15。GPT-5.5 则是 5/ 30。Terra 的每一项费率,包括 $0.25/M 的缓存读取,都恰好是 GPT-5.5 的一半,因此在任何工作负载组合下,Terra 都固定 便宜 2.0x。以每天 10 万次请求、3K token 提示词计算,大约是 Terra 每天 2,000,GPT−5.5每天 4,000,即每月约 60,000对 120,000。问题在于:OpenAI 没有发布任何针对 Terra 的编码基准。那个著名的 91.9% Terminal-Bench 数字是 Sol 在 Ul
|
3天前
|
SQL 人工智能 自然语言处理
大模型内容安全实时防护:恶意Prompt注入拦截、越权阻断与熔断机制方案.166
本文系统阐述大模型输入安全防护体系,涵盖提示词注入、恶意Prompt拦截、越权阻断与输入熔断四大核心风险及应对方案。提出四层防护架构(预处理、检测、鉴权、熔断),结合规则引擎、语义识别与RBAC权限控制,实现全链路实时防护,保障业务合规、数据安全与服务稳定。
227 1
|
27天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
11天前
|
人工智能 编解码 物联网
2026 最新Stable Diffusion 本地部署教程 下载安装使用详细图解(含官网安装包)
Stable Diffusion(SD)是2022年发布的开源文生图模型,由Stability AI等联合开发。支持文生图、图生图、局部重绘等,依托VAE降低算力需求,可在消费级显卡运行。本文提供秋葉aaaki制作的Windows整合包(含图形界面与插件),开箱即用,零配置启动。
|
12天前
|
人工智能 缓存 安全
Claude Code 封号真实原因曝光,这次彻底不装了,直接针对国内开发者的账号下手?
Claude Code 封号潮背后:逆向扒出客户端隐写区域标记,Anthropic 政策收紧叠加 DeepSeek 7 月涨价,国产替代更紧迫。
|
21天前
|
存储 人工智能 监控
QoderWork完全指南:从入门到精通,把“AI实习生”变成你的全能工作搭档
阿里云2026年推出的桌面端AI工作助手QoderWork,不止聊天,更可动手干活:本地运行、安全可控,支持文件整理、数据分析、PPT生成、网页开发等;内置专家套件、多Agent协作与自定义Skills,让AI真正成为你身边的“AI实习生”。
|
17天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
514 127
|
4天前
|
人工智能 缓存 JSON
刚刚 GPT-5.6 发布,吊打 Claude 5 和 Grok 4.5?一手实测来啦!
GPT-5.6 刚发布,跑分号称超越 Fable 5,真的假的?附一手实测,让 3 个最强 AI 编程模型 GPT-5.6 Sol、Claude Fable 5、Grok 4.5 在 Cursor 里同时一把梭开发网页游戏,看看最新模型到底谁更能打。
272 0