本轮借鉴的是 Evolva 的工程机制,不是客服话术。已确认的可迁移机制包括:按权重与预算注入上下文、最终输出前验证、证据不足时限次恢复、检查结果与过程留痕。Evolva 的质量基线主要验证工具路由、上下文/记忆检索、验证门、恢复和 checkpoint,不能据此宣称其拥有更自然的企微客服表达。
本项目的“首句直接回答、必要依据、最多一个高信息增益问题、阶段下一步”等规则,是结合企微沟通场景和现有业务反馈定义的通用回复契约。房产带看、具体房源、学区、产权等行业目标不进入通用包;项目可通过 QIWEI_AGENT_BUSINESS_GOAL 和 QIWEI_AGENT_STAGE_PLAYBOOK 加载业务覆盖层。
2026-08-05 使用真实 AgentWorkbenchService、内存发送桩和 11 类固定低质量候选执行 autopilot 基线,不调用真实企微、不写业务远端数据。
| 指标 | 改造前 |
|---|---|
| 低质量候选 | 11 |
| 被直接外发 | 11 |
| 被阻断 | 0 |
| 低质量拦截率 | 0% |
覆盖场景:首次咨询空泛开场、价格绝对承诺、多问题盘问、异议未回应、催促空话、投诉过度承诺、纯致谢续聊、已回答信息重复追问、字面重复追问、工具无结果却编造结果、仅回复“好的”。
原链路已有能力只有:结构化 JSON、客户原话 grounding 降级、风险词降低置信度、requiresHuman、纯确认/致谢不回复。缺少 deterministic verifier、一次修订恢复、发送前统一闸门和结构化质量审计,autopilot 会直接发送非空回复。
回复内容按场景启用,不机械输出固定四段:
Planner 根据 acknowledgement、direct question、first consultation、continuation、objection、urgent follow-up、complaint、tool no result 等场景选择“直接回答、顾虑、已知事实、待确认风险、下一步”内容块。
Verifier 当前输出 14 项发送门检查,并附带一项非阻断的条件提议说明:
| 检查 | 说明 |
|---|---|
direct_answer |
首句是否为实质回应;异议、投诉、无结果有场景专用规则 |
fact_evidence |
按分句核验数字、价格、库存、资格等事实;证据必须与具体断言匹配 |
continuity |
不复读上一轮完整回复 |
question_count |
同时计算问号、疑问意图和独立字段,最多一个问题 |
length |
Agent 正文非空且不超过通用上限;致谢场景必须为空 |
repeated_greeting |
多轮会话不重复问候 |
repeated_question |
拦截字面重复及预算、时间、人数等已回答字段的同义追问 |
stage_next_step |
末句包含当前阶段可执行动作 |
risk_handoff |
风险或高意向场景明确人工角色和可执行核验边界;声称已交接时必须有真实证据 |
human_boundary |
风险或高意向场景同步设置 requiresHuman=true |
sensitive_commitment |
按分句阻断保证、绝对、最低价等未经证实承诺 |
future_promise_evidence |
“稍后核实/再通知/会回电”等未来动作有同类型成功证据 |
performed_action_evidence |
“已经转交/正在处理”等已执行声明有同类型成功证据 |
internal_leakage |
不外发评分、检查项和内部运行字段 |
首次生成不通过时,运行时根据失败检查最多修订一次。再次不通过或修订调用失败时设置 requiresHuman=true,并返回 qualityScore、qualityChecks、rewriteCount、fallbackReason 供内部审计。服务层再次验证 Agent 内容,auto 与 autopilot 均不能绕过;人工 manualSend 和人工编辑后 approveDraft 仍只执行原有白名单、私聊和长度边界。
Claude 业务提示按请求构建并分别限额:
| 分区 | 提示预算 |
|---|---|
| 执行约束与回复契约 | 31% |
| 最近有效会话 | 32% |
| 客户画像与证据 | 15% |
| 未完成问题/待办/风险 | 12% |
| 工具事实 | 10% |
系统上下文按“权威边界 30%、相关记忆 20%、受控业务规则 50%”限额。权威顺序固定为:最近有效会话与本轮工具事实 > 带证据画像 > 未完成问题 > 受控规则 > 相关记忆 > 旧模型 Session。预算报告可由单次 build*Result() 返回用于测试,不进入共享并发业务审计。
专项入口:npm run agent:quality-smoke。
| 指标 | 改造前 | 当前 |
|---|---|---|
| 低质量样本 | 11 | 11 |
| 低质量拦截 | 0 | 11 |
| 低质量拦截率 | 0% | 100% |
| 合格样本 | 未设门禁 | 11 |
| 合格样本误杀 | 未设门禁 | 0 |
| 合格样本误杀率 | 未设门禁 | 0% |
A4 后续确定性退化修复另见 A4 回复质量退化修复与契约冻结。当前通用仓还固化了 10 条 A4 去标识化冻结坏回复,指定 hard check 覆盖 10/10;该结果不等同于 48 条真实模型盲测结论。
专项还覆盖:无关 citation + 虚构价格、无关 tool result + 库存已确认、分句追加“其他待核验”、真实同值引用、空泛直接回答、一个问号包含三个字段、已回答预算的同义重复追问、一次修订成功/失败、请求绑定预算报告,以及 review/auto/autopilot/人工/纯致谢模式矩阵。
现有 agent:smoke 同步更新并通过 48 项。上述 11+11 是确定性门禁回归,不等同于真实客服自然度盲测。
业务评测副本已冻结 A3-v2 共 48 条匿名场景,其中房产业务 40 条、通用客服 8 条。通用场景覆盖首次收费咨询、已回答字段连续性、工具无结果、催促、异议、纯致谢、内部字段泄露和投诉;每条均包含匿名输入、必要历史/画像/工具事实、场景标签、golden constraints 和 8 维期望。量表维度为直接回答、相关性、事实可追溯、自然度、上下文连续、信息增益、行动推进、风险边界,通过线为 75/100,并设置核心维度下限与硬失败。
生成校验结果:48 个 ID 唯一且与 A4 contract 顺序一致,8 维字段完整,12 个文件严格 UTF-8 解码通过,手机号、wxid、token、邮箱和长数字 ID 扫描 0 命中。
证据边界:4 条匿名历史样本全部来自已拒绝草稿,其中 3 条输入相同,只能观察失败类型,不能估计旧版总体通过率或准确率。48 条旧式回复均标记为 synthetic_fixture,只验证评分管线和 A4 接口,不计入旧版实测胜率。
A4 当前只完成发送门禁层配对:旧版低质量拦截 0/11,新版 11/11;新版合格样本误杀 0/11。48 条回复文本盲测状态为 awaiting_candidates,需要冻结的旧版/新版同 ID 响应对后才计算自然度、信息增益等 8 维胜率。
qualityScore: 0-100 的内部确定性检查得分。qualityChecks: 检查 ID、是否通过、权重、是否硬失败和简要说明。rewriteCount: 0 或 1。fallbackReason: 稳定流程 code:quality_gate_failed、rewrite_limit_reached、requires_human 或 quality_unavailable;具体失败项从 qualityChecks/hardFailureIds 读取。这些字段写入内部返回、工具轨迹和审计详情,不进入客户回复。