统一触发路径与两级门控(Unified gating) #37

Closed
opened 2026-07-13 01:18:12 +00:00 by KumaAgent · 0 comments
KumaAgent commented 2026-07-13 01:18:12 +00:00 (Migrated from codeberg.org)

Parent

Phase 4 PRD:#33([PRD] arise 主动性与真人感(Proactivity & Liveliness)—— Phase 4 落地)

What to build

本阶段唯一一个改变 Phase 1-3 既有行为的 ticket:把现在"被找到就必然处理并回应"的反应式派发,改造成
真正的两级门控——同一批 @提及/私聊消息,现在有可能被判定为"看了但不说"。所有触发源共用同一套判定
代码与同一个衰减令牌桶式沉默预算,被直接搭话的评估也计入这个预算。门控做出"要主动开口"的判断后,
先过一个短暂的沉默窗口(给真人抢话的机会),而不是立刻发送。

Acceptance criteria

  • 两级门控:级一本地启发式打分(零 LLM,高召回廉价,事件触发天然满分直通);级二主模型决定是否/
    如何接话,覆盖"一批消息里回哪几条"(addressed_message_ids/skipped_message_ids,产出方是
    统一级二判定,不是独立的选择性回应机制)。
  • 沉默预算(衰减令牌桶)覆盖全部触发源,不再是"只管主动开口"——被直接搭话的评估也计入同一个桶,
    预算耗尽时可能被压下(明确接受的行为,需要有对应的测试断言这一点确实会发生)。
  • 冷启动期 floor=1(读取 ticket #35 的解锁曲线)适用范围是"共享预算本身",不局限于旧"选择性
    回应"语义——事件触发的评估预算下限强制 ≥1,周期触发不设下限。
  • 门控阈值基值读取情感态(ticket #34)算出的三轴数值。
  • 已读延迟窗(Phase 3 已交付)不受本 ticket 影响,继续作为事件触发路径批次就绪后的独立前置计时层,
    门控在它之后触发。
  • 沉默窗口:级二判定"主动开口"后不立即发,排一个短延迟 job;窗口内任何人发言即撤销这次主动开口。
  • 慢中断:被交互后一段时间窗内,对非 @ 消息按时间衰减概率接话,行为上体现为情感态短时高 energy
    窗口的自然结果(不是独立于门控之外的判定分支)。
  • 决策快照:每次触发评估写一条结构化记录(门控级一/级二得分与裁决、addressed/skipped_message_ids
    注入的记忆条目、情感态三轴、沉默预算余量、命中意图),供录制回放测试与未来 /why 消费。
  • 现有反应式行为(三因子召回、能力降级等 Phase 1-3 既有机制)在两级门控接入后行为不变——门控只
    决定"要不要处理这批消息",处理路径本身不改。
  • 测试:固定触发批次 + 脚本化假 LLM 客户端跑一遍,断言决策快照的最终裁决与预期一致(录制回放),
    支撑后续调参防回归。

Blocked by

  • #34(情感态骨架)
  • #35(渐进解锁阈值曲线)
## Parent Phase 4 PRD:#33([PRD] arise 主动性与真人感(Proactivity & Liveliness)—— Phase 4 落地) ## What to build 本阶段唯一一个改变 Phase 1-3 既有行为的 ticket:把现在"被找到就必然处理并回应"的反应式派发,改造成 真正的两级门控——同一批 @提及/私聊消息,现在有可能被判定为"看了但不说"。所有触发源共用同一套判定 代码与同一个衰减令牌桶式沉默预算,被直接搭话的评估也计入这个预算。门控做出"要主动开口"的判断后, 先过一个短暂的沉默窗口(给真人抢话的机会),而不是立刻发送。 ## Acceptance criteria - [ ] 两级门控:级一本地启发式打分(零 LLM,高召回廉价,事件触发天然满分直通);级二主模型决定是否/ 如何接话,覆盖"一批消息里回哪几条"(`addressed_message_ids`/`skipped_message_ids`,产出方是 统一级二判定,不是独立的选择性回应机制)。 - [ ] 沉默预算(衰减令牌桶)覆盖全部触发源,不再是"只管主动开口"——被直接搭话的评估也计入同一个桶, 预算耗尽时可能被压下(明确接受的行为,需要有对应的测试断言这一点确实会发生)。 - [ ] 冷启动期 `floor=1`(读取 ticket #35 的解锁曲线)适用范围是"共享预算本身",不局限于旧"选择性 回应"语义——事件触发的评估预算下限强制 ≥1,周期触发不设下限。 - [ ] 门控阈值基值读取情感态(ticket #34)算出的三轴数值。 - [ ] 已读延迟窗(Phase 3 已交付)不受本 ticket 影响,继续作为事件触发路径批次就绪后的独立前置计时层, 门控在它之后触发。 - [ ] 沉默窗口:级二判定"主动开口"后不立即发,排一个短延迟 job;窗口内任何人发言即撤销这次主动开口。 - [ ] 慢中断:被交互后一段时间窗内,对非 @ 消息按时间衰减概率接话,行为上体现为情感态短时高 energy 窗口的自然结果(不是独立于门控之外的判定分支)。 - [ ] 决策快照:每次触发评估写一条结构化记录(门控级一/级二得分与裁决、`addressed`/`skipped_message_ids`、 注入的记忆条目、情感态三轴、沉默预算余量、命中意图),供录制回放测试与未来 `/why` 消费。 - [ ] 现有反应式行为(三因子召回、能力降级等 Phase 1-3 既有机制)在两级门控接入后行为不变——门控只 决定"要不要处理这批消息",处理路径本身不改。 - [ ] 测试:固定触发批次 + 脚本化假 LLM 客户端跑一遍,断言决策快照的最终裁决与预期一致(录制回放), 支撑后续调参防回归。 ## Blocked by - #34(情感态骨架) - #35(渐进解锁阈值曲线)
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#37
No description provided.