版本化记忆
Tentarc 的记忆是版本化结构化状态,不是可变大对象。
数据模型思路
每次写入都追加新版本:
{
"workspaceId": "ws_prod",
"sessionId": "s_42",
"agentId": "session",
"revision": 18,
"status": "ok|fallback",
"summary": {},
"meta": {}
}
读取路径按 (sessionId, agentId) 选择最新有效版本。
为什么版本优于覆盖写
- 保留演化轨迹(何时变更、为何变更)
- 支持 replay/rollback/fork
- 让部分失败显式化,而不是破坏性覆盖
回退语义
当生成或查询失败时,运行时仍可写回退版本:
- 版本号继续递增
- 记录带失败元数据
- 状态机保持单调、可调试
不会“悄悄丢记忆”。
压缩原则
版本日志会增长,压缩时应:
- 保留最新有效版本
- 保留关键审计元数据
- 不抹掉未闭环故障历史
压缩是存储优化,不是语义重写。