冷启动渐进解锁三件套:gate连续缩放+三因子召回闸+冷启动自我介绍声明 #112

Closed
opened 2026-08-11 03:33:59 +00:00 by KumaAgent · 0 comments
Member

Parent

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

What to build

让 ADR-0007「冷启动期门控收紧」与「被@时可做轻量自我介绍」两句决策真正生效。目前三个门控旋钮(沉默预算容量/回填速率/兴趣门阈值)完全不吃解锁档位——唯一接了 level 的 apply_cold_start_floor 方向还相反(只会放松、不会收紧);三因子召回被实现期当成恒解锁(progressive_unlock.py 的 docstring 自己写了「(已解锁)」),没有档位闸,后果是档位 0 的新群第一轮就能召回其它 chat 的非敏感事件;is_cold_start 只流向沉默预算下限,模型永远不知道自己处在冷启动期,做不到"被@时轻量自我介绍"这句许可式承诺。

三条共用 _build_runtime_loop 的解锁位穿线与同一批测试基建,同片交付。

Acceptance criteria

  • gating.evaluate_gate 新增 unlock_level 输入,让沉默预算 capacity/refill_rate/gate_threshold_base 随 level 做连续单调缩放——不得实现成 if is_cold_start(level): capacity *= 0.3 这种离散分支。原文:docs/adr/0029-unified-trigger-pipeline.md「拒绝了」节第三条:「渐进解锁本来就是按互动量算的连续量,不是按日历时间/次数算的离散状态」
  • 补一条单调性守卫测试:level 单调递增时 capacity/refill_rate 单调递增、threshold 单调递减,且连续变化时无跳变
  • 显式裁定这个缩放归 ADR-0011 阈值三层的哪一层,并在 ADR-0011「7. 阈值治理」或 ADR-0007 追加更新节记录——docs/adr/0011-technology-selection.md 已把「门控阈值(基值)」归入情感态调制层且明写「门控阈值不跨层:基值归情感态调制层由机械方程产出,反思层只在界内 nudge 一个偏移量叠加其上」,不能默不作声地给已声明归属的字段叠加第三个输入源
  • 新增 RECALL_UNLOCK_THRESHOLD 常量,作为三因子召回的解锁阈值;阈值必须 RELATIONSHIP_NETWORK_UNLOCK_THRESHOLD(现 0.4),保持 progressive_unlock.py::SPONTANEOUS_GOAL_UNLOCK_THRESHOLD 已立下的解锁顺序不变量先例,配一条顺序守卫测试
  • 召回闸接入三个入口:_full_frozen_snapshot_run_event_driven_turnsearch_memory 工具(_scored_events 的调用点)。search_memory 是否也受闸是开放设计问题(ADR-0031 全文零字提及冷启动/渐进解锁),须在片内显式裁定并在 ADR-0031 或 ADR-0007 追加一句说明理由
  • 召回被闸关闭时,决策快照(issue #79_report_recalled_events)要能记录"因未解锁而无召回",否则 /why 答不出"为什么没引用记忆"
  • 新增一个渲染纯函数产出冷启动声明性文本,形状仿 temporal_awareness.py::render_time_since_last_interaction(无 IO、无数据时返回空字符串),挂进 _full_frozen_snapshot 的拼装序列。原文:docs/adr/0007-cold-start.md「决策」节第一条子弹:「冷启动期门控收紧(沉默预算↓、兴趣门↑)、近乎纯反应式;被@时做轻量自我介绍」——注意是许可式("可"),不得实现成强制触发规则(如"冷启动期首次被@强制插入自我介绍")
    • 归属边界(必须原样带上,防止实现期滑向触发侧):docs/adr/0018-temporal-awareness.md「决策 → 时段感知」节:「这类『让模型知道一个事实』的注入是纯声明性文本,不进数值方程、不算给中央调节器开口子」;同文件「更新(2026-07-10 第三方项目对照 grill 第二轮)」节:「两者语义不同、机制归属也不同(一个纯陈述,一个进方程),本 ADR"声明性-only、不驱动任何数值方程"的既定判断不变」
    • 测试须断言:冷启动期快照含该段、非冷启动期不含,且该段进入任何情感态/门控数值
  • 片内显式裁定 Drive Tick 的 assemble_light_context 要不要也带这段声明文本——ADR-0018 对"距上次交互"(双路径都用)与"时段感知"(reactive 路径不新增,drive tick 专属)给的先例相反,不存在可照抄的默认答案,须按"冷启动分寸对哪条路径有意义"自行论证并写进 AC
  • 三条共用的解锁位(is_cold_start: bool、召回解锁位)经 __init__.py::_build_runtime_loop 一次性穿到五条触发路径,复用各调用点已算好的 level,零新增 IO
  • ADR-0007 追加更新节,记录"三因子召回此前被实现期当作恒解锁(docstring 写"已解锁")、本次补闸"

Blocked by

None — can start immediately

## Parent #103 第四批清单:31 条实现类落差 + 9 条待拍板(条目 1、4、5) ## What to build 让 ADR-0007「冷启动期门控收紧」与「被@时可做轻量自我介绍」两句决策真正生效。目前三个门控旋钮(沉默预算容量/回填速率/兴趣门阈值)完全不吃解锁档位——唯一接了 level 的 `apply_cold_start_floor` 方向还相反(只会放松、不会收紧);三因子召回被实现期当成恒解锁(`progressive_unlock.py` 的 docstring 自己写了「(已解锁)」),没有档位闸,后果是档位 0 的新群第一轮就能召回其它 chat 的非敏感事件;`is_cold_start` 只流向沉默预算下限,模型永远不知道自己处在冷启动期,做不到"被@时轻量自我介绍"这句许可式承诺。 三条共用 `_build_runtime_loop` 的解锁位穿线与同一批测试基建,同片交付。 ## Acceptance criteria - [ ] `gating.evaluate_gate` 新增 `unlock_level` 输入,让沉默预算 `capacity`/`refill_rate`/`gate_threshold_base` 随 level 做**连续单调缩放**——不得实现成 `if is_cold_start(level): capacity *= 0.3` 这种离散分支。原文:docs/adr/0029-unified-trigger-pipeline.md「拒绝了」节第三条:「渐进解锁本来就是按互动量算的连续量,不是按日历时间/次数算的离散状态」 - [ ] 补一条单调性守卫测试:level 单调递增时 capacity/refill_rate 单调递增、threshold 单调递减,且连续变化时无跳变 - [ ] 显式裁定这个缩放归 ADR-0011 阈值三层的哪一层,并在 ADR-0011「7. 阈值治理」或 ADR-0007 追加更新节记录——docs/adr/0011-technology-selection.md 已把「门控阈值(基值)」归入情感态调制层且明写「门控阈值不跨层:基值归情感态调制层由机械方程产出,反思层只在界内 nudge 一个偏移量叠加其上」,不能默不作声地给已声明归属的字段叠加第三个输入源 - [ ] 新增 `RECALL_UNLOCK_THRESHOLD` 常量,作为三因子召回的解锁阈值;阈值必须 **≤ `RELATIONSHIP_NETWORK_UNLOCK_THRESHOLD`**(现 0.4),保持 `progressive_unlock.py::SPONTANEOUS_GOAL_UNLOCK_THRESHOLD` 已立下的解锁顺序不变量先例,配一条顺序守卫测试 - [ ] 召回闸接入**三个**入口:`_full_frozen_snapshot`、`_run_event_driven_turn`、`search_memory` 工具(`_scored_events` 的调用点)。`search_memory` 是否也受闸是开放设计问题(ADR-0031 全文零字提及冷启动/渐进解锁),须在片内显式裁定并在 ADR-0031 或 ADR-0007 追加一句说明理由 - [ ] 召回被闸关闭时,决策快照(issue #79 的 `_report_recalled_events`)要能记录"因未解锁而无召回",否则 `/why` 答不出"为什么没引用记忆" - [ ] 新增一个渲染纯函数产出冷启动声明性文本,形状仿 `temporal_awareness.py::render_time_since_last_interaction`(无 IO、无数据时返回空字符串),挂进 `_full_frozen_snapshot` 的拼装序列。原文:docs/adr/0007-cold-start.md「决策」节第一条子弹:「冷启动期门控收紧(沉默预算↓、兴趣门↑)、近乎纯反应式;被@时**可**做轻量自我介绍」——注意是许可式("可"),**不得实现成强制触发规则**(如"冷启动期首次被@强制插入自我介绍") - 归属边界(必须原样带上,防止实现期滑向触发侧):docs/adr/0018-temporal-awareness.md「决策 → 时段感知」节:「这类『让模型知道一个事实』的注入是纯声明性文本,不进数值方程、不算给中央调节器开口子」;同文件「更新(2026-07-10 第三方项目对照 grill 第二轮)」节:「两者语义不同、机制归属也不同(一个纯陈述,一个进方程),本 ADR"声明性-only、不驱动任何数值方程"的既定判断不变」 - 测试须断言:冷启动期快照含该段、非冷启动期不含,且该段**不**进入任何情感态/门控数值 - [ ] 片内显式裁定 Drive Tick 的 `assemble_light_context` 要不要也带这段声明文本——ADR-0018 对"距上次交互"(双路径都用)与"时段感知"(reactive 路径不新增,drive tick 专属)给的先例相反,不存在可照抄的默认答案,须按"冷启动分寸对哪条路径有意义"自行论证并写进 AC - [ ] 三条共用的解锁位(`is_cold_start: bool`、召回解锁位)经 `__init__.py::_build_runtime_loop` 一次性穿到五条触发路径,复用各调用点已算好的 `level`,零新增 IO - [ ] ADR-0007 追加更新节,记录"三因子召回此前被实现期当作恒解锁(docstring 写"已解锁")、本次补闸" ## Blocked by None — can start immediately
Yushu closed this issue 2026-08-12 01:56:13 +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#112
No description provided.