用途:排查 convex-evals 系统中单个失败的 eval,帮助定位模型输出与评测预期之间的差异。
适用时机:用户提供形如 https://convex-evals.netlify.app/experiment/.../run/$runId/$category/$evalId 的可视化 URL;用户询问“这个 eval 为什么失败”;用户引用具体 eval ID。
主要步骤:
- 从 URL 提取 evalId。URL 模式为 /experiment/$experimentId/run/$runId/$category/$evalId?tab=steps,需要 $evalId 用于查询。
- 在 evalScores/ 目录运行内部动作,并使用 --prod 查询生产库(CI 写入结果处): npx convex run --prod debug:getEvalDebugInfo '{"evalId": "<evalId>"}' 返回 JSON 包含 eval(名称、类别、evalPath、状态、任务文本)、run(模型、提供商、实验名、状态)、steps(filesystem、install、deploy、tsc、eslint、tests 的通过/失败/跳过及失败原因)、outputFiles(模型生成文件路径到内容)、evalSourceFiles(eval 源码,如 answer 目录、grader、TASK.txt)。
- 分析失败:查看 steps 中第一个 status.kind === "failed" 的条目及 failureReason;查看 outputFiles 中模型代码;查看 evalSourceFiles 中答案目录与 grader 测试文件;查看 eval.task 中 TASK.txt 内容。常见模式:eslint fail 检查具体规则;tsc fail 检查类型错误;convex dev fail 检查 schema 或函数定义;tests fail 对比模型输出与评测源文件。
- 分类并报告:MODEL_FAULT(模型确实出错)、OVERLY_STRICT(评测要求不合理)、AMBIGUOUS_TASK(任务描述不清但模型解释合理)、KNOWN_GAP(该 eval 已知对所有模型都存在的限制)。总结 eval 名、模型、实验;失败步骤与具体错误;分类与理由;导致失败的模型代码;正确代码(来自答案/评测源);是否建议采取行动(如配置变更、任务澄清)。
限制:该技能依赖 convex-evals 系统与生产数据库查询权限;资料未提供价格、其他平台支持或额外步骤,暂未提供更多信息。