docs: spec第三轮自查——全局禁令改写防自锁/模板句入枚举/计数持久化集成测试/新裸号边界/无参语义说明

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-10-08 10:52:42 +08:00
parent aa94528f34
commit 785c40a157
@@ -55,6 +55,14 @@
5. 已有【好差示例】节补 2 组:①客户给裸号 → 差:直接"Got it"收下;
好:礼貌请其重发完整号(一次);②已有 WhatsApp → 差:再问 WhatsApp;
好:轻补邮箱一次
6. **⚠️ 既有全局指令同步改写(第三轮自查发现,不改则功能自锁)**:语言规则
中"客户已留资时不用任何索要句,改确认式"的硬指令会抑制邮箱轻补行为
(GLM 遵守更显眼的老禁令、拒绝执行新策略)——必须改写为"已留资时不再
索要**已在手的渠道**(改确认式);**缺失渠道**可按【联系方式引导策略】
轻补一次"
7. **新话术纳入模板句清单**:国家代码追问句、邮箱轻补句加进语言规则开头的
模板句枚举(固定短句/转接句/互留句之外新增两席)——保证西语等小语种
客户场景同样"整句用英文/中文原版,绝不翻译",与既有语言规则自洽
### 4.2 状态感知提醒(conversation.py _build_context_reminder)
@@ -107,6 +115,8 @@
- 客户重发完整号走现有"改号覆盖"机制 → 会消耗一次 correction 邮件/推送
(与邮箱后到共享每会话 3 封上限,正常预算内)
- 客户拒绝补国家代码:号码按现状照常 confirmed,线索照发(软引导不设卡)
- 客户配合后又换了个**新的裸号**:不再二次追问(`_cc_asked` 一次性计数是
会话级,防死缠优先于数据完美)
## 5. 不动清单
@@ -132,8 +142,12 @@
若未来扩 REASK 模式或改模板措辞导致命中,此断言报警,防功能自锁
5. **推送 payload 断言**:`_email_asked`/`_cc_asked` 不得出现在 _build_payload
产物中(`_` 前缀过滤生效)
6. 全量 pytest 绿(现有再索要墙断言按新语义同步更新)
7. **真实 LLM 验收**(生产冒烟后补):①客户给裸号 `0501234567` → AI 礼貌请其
6. **计数持久化集成测试**(第三轮自查补充):用现有 manager 流程测试设施
(mock LLM)跑两轮——第一轮触发提醒注入后 `_email_asked`/`_cc_asked` 已
落库,第二轮 reminder 不再含对应注入句(防"写回失效退化为每轮都问")
7. 全量 pytest 绿(注:`asks_contact` 无参调用语义完全不变,现有墙断言
无需改动;仅新参数行为需上述新测试)
8. **真实 LLM 验收**(生产冒烟后补):①客户给裸号 `0501234567` → AI 礼貌请其
重发完整号(仅一次);②客户留 WhatsApp → AI 轻补邮箱一次;③只留邮箱的
客户 → 不被纠缠要 WhatsApp(分步双要以 WhatsApp 起手,邮箱-only 客户
场景 AI 不硬要)