# 记忆模型 SUMMARY: 记忆的结构 — 分类、键、标签、优先级、来源、验证。 记忆模型 Synapse 的记忆模型专为 LLM Agent 设计 — 既结构化以保证可靠回放,又足够灵活以适应任何领域。 记忆结构 [CODE BLOCK] 字段 | 字段 | 类型 | 必填 | 说明 | |-------|------|----------|-------------| | | string | 自动 | 唯一 ID(memxxx) | | | enum | ✅ | 8 种分类之一 | | | string | ✅ | 稳定标识符(用于更新) | | | string | ✅ | 记忆内容(任意文本) | | | string[] | – | 用于搜索和过滤 | | | enum | – | low、normal、high、critical(默认:normal) | | | enum | 自动 | user、agent(存储者) | | | bool | 自动 | 是否经过人类验证 | | | float | – | 0.0 到 1.0(user 默认 1.0,agent 默认 0.7) | | | timestamp | – | 何时遗忘此记忆 | | | string | 自动 | 所属 Mind | | | timestamp | 自动 | 首次存储时间 | | | timestamp | 自动 | 最后修改时间 | 分类 八种分类覆盖了常见的 LLM Agent 用例: | 分类 | 用途 | 内容示例 | |----------|---------|-----------------| | | 用户是谁 | "User is Michael Schäfer, software engineer in Berlin" | | | 用户偏好 | "Prefers concise technical responses" | | | 可验证的事实 | "Office is in Berlin, timezone Europe/Berlin" | | | 项目状态 | "Synapse v1.5.0 deployed, working on v1.6.0 docs" | | | 用户的技能 | "Advanced Python, 10+ years" | | | 过去犯的错 | "Forgot to bump npm version — CI failed" | | | 会话上下文 | "Currently reviewing PR #42" | | | 其他备注 | "Try Redis for caching next sprint" | Key:稳定标识符 字段至关重要 — 它是更新记忆而不产生重复的方式。 [CODE BLOCK] Key 规则: - 在 (category, mind) 内必须唯一 - 使用 - 以分类为前缀提高可读性:、 - 创建后不要修改 key Tags:用于搜索 标签可加速过滤与搜索: [CODE BLOCK] 标签最佳实践: - 每条记忆 2-5 个标签(不要过度打标签) - 使用小写以保持一致 - 使用项目名、主题、技术名 - 标签不区分大小写 优先级 | 优先级 | 何时使用 | 回放行为 | |----------|-------------|-----------------| | | 身份、法律、不可逆信息 | 始终位于回放顶部 | | | 进行中的项目、关键偏好 | 回放中突出显示 | | | 大多数记忆(默认) | 标准回放顺序 | | | 临时、知道就好的信息 | 可能被摘要 | 按优先级排序(critical 在前),其次按时间。 来源:User 与 Agent 记忆用 标记: - — 由人类存储(通过 JWT 或人类 UI) - — 由 LLM Agent 存储(通过 Mind Key) 这会影响: - 验证: 记忆自动验证, 记忆不自动验证 - 置信度: 默认 1.0, 默认 0.7 - 回放: 会标记未验证记忆为 "(unverified)" > [!NOTE] > 对 来源的记忆应保持适当的怀疑。它们可能是推断或假设而来,而非用户直接陈述。 验证 标志表示人类已确认该记忆: - 记忆:自动验证() - 记忆:默认未验证() 通过以下方式验证记忆: [CODE BLOCK] > [!NOTE] > 验证需要 JWT(人类认证),而非 Mind Key(Agent 认证)。这确保只有人类才能将记忆标记为已验证。 置信度 字段(0.0 到 1.0)表示记忆的可靠程度: - 1.0 — 用户直接陈述 - 0.7 — 由 Agent 推断 - 0.5 — 不确定,需要验证 - 0.0 — 明确存疑 存储时设置置信度: [CODE BLOCK] 过期 为时效性记忆设置 : [CODE BLOCK] 已过期的记忆不会出现在 中(但仍在数据库中)。使用 查看即将过期的记忆。 记忆生命周期 [CODE BLOCK] 回放行为 返回为 LLM 上下文优化的纯文本摘要: [CODE BLOCK] - 按优先级排序(critical → low),其次按时间 - 未验证记忆用 标记 - 包含标签以提供上下文 - 纯文本(无需解析 JSON) 下一步 - Memory API - 记忆最佳实践 - FTS5 搜索