v1.21.0 冲突与和好弧——关系事件状态机
v1.21.0 冲突与和好弧——她会真的受伤、会别扭、和好有惯性
四个 PR(#253 设计稿 → #254 状态机+数据层 → #255 检测+表达+收编 → #256 面板+门禁+验收)组成的关系事件状态机。设计文档:docs/CONFLICT_ARC.md。
核心:从隐式数值漂移到显式状态机
normal → hurt → cold → withdrawing → normal_with_scar
↘ ↘ ↙
repairing → normal
- 关系事件:踩雷区(taboo)/伤人话/反复施压/长期冷落 → 建事件(severity 1-4,小事 sev≤2 自然消化不建事件)
- wound vs distance 两类修复:他伤了她 → cold 后必须正面道歉才解锁修复,"行了别生气了"这种敷衍道歉修得慢(matched vs generic);他消失了 → 重逢本身就是修复开始(v1.14 重逢阶梯按天文案全部保留)
- 和好有惯性:repairing 有最短时长不许秒和好;修复期再犯直接 cold 且余怒升级更快;hurt 也可以"聊着聊着就过去了"(72h 自然消化——小别扭不必每个都戏剧化)
- 依恋风格全程调制:anxious 升级快软化快、cold 期会主动试探一条;avoidant 抽离更深更久(上限 10 天);secure 60% 概率直说"你刚才那句话我不太舒服"而不是冷战——刻意保留的健康关系示范
- 她记得:冲突与和好都入长期记忆("上次你就说过不查岗");冷战未修复的事件留疤——trust 永久小幅下调 + 同类再犯她失望来得更快
收编整合(不是再加一套并行逻辑)
v1.14 冷落逐级、v1.14.5 尊严上限、v1.16 重逢阶梯、v1.7 低能量模式、v1.13 escalation 全部统一进一套状态机——"她对你冷"在系统里只剩一个事实来源。旧的冷落语气分支删除,低能量模式语义重新划界("她今天蔫"≠"她对你冷")。
红线(每条都有确定性护栏,不靠 LLM 自觉)
- 绝不说分手/拉黑/威胁性告别,绝不愧疚操控、不索要补偿(出站逐段扫描,引号复述豁免)
- 绝不武器化你倾诉过的伤心事(冲突态从记忆召回源头不给料)
- withdrawing 硬时长上限 5/7/10 天,绝无永久冷战
- 危机信号最高优先:冷战中你说出自伤倾向 → 她立即放下全部别扭,危机流程接管(专门测试盯防——这是本系统最大的事故面)
- safe_mode(未成年):状态封顶 hurt,禁冷战,冲突一律轻量化
工程
- 检测搭 inner OS 便车:同一趟调用末行多产一行结构化 JSON,零新增 LLM 调用;regex 证据 + LLM 语境双信号合成,LLM 单独信号封顶 sev2 防误判
- emotion-debug 管理面板:状态/事件流水/信号流水(每条消息的增量及原因)——情绪因果可查,不上线玄学
- CI 门禁 16→19 项:转移表逐条 90 断言 / 落库链 e2e 10 项 / 红线护栏+危机覆盖 36 项
- 真 LLM 沙箱五场景验收全过(冷落重逢/matched vs generic 道歉/修复期再犯/secure 直说/冲突中危机接管),对话片段见 #256
验收原则(写进设计文档开头)
指标只看一致性与自然度(状态-言行匹配率、红线零触发、AI 味抽检),不看任何留存/时长指标。冲突系统的目的是让关系有重量,不是让用户离不开。