环境记忆刷新机制

wesgine L1 环境记忆的刷新策略与 per-Cell 层叠设计。


刷新策略

环境记忆不是一次性写入——它需要定期刷新以反映宿主变化。

RefreshEnvironment 使用"页到空"策略:

while hasMore:
    batch = list(scope=system, namespace=env, limit=500)
    if len(batch) == 0:
        break
    for entry in batch:
        delete(entry.ID)
    progressed = true  // 有删除发生

// 删除完旧数据后写入新快照
for fact in newSnapshot:
    save(fact)

progressed 判定

RefreshEnvironment 带 progressed 判定:


共享快照机制

宿主环境感知是进程级共享的(INV-ENV-01):

组件入口TTL
memenv.SharedSnapshot(ctx)环境事实5 min
capenv.SharedSurface(ctx)能力发现5 min

每包只有一个构造点——包外任何 alias 都不得构造。


Per-Cell 层叠

共享快照是进程级的,但 Cell 可以有自己的运行时覆盖:

共享进程快照(所有 Cell 相同)
  + Cell 运行时覆盖(Loader.WithRuntimeOverrides)
  = 该 Cell 看到的环境事实

探测方式

探测类型方法
工具在不在 PATH 上exec.LookPath(不 fork)
工具版本fork --version(首次时)
包列表fork pip list / npm ls -g(首次时)

探测预算

探测预算
环境事实envSeedBudget 15s
能力发现capabilitySurfaceBudget 25s
Provider 探测providerProbeBudget 10s

父 ctx 剩余时间更短时取较短值。

ctx 已死则不缓存、跟随者不另起一趟。


不进感知器的内容

感知器不得出现 CellID / Actor / Tenant(INV-ENV-02)。

per-Cell 事实通过 WithRuntimeOverrides 在消费者层叠加。


clone 安全

EnvSnapshot.clone() 必须逐字段深拷:


相关不变量


相关文档