环境记忆层

wesgine 环境记忆(L1 environment)的感知、注入与刷新机制。


定位

环境记忆是记忆七层中的第一层(L1),记录宿主机器和运行时环境的事实信息。

属性值
层名environment
ScopeScopeSystem
可写性不可写(ErrLayerNotWritable)
数据来源宿主环境感知器自动产出
Actor无(L1 是共享资产)

感知器架构

进程级共享(INV-ENV-01)

memenv.SharedSnapshot(ctx) / capenv.SharedSurface(ctx) 是唯一入口:

感知内容

类别示例
操作系统OS 类型、版本、架构
运行时Go 版本、Node 版本、Python 版本
工具链Git、Docker、编译器等是否在 PATH
硬件CPU 核数、内存大小

工具探测

"在不在 PATH 上"用 exec.LookPath 回答,不 fork 子进程(INV-ENV-03)。


租户无关(INV-ENV-02)

internal/memory/env 与 internal/govern/capability/env 不得出现 CellID / Actor / Tenant。

Per-Cell 事实层叠在消费者上(Loader.WithRuntimeOverrides),不下沉进感知器。


刷新机制

RefreshEnvironment

RefreshEnvironment 使用「全部」读写分页至清空策略(INV-MEM-34):

超时控制

探测预算取 min(自身预算, 父 ctx 剩余);ctx 已死则不缓存。


深拷贝保护(INV-ENV-03)

EnvSnapshot.clone() 逐字段深拷——共享缓存的唯一防线是调用方拿到副本。

使用反射校验(TestEnvSnapshot_CloneDeepCopiesEveryReferenceField,带 vacuity guard)。


与用户记忆的关系

层来源归属
L1 environment感知器自动产出无 actor,共享
L2 consensusadmin 写入无 actor,Cell 级共享
L3 about_me用户/AI 交互产出有 actor,个人
L4 agent_memoryAgent 运行时产出有 actor,per-agent

L1 不可人工写入——POST /memory 带 layer=environment 会返回 ErrLayerNotWritable。