情感态收尾:慢情感态energy产出方+反应式路径自我披露倾向 #125

Closed
opened 2026-08-13 01:35:22 +00:00 by KumaAgent · 0 comments
Member

Parent

#103 第四批清单:31 条实现类落差 + 9 条待拍板(条目 8、10)

What to build

ADR-0005 情感态收尾两处收口,均因 issue #94(2026-07-30 已合并)落地了 valence 产出方而改动面变小、部分前置已消失

一、per-user 慢情感态 energy 轴零产出方 + 私聊场景快层退错慢层作用域。#94 已让 valence 轴的 per-user 慢情感态"不管群聊私聊持续更新"这条断言成立,但 energy 轴仍零产出方;且 delta.py::_apply_interaction_polarity 对私聊 chat_id 也无条件读 group 作用域的慢情感态当衰减目标,与"私聊场景快层退向 per-user 慢情感态"的拍板决策相悖。

二、反应式路径缺"自我披露倾向"那半:模型被搭话时看不到自己的情感态三轴数值,只看得到关系四轴(trust 那半)。这条此前被裁决判"随 valence 产出方一起搭车",但 #94 已经把前置补上,现在可以独立落地。

Acceptance criteria

一、per-user 慢情感态修正(delta.py::_apply_interaction_polarity

  • 私聊作用域修正:把无条件的 get_slow_affective_state("group", chat_id) 改成按 is_private_chat_id(chat_id) 分流——私聊读 ("user", <对方 id>);私聊 chat_id 是 {room_id}.p 不等于 sender_id,需要一条从 speaker_polarity/delta entries 取对方 id 的规则
  • per-group 那次跟随更新在私聊下要不要跑,须在片内显式决定
  • 决定 energy 轴是否同时喂 energy_raw_delta——不能默不作声地加:#94 在 ADR-0005 更新节给出的不做理由(update_fast_state 衰减是调用驱动,多喂一轴等于多一次衰减驱动)仍然有效,要么在 ADR-0005 追加更新节说明为何现在改,要么显式记为"维持只写 valence"

原文(docs/adr/0005-affective-state.md「双时间尺度」节——群聊只读作用域的归属声明):

群聊场景下快情感态只读 per-group 慢情感态,从不读任何个人的 per-user 慢情感态(无需设计混合权重)。

原文(同节——快层退向哪一层):

三轴衰减项不退向固定数值,而是退向同一 chat 当前的慢情感态值(群聊退 per-group 慢情感态,私聊退 per-user 慢情感态——两者在私聊天然重合)。

  • A 型陷阱须钉住:上引"群聊场景只读 per-group、从不读个人 per-user"是归属声明——群聊里 per-user 慢层被设计成只写不读的累积器,AC 里必须明确禁止把它接进群聊快层的衰减目标

二、反应式路径补自我披露渲染

  • _full_frozen_snapshotrun()run_callback() 共用)与 _run_event_driven_turn(tier-2 环境信号 + 群聊即刻追问共用)两条路径都要补情感态三轴渲染——只补一条会留下另一条同样看不见 valence 的触发路径;若只做其中一条,须在 AC 里写明理由与归宿票号
  • 渲染直接复用既有 drive_tick.render_affective_state_fact,不要另写一个,避免两条路径渲染格式分叉
  • 只渲染原始数值,不做任何"情绪好/坏"式预先定性——原文两次拒绝过给自我披露写死合成公式,人设解读层由 LLM 透过 persona 自己判断

原文(docs/adr/0005「决策」节):

情感态升为所有拟人参数的中央调节器:调节打字速度、linger 概率、门控阈值、自我披露倾向、兴趣门阈值,并回喂门控。

原文(同文件「拒绝了(本轮追加)」节):

dominance 参与自我披露合成(三轴合成 f(valence, trust, dominance)):会与 valence(倾向)+trust(封顶) 的既有两层分工打架……改为 dominance 专管进取性、完全不碰自我披露

  • 避免同一轮内多读一次快情感态:_scored_eventsmood_congruence 权重开启时已读过一次,本片渲染须复用同一次读(同 delta._compress_one_chat 已有的"读过就复用,没读过才读"先例),权重关闭时不多打一次读

Blocked by

None — can start immediately

