Memory 命名空间
wesgine 记忆系统的命名空间寻址与隔离机制。
命名空间类型
| 命名空间 | 格式 | 用途 |
|---|---|---|
| CellNS | _cell | Cell 级共享 |
| UserNS | u:{actor} | 用户私有 |
| AgentNS | agent://{agentID} | Agent 专属 |
| SessionNS | sess:{sessionID} | 会话范围 |
命名空间与层的关系
| 层 | 命名空间 | 说明 |
|---|---|---|
| environment | CellNS | 宿主环境信息,Cell 级 |
| consensus | CellNS | 部门共识,Cell 级 |
| about_me | UserNS(actor) | 个人偏好,自动派生 |
| agent_memory | AgentNS(agentID) | Agent 专属记忆 |
| session | SessionNS(sessionID) | 会话范围 |
| working | 各种 | 运行时临时 |
AgentNS 规则
共享通道
Agent 命名空间内有共享通道:
agent://legal-agent/ → Agent 主命名空间
agent://legal-agent/shared → Agent 内共享
agent://legal-agent/kb:xxx → 知识库通道
agent://legal-agent/c:xxx → 其他共享通道
空命名空间陷阱
AgentNS("") 会创建一个真实存在但无人查询的地址:
- 写入成功
- 返回 id
- 永不被召回
因此引擎对 agent_memory 层空 namespace → ErrLayerNamespaceRequired。
UserNS 归一
actor 提列为一等字段后(INV-MEM-48),UserNS 归一规则简化:
- actor 列取代 metadata 中的 actor 键
- SQL 等值判定取代
LIKE预筛 TrimSpace不一致问题消失
命名空间与去重
行身份包含命名空间:(scope, namespace, actor, key_)。
去重键 ContentDedupKey 在 saveCore 中自动生成,确保:
- 同一命名空间内不重复存储相同内容
- 不同命名空间的相同内容各自独立
命名空间与 Digest
Digest 按 (Namespace, CognitiveOwner) 分区:
- 同一命名空间内的条目互相比较
- 不同命名空间的条目不互相干扰
- 跨主体的认知判断是不可逆损坏(INV-MEM-42)
命名空间在 API 中
列表查询
GET /memory?namespace=agent://legal-agent
搜索
POST /memory/search
{
"query": "...",
"namespace": "agent://legal-agent"
}
清空命名空间
DELETE /memory/layer?layer=agent_memory&namespace=agent://legal-agent
UI 中的禁词
以下命名空间原文不出现在前端:
agent://_sys_cellu:xxxsess:xxx
前端只说 layer,不说 namespace。
相关文档
- Memory 层模型 →
memory-layer-model.md - Agent 配置 →
agent-config.md - Memory 写入管线 →
memory-write-pipeline.md