运行前先看计划
加上--dry,NiceEval 只列计划,不调用模型,也不创建 Sandbox:
reuse 后面是要沿用的旧结果 locator;execute 后面是要重跑的原因。上面第二行的 input-identity-changed 表示这道题的输入变了,例如你改了评估用例、Fixture 或模型。
结果和你预期的不一样时,先看原因。例如你只改了报告里的分组名,却看到整批 execute,说明某个会影响结果的输入也一起变了。
哪些结果会被沿用
一个旧 Attempt 同时满足下面几条才会被自动沿用:- 它已经有明确结论,
passed或failed。errored说明上次没跑成,总会重跑。 - 评估用例、Fixture、模型、Agent、判分标准和运行条件都和这次相同。
- 它的耗时没有超过这次的
timeout。 - 这次的
--rerun没有要求重跑它。 - 这次没有用
--keep-sandbox要求真实执行。
description 或 labels 不会让旧结果失效。评估用例文件不同:文件内容一变,这道题就会重跑。
控制重跑范围
--rerun 等于 --rerun failed,已经通过的题不会重跑。要连通过的一起重做,必须写 --rerun all。
--rerun 只影响这一次运行,不会改动已有的结果。
确认旧结果在新配置下仍然成立
有时改动会让 NiceEval 判定旧结果不能沿用,但你知道它其实不受影响。例如你给 Agent 加了一个日志开关,这道题的行为完全没变。NiceEval 不会替你猜,需要你明确接受:accept 会新建一个 Run 引用这个旧 Attempt,原 Attempt 保持不变。要接受多条时,把所有 locator 写进同一条命令,NiceEval 会先检查全部输入,不会只接受一半。
怎样取得候选 locator、接受前要核对什么,见审阅并采用历史 Attempt。
跑完之后看结果
运行结束时,终端的NEXT 面板会列出这次新建的 Run,并给出在终端和浏览器里查看它的两条命令:
exp 还没结束时用 show --experiment 看结果,那时可能还没有任何已发布的结果。
查看结果的完整方式见查看运行结果。沿用和重跑的判定原理见 Runner。