先读懂自动重试
自动重试不需要配置。重试等待时,Attempt 的活动行会显示类似这条信息:errored,错误中会出现摘要:
在发现故障时声明影响范围
你自己检查共享服务或 Fixture 时,可以直接抛出带有影响范围的错误:ExperimentFatalError停止同一实验尚未开始的 Attempt。它适合共享服务、共享凭据和实验级配置故障。EvalFatalError只停止当前评估尚未开始的 Attempt。它适合确定性缺失的 Fixture 或该评估专用的前置资源。
ExperimentFatalError 停止同一实验的剩余 Attempt:
识别运行中断开的共享服务
有些共享服务在实验开始时正常,却在运行中断开。这种失败通常由 SDK、CLI 或网络库抛出。你可以用实验的classifyFailure 识别自己的服务地址:
ECONNREFUSED 都当成实验级故障,因为 Agent 访问其他站点时也可能出现同样的错误。
修复后继续运行
止损生效后,已经失败的 Attempt 会记为errored。还没开始的 Attempt 会记为 unstarted,运行状态会显示 incomplete。
修好服务、凭据或 Fixture 后,重新运行原命令。NiceEval 会保留已通过的结果,并运行之前 errored 或 unstarted 的部分。
classifySendFailure。该字段的类型和边界见 defineSandboxAgent 参考。