上下文 Overlay 管线

wesgine 上下文组装中的三层 Overlay 注入机制。


三层 Overlay

层名称注入位置触发条件
Eager系统提示词索引System Prompt每轮
Lazy当轮 Overlay用户消息后当轮相关
Cold-start跨会话摘要重放用户消息副本新会话首轮

Eager 注入(5 个 arm)

在系统提示词中注入的五个数据源:

arm内容来源
1Environment 条目L1 环境信息
2Constraint/Instruction用户约束和指令
3Agent Shared 条目Agent 共享命名空间
4Agent ConstraintAgent 特有约束
5Collective 条目部门共识(L2)

每个 arm 使用 EagerCarriesRow + ActorVisible 判断是否携带。


Lazy 注入(3 个 arm)

在当轮上下文中注入的三个数据源:

arm内容来源
1相关偏好about_me 语义匹配
2Agent 记忆Agent 命名空间相关条目
3Convention项目惯例

每个 arm 使用 LazyCarriesRow + EntryVisible 判断。


Cold-start 注入(1 个 arm)

新会话首轮注入的跨会话摘要:

arm内容条件
1前次会话摘要CrossSessionDays > 0 且未过期

使用 ColdStartCarriesRow + ActorVisible 判断。


质量门控

所有 arm 共用 RecallQualityOK 单点(INV-MEM-50):

func RecallQualityOK(entry MemoryEntry) bool {
    if entry.Conflicted {
        return false
    }
    if entry.Stale {
        return false
    }
    return true
}

显式搜索不受此门约束

memory(search) 回答"我存过什么"——对指名索取者隐藏被取代的行是把错答换成缺答。

记忆中心必须显示冲突,否则无人能解决冲突。


arm 数量契约(INV-MEM-50)

arm 数写死在契约里:三处、共 9 个 arm。

每个漏掉的 arm 都对应一个"那条记忆静默不出现"的用户症状。


Validate 的三面对齐

Store.Validate(entryID) 必须预测三面之 OR:

accessible = EagerCarriesRow(e) || LazyCarriesRow(e) || ColdStartCarriesRow(e)
recallable = accessible && RecallQualityOK(e) && storeVisibleConditions(e)

Validate 与三面的谓词必须成对——手写镜像是漂移的标准入口。


相关不变量


相关文档