## Parent #103 第四批清单:31 条实现类落差 + 9 条待拍板(条目 8、10) ## What to build ADR-0005 情感态收尾两处收口,均因 issue #94(2026-07-30 已合并)落地了 valence 产出方而**改动面变小、部分前置已消失**: **一、per-user 慢情感态 energy 轴零产出方 + 私聊场景快层退错慢层作用域**。#94 已让 valence 轴的 per-user 慢情感态"不管群聊私聊持续更新"这条断言成立,但 energy 轴仍零产出方;且 `delta.py::_apply_interaction_polarity` 对私聊 chat_id 也无条件读 group 作用域的慢情感态当衰减目标,与"私聊场景快层退向 per-user 慢情感态"的拍板决策相悖。 **二、反应式路径缺"自我披露倾向"那半**:模型被搭话时看不到自己的情感态三轴数值,只看得到关系四轴(trust 那半)。这条此前被裁决判"随 valence 产出方一起搭车",但 #94 已经把前置补上,现在可以独立落地。 ## Acceptance criteria **一、per-user 慢情感态修正(`delta.py::_apply_interaction_polarity`)** - [ ] 私聊作用域修正:把无条件的 `get_slow_affective_state("group", chat_id)` 改成按 `is_private_chat_id(chat_id)` 分流——私聊读 `("user", <对方 id>)`;私聊 chat_id 是 `{room_id}.p` 不等于 sender_id,需要一条从 `speaker_polarity`/delta entries 取对方 id 的规则 - [ ] per-group 那次跟随更新在私聊下要不要跑,须在片内显式决定 - [ ] 决定 energy 轴是否同时喂 `energy_raw_delta`——**不能默不作声地加**:#94 在 ADR-0005 更新节给出的不做理由(`update_fast_state` 衰减是调用驱动,多喂一轴等于多一次衰减驱动)仍然有效,要么在 ADR-0005 追加更新节说明为何现在改,要么显式记为"维持只写 valence" 原文(docs/adr/0005-affective-state.md「双时间尺度」节——群聊只读作用域的归属声明): > **群聊场景下快情感态只读 per-group 慢情感态,从不读任何个人的 per-user 慢情感态**(无需设计混合权重)。 原文(同节——快层退向哪一层): > 三轴衰减项**不退向固定数值**,而是退向**同一 chat 当前的慢情感态值**(群聊退 per-group 慢情感态,私聊退 per-user 慢情感态——两者在私聊天然重合)。 - [ ] A 型陷阱须钉住:上引"群聊场景只读 per-group、从不读个人 per-user"是归属声明——群聊里 per-user 慢层被设计成**只写不读的累积器**,AC 里必须明确禁止把它接进群聊快层的衰减目标 **二、反应式路径补自我披露渲染** - [ ] `_full_frozen_snapshot`(`run()` 与 `run_callback()` 共用)与 `_run_event_driven_turn`(tier-2 环境信号 + 群聊即刻追问共用)两条路径都要补情感态三轴渲染——只补一条会留下另一条同样看不见 valence 的触发路径;若只做其中一条,须在 AC 里写明理由与归宿票号 - [ ] 渲染直接复用既有 `drive_tick.render_affective_state_fact`,不要另写一个,避免两条路径渲染格式分叉 - [ ] **只渲染原始数值,不做任何"情绪好/坏"式预先定性**——原文两次拒绝过给自我披露写死合成公式,人设解读层由 LLM 透过 persona 自己判断 原文(docs/adr/0005「决策」节): > **情感态升为所有拟人参数的中央调节器**:调节打字速度、linger 概率、门控阈值、**自我披露倾向**、兴趣门阈值,并回喂门控。 原文(同文件「拒绝了(本轮追加)」节): > **dominance 参与自我披露合成**(三轴合成 `f(valence, trust, dominance)`):会与 valence(倾向)+trust(封顶) 的既有两层分工打架……改为 dominance **专管进取性、完全不碰自我披露**。 - [ ] 避免同一轮内多读一次快情感态:`_scored_events` 在 `mood_congruence` 权重开启时已读过一次,本片渲染须复用同一次读(同 `delta._compress_one_chat` 已有的"读过就复用,没读过才读"先例),权重关闭时不多打一次读 ## Blocked by None — can start immediately
Yushu closed this issue 2026-08-14 01:00:09 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ProjectKuma/arise#125
No description provided.