本轮针对 A4 分层盲测暴露的事实编造、同义重复追问和风险场景未人工接管进行确定性修复。A4 原始评测只有 20/48 对,修复后没有再次调用付费模型,因此以下结果只表示规则门禁和冻结坏回复回归通过,不代表 48 条总体回复准确率已经提升。
唯一真源是 QIWEI-skill。房产业务目标、房源工具和生产数据没有进入通用运行时;业务目标继续通过 businessGoal、stagePlaybook 及业务知识覆盖层配置。
| 退化 | 修复 |
|---|---|
| 无关 citation/tool 为价格、库存、媒体或房况断言背书 | 事实按分句验证;外部事实只接受能定位到具体内容的 citation/tool,数字逐值匹配 |
| “其他待核验”保护前面的确定性断言 | 不确定性只保护同一分句中的断言 |
| 客户已给预算、目标学校、区域或房源,Agent 换说法再问 | 使用会话、画像字段和 alias 判断已答字段;识别无问号的“告诉我心理预算”等采集句 |
| 学区、价格、房况、产权、融资、投诉、看房等风险场景继续自动推进 | Planner 标记风险类型;正文必须含已执行/立即执行的人工交接,JSON 同时要求 requiresHuman=true |
| 首轮失败后修订仍失败但继续外发 | 最多修订一次;失败后 review/auto/autopilot 均保留人工草稿,发送方法入口再次 fail-closed |
人工 manualSend 和人工编辑后 approveDraft 不经过 Agent 质量门,仍遵守既有白名单、私聊和长度边界。
| 字段 | 类型 | 语义 |
|---|---|---|
qualityScore |
integer 0..100 \| null |
确定性检查加权分;不可用或旧数据缺失为 null,不能把缺失解释为 0 |
qualityChecks |
QualityCheck[] \| null |
本次检查明细;旧数据缺失为 null,不是空结果 |
qualityPassed |
boolean \| null |
仅表示 Agent 质量门结果;旧数据缺失为 null |
rewriteCount |
0 \| 1 \| null |
Agent 质量修订次数;旧数据缺失为 null |
fallbackReason |
string \| null |
稳定流程 code;旧数据缺失为 null |
QualityCheck 的核心 shape 固定为:
{
"id": "fact_evidence",
"passed": false,
"weight": 14,
"hard": true,
"detail": "事实有可定位依据或在同一断言内明确待确认"
}
前端可通过 UI adapter 本地化 id/detail,不改变核心字段,也不能用总分抵消 hard=true 的失败项。
| code | 含义 |
|---|---|
quality_gate_failed |
首次确定性质量门未通过,尚未完成修订 |
rewrite_limit_reached |
已使用一次修订机会,仍未通过或修订执行失败 |
requires_human |
文本通过质量门,但风险/业务边界要求人工接管 |
quality_unavailable |
本次没有可用质量评估 |
"" |
质量通过且无需人工 |
null |
旧数据没有该字段,不推断结果 |
失败的具体原因从 qualityChecks、failedCheckIds 或 hardFailureIds 读取,不再把检查 ID 拼到 fallbackReason。
Delivery 只认真实 outbound 消息。草稿、质量通过、计划发送、人工接管和工具执行均不构成 Delivery;只有企微发送链实际创建 outbound 消息后才显示已发送。风险回复即使 qualityPassed=true,只要 requiresHuman=true 就必须停留在人工草稿。
命令:
npm run agent:quality-smoke
node E:\企微技能包测试\testing\reply-quality\regression-review\a4-regression-gate.mjs --qiwei-root E:\workspace\QIWEI-skill
| 指标 | 结果 |
|---|---|
| 固定低质量样本拦截 | 11/11 |
| 固定合格样本误杀 | 0/11(0%) |
| A4 去标识化冻结坏回复精确覆盖 | 10/10 |
| 冻结坏回复直接放行 | 0 |
| 风险模式 | review/auto/autopilot 均保留人工草稿,outbound=0 |
| 合格普通回复 | auto/autopilot 可外发 |
| 人工发送 | 不受 Agent 质量分阻断 |
| 纯确认/致谢 | no_reply_needed |
这些是确定性门禁夹具,不是模型盲测胜率或线上客服准确率。
通用能力同步到旧 VOC 时需要字段级同步:
mcp/src/core/response-quality-contract.jsmcp/src/core/response-quality-planner.jsmcp/src/core/response-quality-verifier.jsmcp/src/core/agent-runtime.js 的质量评估、一次修订和结构化返回区域mcp/src/core/agent-workbench-service.js 的 Agent 内容二次门禁及 autopilot 入口校验scripts/response-quality-regression-fixtures.jsscripts/agent-response-quality-smoke-test.jspackage.json 的质量专项与语法检查入口业务项目后续手工 merge 时保留自己的房源 Provider、业务知识、Session 预创建、消息归档和 autopilot 配置,只接入公共质量字段与发送前闸门。ClaudeCodeSessionStore、sessionKey、rotate/resume/reset 均不在本轮变更范围。
本轮没有提交、推送、发布 npm,也没有访问或写入业务远端数据。完成旧 VOC 字段级同步和两仓完整 release:check 前,不进入业务副本同步。