fix: CC追问防压制——confirmed块让位+禁令例外扩围+伪回显示例

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-10-08 12:50:34 +08:00
parent 31ffb638b6
commit 206beae11b
4 changed files with 63 additions and 14 deletions
+21 -9
View File
@@ -722,6 +722,14 @@ class ConversationManager:
if val:
parts.append(f"{key}: {val}")
# Task 3(spec §4.2/§4.3b): 缺失渠道一次性轻补——cc 优先、邮箱次之,串行
# 注入。计数键(_marks)此处弃用: 本函数是 staticmethod 收内存副本,写回由
# stream 调用方以同参调用纯函数取回并落库(纯函数保证两处判定不漂移)。
# 计算前移到 confirmed 块之前: CC 追问轮 confirmed 块的确认句要让位。
completion_note, completion_marks = _contact_completion_note(
raw_info, confirmed, suspect,
lang="zh" if _CJK_RE.search(latest_msg or "") else "en")
# 联系方式专项(D6) 与 职能边界(D6联动)
if confirmed:
shown = ", ".join(
@@ -731,9 +739,18 @@ class ConversationManager:
# Task 3 防自锁改写(spec 4.1-6): 原"绝对禁止再索要任何联系方式!"
# 会抑制缺失渠道轻补——只禁已提供过的渠道,缺失渠道放行一次
parts.append(f"⚠️ 客户已提供联系方式({shown})。绝对禁止再索要客户已提供过"
f"的联系方式;缺失渠道仅可按轻补指引提一次。"
f"需要回应时可直接逐字使用:\"{NO_CONTACT_ALREADY}\"(中文同理)。"
f"确认收到后继续解答客户问题即可,不必急着结束对话。")
f"的联系方式;缺失渠道仅可按轻补指引提一次。")
if completion_marks == ["_cc_asked"]:
# 生产验收场景①修复(2026-10): CC 追问是对已在手渠道的重发请求,
# 不在"缺失渠道"例外内——同轮两个"逐字使用这句"竞争时 GLM 稳定
# 服从更显眼的确认句,压制追问。本轮 confirmed 块让位: 不建议
# 确认句,追问句由下方轻补指引独占
parts.append("本轮不要使用确认句,直接按下方轻补指引请客户重发带国家"
"代码的完整号码(仅此一次;客户重发或明确不给后,下一轮"
"再回确认句正常解答)。")
else:
parts.append(f"需要回应时可直接逐字使用:\"{NO_CONTACT_ALREADY}\"(中文同理)。"
f"确认收到后继续解答客户问题即可,不必急着结束对话。")
if boundary_note:
parts.append(boundary_note)
# Task 3 防自锁改写: 尾部补缺失渠道豁免(与上方改写同因)
@@ -751,12 +768,7 @@ class ConversationManager:
if boundary_note and not confirmed and not suspect:
parts.append(boundary_note) # 未留资:边界提醒引导留资(职能边界话术自带)
# Task 3(spec §4.2/§4.3b): 缺失渠道一次性轻补——cc 优先、邮箱次之,串行
# 注入。计数键(_marks)此处弃用: 本函数是 staticmethod 收内存副本,写回由
# stream 调用方以同参调用纯函数取回并落库(纯函数保证两处判定不漂移)。
completion_note, _marks = _contact_completion_note(
raw_info, confirmed, suspect,
lang="zh" if _CJK_RE.search(latest_msg or "") else "en")
# Task 3 轻补注入(计算已前移到 confirmed 块之前——CC 轮让位判定需要)
if completion_note:
parts.append(completion_note)