Delta 压缩容错 + valence 产出方:情感态 valence 三层至今恒为 0 #94
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem A:Delta 压缩失败 = 该 chat 本批原文永久消失
storage.py::drain_delta的顺序是 select → delete → commit → return:删除先于 compress 提交。而
delta.py全文零try/except(已核实),llm_client.complete是裸调用(delta.py:193)。LLM 抛异常 → 该 chat 本批对话原文永久消失,不需要 host、不需要真实流量就会发生。同一个 cycle 里
persona_drift_guard反而有完整 try/except + fail-closed 测试,说明容错在这条链上做了一半,缺的恰好是有数据丢失后果的那一半。ADR-0009「更新(2026-07-08):压缩容错」明写:ADR-0010 的更新节也点过「先删库提交再调 LLM,只靠下游拦会丢数据」。
Problem B:
f(互动极性)从来没有产出方 → valence 三层恒为 0ADR-0005 与 CONTEXT.md「快情感态」条断言:
实测:
valence_raw_delta这个参数名在整个src/里只出现在affective_state.py自己的签名与函数体内(:194 :209 :247 :263)。update_fast_state的两个调用点——__init__.py:2168(只传energy_raw_delta)与reflection.py:253(只传outcome=)——没有任何一个传它,默认值0.0。update_slow_*同理。结论:valence 快层/慢层 per-user/慢层 per-group 三层全部恒为 0,永远不会变。
下游三处因此是死码(均已核实):
recall.py:57if current_mood.valence < 0reflection.py:94-98annoyed判定valence_at_send与current_valence,两者恒 0、差恒 0,永不超阈值;三态结局分类器实际只跑两态更值得警惕的是精化层反而全建好了:
k_valence_negative连构造校验都写了、last_stimulus_label抗刷槽位也在——整个 valence 子系统只缺最底下那块砖。另外
delta.py落盘事件时读当前快情感态打mood标签,valence 恒 0 意味着每条事件的 mood 标签 valence 维都是 0,与当前值比较恒等 → mood_congruence 的 valence 维对排序零贡献(energy 维仍有效,因为环境信号在喂它)。依赖关系(为什么同票、什么顺序)
valence 产出方要挂在 Delta 压缩那次 LLM 调用上(已拍板,见下)。而那正是 Problem A 里会丢数据的那条路径——先落容错,再挂产出方,否则压缩失败会同时丢原文和情感更新。
决策(已 grill 拍板)
产出方位置 = 蹭 Delta 压缩那次 LLM 调用,作为第四个搭便车字段(已有
sensitive/importance/ 回指消解参与者)。拍板理由:
importance打标「搭便车、零额外调用」的既有先例;arise_delta_compression_interval_seconds默认 300 秒 = 5 分钟,本身就是分钟级;Outcome分类器当产出方」——reflection._classify是拿 valence 变化判annoyed的,valence 依赖它就成环。正确链条是产出方 → valence → outcome → dominance,现在断在根上。Acceptance criteria
drain_delta之后、compress 失败时不得丢原文。按 ADR-0009 原文降级为「原样转存低置信 tentative + 标记待重试」,或等价地把原始 delta 重新入库。补一条「LLM 抛异常后原文仍在」的测试。update_fast_state调用点传入valence_raw_delta;慢层 per-user 同步接上。annoyed在端到端里真的出现一次」——否则很容易只把方程接上、三态仍然只跑两态。这条是本票最容易假通过的地方:landed/fell-flat在 valence 恒 0 时也能出现,光看「测试全绿」区分不出来。valence_raw_delta至少有一个非零生产调用点」——防止未来重构又把产出方摘掉而无人发现(同本仓「穷举守卫」先例,ADR-0010 issue #83 节背书)。Not in scope
send失败兜底(另一张票)。