qiwei-response-quality-a4-regression.md 5.2 KB

A4 回复质量退化修复与契约冻结

1. 结论与边界

本轮针对 A4 分层盲测暴露的事实编造、同义重复追问和风险场景未人工接管进行确定性修复。A4 原始评测只有 20/48 对,修复后没有再次调用付费模型,因此以下结果只表示规则门禁和冻结坏回复回归通过,不代表 48 条总体回复准确率已经提升。

唯一真源是 QIWEI-skill。房产业务目标、房源工具和生产数据没有进入通用运行时;业务目标继续通过 businessGoalstagePlaybook 及业务知识覆盖层配置。

2. A4 退化与修复

退化 修复
无关 citation/tool 为价格、库存、媒体或房况断言背书 事实按分句验证;外部事实只接受能定位到具体内容的 citation/tool,数字逐值匹配
“其他待核验”保护前面的确定性断言 不确定性只保护同一分句中的断言
客户已给预算、目标学校、区域或房源,Agent 换说法再问 使用会话、画像字段和 alias 判断已答字段;识别无问号的“告诉我心理预算”等采集句
学区、价格、房况、产权、融资、投诉、看房等风险场景继续自动推进 Planner 标记风险类型;正文必须含已执行/立即执行的人工交接,JSON 同时要求 requiresHuman=true
首轮失败后修订仍失败但继续外发 最多修订一次;失败后 review/auto/autopilot 均保留人工草稿,发送方法入口再次 fail-closed

人工 manualSend 和人工编辑后 approveDraft 不经过 Agent 质量门,仍遵守既有白名单、私聊和长度边界。

3. 冻结质量契约

3.1 字段

字段 类型 语义
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 的失败项。

3.2 fallbackReason

code 含义
quality_gate_failed 首次确定性质量门未通过,尚未完成修订
rewrite_limit_reached 已使用一次修订机会,仍未通过或修订执行失败
requires_human 文本通过质量门,但风险/业务边界要求人工接管
quality_unavailable 本次没有可用质量评估
"" 质量通过且无需人工
null 旧数据没有该字段,不推断结果

失败的具体原因从 qualityChecksfailedCheckIdshardFailureIds 读取,不再把检查 ID 拼到 fallbackReason

3.3 Delivery

Delivery 只认真实 outbound 消息。草稿、质量通过、计划发送、人工接管和工具执行均不构成 Delivery;只有企微发送链实际创建 outbound 消息后才显示已发送。风险回复即使 qualityPassed=true,只要 requiresHuman=true 就必须停留在人工草稿。

4. 确定性验收

命令:

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

这些是确定性门禁夹具,不是模型盲测胜率或线上客服准确率。

5. 同步边界

通用能力同步到旧 VOC 时需要字段级同步:

  • mcp/src/core/response-quality-contract.js
  • mcp/src/core/response-quality-planner.js
  • mcp/src/core/response-quality-verifier.js
  • mcp/src/core/agent-runtime.js 的质量评估、一次修订和结构化返回区域
  • mcp/src/core/agent-workbench-service.js 的 Agent 内容二次门禁及 autopilot 入口校验
  • scripts/response-quality-regression-fixtures.js
  • scripts/agent-response-quality-smoke-test.js
  • package.json 的质量专项与语法检查入口

业务项目后续手工 merge 时保留自己的房源 Provider、业务知识、Session 预创建、消息归档和 autopilot 配置,只接入公共质量字段与发送前闸门。ClaudeCodeSessionStoresessionKeyrotate/resume/reset 均不在本轮变更范围。

6. 发布状态

本轮没有提交、推送、发布 npm,也没有访问或写入业务远端数据。完成旧 VOC 字段级同步和两仓完整 release:check 前,不进入业务副本同步。