记忆系统

wesgine 的记忆系统让 AI Agent 能够跨会话保留和召回信息,支持七层分层模型。


七层模型

层定义

层名称说明持久性
L1environment宿主环境信息引擎感知
L2consensus部门/团队共识跨 actor 共享
L3about_me关于用户的偏好per-actor
L4agent_memory角色记忆per-agent per-actor
—session会话记忆会话内
—working工作缓存临时
—unknown未分类兜底

层特性

层可写需要 actor
environment否(引擎产出)否
consensus是(需 admin)否
about_me是是
agent_memory是是
session否(运行时态)—
working否(运行时态)—

记忆写入

写入工具

AI 通过 memory 工具写入记忆:

memory(action="save", content="用户偏好 Vim 键位", layer="about_me")

写入校验

写入时经过多层校验:

校验说明
威胁扫描检测凭据泄漏(INV-MEM-24)
质量门控拦截系统状态前缀(INV-MEM-31)
去重ContentDedupKey 防重复
Actor 校验必须有 actor(INV-MEM-38)

信任等级

等级含义来源
System系统级环境感知器
Explicit显式声明用户指令
Multi多方确认集体投票
Inferred推断AI 观察
Unknown未知默认

记忆召回

三个注入面

记忆通过三个路径注入 AI 上下文:

面时机方式
Eager每轮系统提示词索引
Lazy当轮语义匹配叠加
Cold-start新会话首轮历史摘要重放

召回质量

自动注入面有质量过滤:

过滤说明
Stale30 天零召回标记过期
Conflicted被新条目否定的旧条目
RecallQualityOK统一质量判断单点

显式检索

memory(action="search") 不受质量过滤限制——显式检索回答"我存过什么"。


Actor 边界

隔离模型

记忆按 actor 隔离:

层actor 语义
L1/L2无主(全 Cell 共享)
L3/L4有主(per-actor)

判据单点

操作判据
读memory.ActorVisible
写saveCore 的 RequireActor
删DeleteAs(id, actor)

记忆管理 API

列表

GET /cells/{id}/memory?layer=about_me&actor=alice&limit=20

计数

GET /cells/{id}/memory/counts?actor=alice

返回全部七层的计数(含 0)。

搜索

POST /cells/{id}/memory/search
{
  "query": "编辑器偏好",
  "layer": "about_me"
}

写入

POST /cells/{id}/memory
{
  "content": "偏好暗色主题",
  "layer": "about_me"
}

删除

DELETE /cells/{id}/memory/{memoryId}

清空层

DELETE /cells/{id}/memory/layer?layer=about_me&actor=alice

GC 与维护

自动 GC

GC 使用 recall-frequency weighted 淘汰(RetentionScore),不是纯 LRU。

Digest

定期运行语义去重和压缩:

操作说明
去重合并相似条目
冲突检测标记被否定的旧条目
过期标记30 天零召回的标记 stale
取代检测新条目显式否定旧条目

注意事项