环境记忆写入限制
wesgine 的 L1 环境记忆(environment 层)不接受人工写入,只由宿主环境感知器自动产出。
为什么禁止人工写入
环境记忆的内容来自宿主环境感知器(memenv.SharedSnapshot),反映的是操作系统、运行时、包管理器等客观事实。人工写入会:
- 引入与真实环境不一致的信息
- 在下一次感知器刷新时被覆盖(
RefreshEnvironment) - 造成 Agent 决策基于错误前提
拒绝机制
API 层
POST /memory 收到 layer: environment 时返回:
{
"error": "ErrLayerNotWritable",
"message": "environment layer is not writable"
}
引擎层
SaveToLayer 的 LayerTarget 映射表中,environment 被标记为不可写。同样不可写的还有:
session— 由引擎运行时管理working— 由引擎运行时管理
可写层对照
| 层 | 可写? | 写入方式 |
|---|---|---|
environment | ❌ | 感知器自动产出 |
consensus | ✅ | admin API / draft-vote / CognitiveSettlement |
about_me | ✅ | memory tool / API |
agent_memory | ✅ | memory tool / API |
session | ❌ | 引擎运行时管理 |
working | ❌ | 引擎运行时管理 |
导入场景
POST /memory/import 同样拒绝 environment 层。用户可以导入 consensus、about_me、agent_memory,但不能导入环境信息。
刷新机制
环境记忆通过以下路径更新:
- Cell Boot 时自动感知
RefreshEnvironment定期刷新- 共享快照
memenv.SharedSnapshot(ctx)进程级缓存(5min TTL)
详见 memory-environment-sensing.md 和 memory-environment-refresh.md。
相关不变量
- INV-ENV-01:宿主每进程感知一次
- INV-ENV-02:感知器不认租户
- INV-MEM-53:写入按层提问
相关文档
- 环境记忆感知 →
memory-environment-sensing.md - 环境记忆刷新 →
memory-environment-refresh.md - 记忆写入层 API →
memory-write-layer-api.md