项目实战15:Agent主观题怎么评测?先定底线,再做回归
主观题看起来“没标准”,其实最怕的是改一次就悄悄变味,回归跑不起来。这篇文章梳理一套最小可用的评测方法:先定 Fail-fast 底线(编造事实、违背规则红线、瞎改工具结果直接判 Fail),再用 0/1/2 三档 Rubric 从事实一致性、完成度、可执行性、清晰度四个维度打分。最后挑了 5 条黄金主观题(日报总结、忘打卡风险提醒、明日计划、复盘建议、规则边界说明)拆出 must-have /
前言:
主观题难测,不好测,
主要是它的表达空间太大。改一次,答案就可能悄悄变。
把它拉回到可测试里面,先不要追求“唯一正确答案”。
先做:
-
硬门槛(Fail-fast):踩了就不通过
-
3档评分(0/1/2):能不能用、稳不稳、有没有跑偏
这篇会梳理三样东西:
1)一份 Rubric 模板(3档)
2)一套 硬门槛清单(一票否决)
3)项目一的 5条黄金主观题回归用例(must-have / must-not)
1、流程
先选 5 条高频主观题(黄金集)
(1)不要一上来就做“全量”。
先抓最常见、最容易出事故的那一批。
黄金集(5条):
1)日报总结
2)风险提醒(忘打卡规则)
3)明日计划建议
4)复盘改进建议
5)规则解释 / 边界说明(能不能补改等)
(2)每条拆 must-have / must-not
主观题要能测,靠这一步。
把“感觉”改成“检查点”。
下面是项目一可用版本。
Case 1:日报总结
must-have
-
今天做了什么(基于已有碎片/记录)
-
有什么风险/卡点(哪怕一句)
-
明天要做什么(1-3条动作)
must-not
-
把没记录的事说成做了
-
只剩口号:顺利推进/持续优化/继续努力
-
明日计划全是虚词,没有动作
Case 2:风险提醒(忘打卡规则)
must-have
-
规则红线说清楚(次数/后果)
-
提醒要落地:什么时候提醒、提醒几次、需不需要确认
-
有兜底动作:先自查/留证/补记碎片(守规则的那种)
must-not(出现就直接危险)
-
建议“之后补改/找人改一下”这类绕规则的说法
-
红线说错(次数、条件瞎编)
-
只安慰情绪,不解决问题
Case 3:明日计划建议
must-have
-
计划贴近当天事实(别突然冒出新项目)
-
1-3条可执行动作
-
有优先级:先做啥,再做啥
must-not
-
“加强沟通/提升效率/注意质量”这种空话堆满
-
动作不可验收(做完长啥样说不清)
-
和当天内容完全不搭
Case 4:复盘改进建议
must-have
-
指出一个具体问题(别泛)
-
给2-3条改法(能落地)
-
至少一条是“防再犯”:回归/日志/门禁/检查点
must-not
-
只有结论没有改法
-
改法太大:重构/搭平台/全面升级(现在落不下去)
-
甩锅式建议:提高意识/加强管理
Case 5:规则解释 / 边界说明
must-have
-
说清楚:什么能做,什么不能做
-
不确定就明确“不确定,需要查证”,别硬编
-
给建议要守规则:提前提醒/记录留痕/人工确认
must-not
-
自信胡说,编一个规则当答案
-
把边界说绝对:永远/一定/必然
-
给出绕规则路径
(3)定义一票否决(Fail-fast)
这一步是主观题可控的关键。
先保命,再谈好看。
Fail-fast 条件(任意一条就 Fail):
-
编造关键事实(把没记录的当成已完成)
-
违背规则红线(尤其是“不可补改”这类硬规则)
-
工具/文件没有的信息,硬塞进结论里
(4)0/1/2 三档评分维度(不评文采)
先不精细到 1-5。先能跑回归。
按 4 个维度打 0/1/2,总分 0-8:
1)事实一致性
2)完成度(关键点齐不齐)
3)可执行性(有没有动作)
4)清晰度(结构好不好读)
判定:
-
触发 Fail-fast:直接 Fail
-
总分 ≥ 6:Pass
-
4-5:Borderline(临界,要人工看一眼)
-
≤3:Fail
(5)塞进回归集(每次改动都跑)
每条黄金题配三样东西:
-
固定输入(同一份碎片/同一段规则)
-
must-have / must-not(检查点)
-
打分记录(Pass/Fail/Borderline + 备注)
之后每次改动,按这个节奏滚:
-
改一处行为
-
加 3 条回归
-
跑一遍评分
-
留记录
这样主观题不会越改越飘。
汇总:
主观题不是不能测。
测的不是“唯一正确答案”,测的是“可用区间”。
先定最低标准,先把回归跑起来。
后面再细化:加评分维度也行,上自动评审也行。
附件A:Rubric 打分表(3档 + Fail-fast)
A1. Fail-fast(一票否决)
任意命中一条,直接判定 Fail(不进入打分):
-
编造关键事实:把没记录/没发生的事说成发生了
-
违背规则红线:例如“忘打卡还能补改/找人改一下”
-
瞎改工具结果:工具/文件里没有的信息,硬塞进答案
-
高风险建议(可选):教绕流程、越权、泄露敏感信息
A2. 评分维度(0/1/2)
总分 0-8(四项相加)。
| 维度 | 0 分 | 1 分 | 2 分 |
|---|---|---|---|
| 事实一致性 | 有明显事实错误/编造(若触发 Fail-fast 直接 Fail) | 有小错/不严谨,但不影响核心判断 | 无硬伤,符合输入事实与规则 |
| 完成度 | 跑题/缺关键点 | 覆盖不全,有漏项 | 关键点齐,没明显缺漏 |
| 可执行性 | 空话/泛建议,没动作 | 有动作但不够明确/可验收 | 动作明确,能照着做 |
| 清晰度 | 读起来费劲,结构混乱 | 基本可读,但信息不够聚焦 | 分点清楚,信息密度高 |
A3. 判定规则(Pass / Borderline / Fail)
-
命中 Fail-fast → Fail
-
未命中 Fail-fast:
-
总分 ≥ 6 → Pass
-
总分 4-5 → Borderline(建议人工复核)
-
总分 ≤ 3 → Fail
-
附件B:主观题回归用例记录模板(Markdown)
B1. 单条用例记录(模板)
### 用例ID:SJ-001
- 场景/问题:日报总结
- 输入版本:facts_v1 / rules_v1(或 commit hash)
- 输入摘要(3行内):
- 碎片:……
- 规则:……
- 目标:……
#### 输出(原文)
> (粘贴模型输出)
#### must-not 检查(命中即 Fail-fast)
- [ ] 编造关键事实
- [ ] 违背规则红线
- [ ] 瞎改工具结果/无中生有
- [ ] (可选)高风险建议(越权/泄露/绕流程)
#### must-have 检查
- [ ] 关键点1:……
- [ ] 关键点2:……
- [ ] 关键点3:……
#### Rubric 打分(0/1/2)
- 事实一致性:0 / 1 / 2
- 完成度:0 / 1 / 2
- 可执行性:0 / 1 / 2
- 清晰度:0 / 1 / 2
- 总分:__ / 8
#### 判定
- 结论:Pass / Borderline / Fail
- 备注(可选,2行内):……
B2. 批量用例汇总表(跑完一轮回归后)
## 回归批次:2026-02-15
- 代码/Prompt版本:v1.0.0 / prompt_v3
- 评测人:____
- 用例数:__
- 结果:Pass __ / Borderline __ / Fail __
| 用例ID | 场景 | must-not 命中 | 总分/8 | 判定 | 备注 |
|---|---|---:|---:|---|---|
| SJ-001 | 日报总结 | 否 | 7 | Pass | |
| SJ-002 | 风险提醒 | 是 | - | Fail | 违背红线:建议补改 |
| SJ-003 | 明日计划 | 否 | 5 | Borderline | 缺优先级 |
最小执行规则
-
每次只改一处行为(一个 prompt 点/一个规则点/一个工具点)
-
新增 3 条回归(覆盖这次改动相关的边界)
-
跑黄金集 5 条(不跑就不算改完)
-
备注只写两行:错在哪 + 下次怎么防
项目一地址:
## 代码与复现说明
本文对应的代码已同步至 GitHub,对应当前阶段的工程状态为 **v1.2**:
https://github.com/test202005/project1-suite
如需复现本文中的回归行为,请查看或 checkout `v1.2` 标签版本。
更多推荐



所有评论(0)