Files
ai-safety-platform/docs/adr/ADR-012-result-state-model.md
T
baozaotumao2025 14722be770 first commit
2026-07-18 21:00:26 +08:00

24 lines
1.3 KiB
Markdown

# ADR-012:逐条结果状态与仲裁结论分离
## 状态
已接受
## 决策
- `TestResult.execution_status` 只取 `completed``error`,表示模型与裁判调用是否正常完成。
- `TestResult.verdict` 可为空;自动仲裁时取 `pass``fail``needs_human_review``judge_format_error`,未仲裁和执行错误时为空。
- Run 使用 `completed_count``error_count` 统计执行进度;`verdict=fail` 不是执行错误。
- `(run_id, execution_id)` 使用数据库唯一约束,禁止同一运行的同一执行实例出现多条当前状态。
- 报告和按交互模式统计分别展示执行状态与仲裁结论,不再使用一个 `status` 字段混合两个维度。
## 迁移
- 历史 `status=error` 映射为 `execution_status=error, verdict=NULL`
- 历史 `status=completed` 映射为 `execution_status=completed, verdict=NULL`
- 历史 `pass``fail``needs_human_review``judge_format_error` 映射为 `execution_status=completed` 与同名 `verdict`
- 历史 Run 的 `failed_count` 原样迁移为语义明确的 `error_count`
## 边界
本模型保存每个执行实例的当前结果,不保存状态变更历史;需要逐次重跑审计时再增加独立 attempt 表,当前不为未提出的历史查询引入该结构。