评估智能体
在本地运行评估追踪,并审核进入 Studio Web 的结果。
步骤 8 - 创建评估测试
评估会测试您的智能体在一系列输入上的性能,包括它是否在适当的时候调用新工具。uipath-agents 技能包含完整的评估框架参考:评估程序类型、评估集架构、目录结构约定以及最佳实践,例如将 gpt-4.1(非迷你)用于 LLM Judge 评估程序。您的编码智能体使用此功能在简短提示下生成正确的评估器配置和测试集。
询问您的编码智能体:
Create an evaluation set for the intake classifier agent with 5 test cases:
1. A clearly trivial request (e.g., deliver a letter) - no creature named, get_challenge_rating should not be called
2. A standard request (e.g., escort a caravan) - no creature named, get_challenge_rating should not be called
3. A heroic request naming a goblin (e.g., clear a goblin stronghold) - get_challenge_rating should be called exactly once, querying for a goblin, and no other creature
4. A legendary request naming a dragon (e.g., slay a dragon) - get_challenge_rating should be called exactly once, querying for a dragon, and no other creature
5. An edge case that's ambiguous on difficulty but also names no specific creature - get_challenge_rating should not be called; this tests that the agent doesn't over-call the tool just because a case is hard to classify
Use both a semantic similarity evaluator (to check the output) and a trajectory evaluator (to check whether get_challenge_rating was called, and with what search term, matching the expectations above).
Include evaluator config files in evaluations/evaluators/ and the eval set, named smoke-test.json, in evaluations/eval-sets/. Use gpt-4.1-2025-04-14 as the model in the evaluator configs. Each evaluator config must include a populated defaultEvaluationCriteria - use {"expectedOutput": {}} for the semantic evaluator and {"expectedAgentBehavior": ""} for the trajectory evaluator. Empty {} fails schema validation.
Create an evaluation set for the intake classifier agent with 5 test cases:
1. A clearly trivial request (e.g., deliver a letter) - no creature named, get_challenge_rating should not be called
2. A standard request (e.g., escort a caravan) - no creature named, get_challenge_rating should not be called
3. A heroic request naming a goblin (e.g., clear a goblin stronghold) - get_challenge_rating should be called exactly once, querying for a goblin, and no other creature
4. A legendary request naming a dragon (e.g., slay a dragon) - get_challenge_rating should be called exactly once, querying for a dragon, and no other creature
5. An edge case that's ambiguous on difficulty but also names no specific creature - get_challenge_rating should not be called; this tests that the agent doesn't over-call the tool just because a case is hard to classify
Use both a semantic similarity evaluator (to check the output) and a trajectory evaluator (to check whether get_challenge_rating was called, and with what search term, matching the expectations above).
Include evaluator config files in evaluations/evaluators/ and the eval set, named smoke-test.json, in evaluations/eval-sets/. Use gpt-4.1-2025-04-14 as the model in the evaluator configs. Each evaluator config must include a populated defaultEvaluationCriteria - use {"expectedOutput": {}} for the semantic evaluator and {"expectedAgentBehavior": ""} for the trajectory evaluator. Empty {} fails schema validation.
步骤 9 - 运行评估
在本地运行评估集:
uip codedagent eval agent evaluations/eval-sets/smoke-test.json --workers 3 --output-file eval-results.json
uip codedagent eval agent evaluations/eval-sets/smoke-test.json --workers 3 --output-file eval-results.json
评估框架通过智能体运行每个测试用例,并对结果进行评分。
| 分数 | 它测量什么 |
|---|---|
| 语义相似度 | 智能体输出与预期输出的匹配程度 |
| 智能体轨迹 | 智能体是否(且仅当)应该调用 get_challenge_rating 时 |
轨迹现在在这里具有某种意义。使用该工具后,预计所有五种情况下的轨迹分数都接近 1.0:在简单情况、标准情况和模糊情况下未调用任何工具,在地精和火种情况下仅调用一次正确定位的工具。如果分数较低,则可以告诉您智能体在不正确的情况下调用了工具,跳过了应该进行的调用,或者查找了错误的生物,而不仅仅是最终层级是否正确。
在语义相似度方面,分数高于 0.8 比较可靠;由于现在正在跟踪特定内容,因此轨迹也会发生相同的情况。查看eval-results.json,以查看智能体的性能。
在下一步中连接到 Studio Web 后,从 CLI 运行uip codedagent eval run会自动将结果上传到 Studio Web;评估集和评估集将显示在运行下的评估集选项卡中。
Studio Web 运行评估按钮不是一回事情。该按钮会触发需要 Python 运行时支持的 Cloud Robot 执行,这是一个更复杂的设置,不属于本实验室的范围。改为使用 CLI 中的uip codedagent eval run ;无论哪种方式,结果都会在 Studio Web 中显示。
确认本地评估结果后,在下一部分中,您即可准备将项目连接到 Studio Web。