# 陈述性记忆评估
## 优先级检查
首先检查是否存在用户强制记忆指令:
- 用户是否明确使用"记住"、"记录"等指令词?
- 用户是否强调某信息的重要性?
- 用户是否暗示将来会用到此信息?
如果存在用户强制记忆指令,则直接进入存储阶段,无需进一步评估。
## 多维度评估
如无强制指令,则进行以下维度的评估:
1. **信息重要性(Importance)**
- 信息是否包含关键事实或概念?(0-10分)
- 信息是否影响理解或决策?(0-10分)
- 信息是否有长期参考价值?(0-10分)
2. **信息新颖性(Novelty)**
- 这是否是首次出现的信息?(0-10分)
- 是否与已有记忆存在冗余?(0-10分,反向计分)
- 是否提供了新视角或补充细节?(0-10分)
3. **用户相关性(Relevance)**
- 信息与用户兴趣/需求的匹配程度?(0-10分)
- 与用户历史交互的关联度?(0-10分)
- 对用户未来可能任务的适用性?(0-10分)
4. **可信度评估(Credibility)**
- 信息来源的可靠性?(0-10分)
- 内容是否有事实支持?(0-10分)
- 是否与已验证知识一致?(0-10分)
5. **信息粒度(Granularity)**
- 信息的具体程度和精确度(0-10分)
6. **时效性(Timeliness)**
- 信息的预期有效期(0-10分,长期有效得高分)
## 综合评分
综合得分计算:
```
总分 = (3×强制指令) + (0.5×重要性) + (0.4×新颖性) + (0.5×相关性) + (0.3×可信度) + (0.2×粒度) + (0.3×时效性)
```
强制指令的权重远高于其他维度,确保用户明确要求记住的内容被优先处理。
## 判断结论
- 总分 ≥ 7分:高价值信息,应当记忆
- 5-7分:中等价值信息,建议记忆
- < 5分:低价值信息,不建议记忆
## 评估标记
完成评估后,必须使用emoji标记来表示评估完成:
- 🧠 表示记忆评估完成并决定存储
- 🚫 表示评估后决定不存储
# 评估边界检验
## 特殊情况处理
1. **复合信息分解**
- 检查信息是否包含多个独立的事实点
- 若是,考虑分解为多条单独评估
2. **强相关信息关联**
- 检查信息是否与已存储的高价值记忆强相关
- 若是,可适当降低评估阈值
3. **反事实信息处理**
- 检查信息是否包含明显错误或误导
- 若是,即使其他维度得分高也应谨慎处理
4. **隐私敏感信息**
- 评估信息是否涉及用户隐私
- 若是,需应用更严格的存储标准
# 陈述性记忆存储流程
```mermaid
flowchart TD
A[接收待存储信息] --> B[准备存储格式]
B --> C[构建存储路径]
C --> D[检查文件存在性]
D -->|文件已存在| E[准备追加操作]
D -->|文件不存在| F[准备创建操作]
E --> G[执行工具调用写入文件]
F --> G
G --> H[验证工具调用结果]
H -->|成功| I[添加元数据和标签]
H -->|失败| J[重试或报告错误]
I --> K[确认存储完成]
K --> L[提供emoji标记反馈]
```
## 存储步骤详解
1. **准备存储格式**
- 将信息转换为Markdown格式条目
- 每条记忆使用列表项格式(以"-"开头)
2. **构建存储路径**
- 对于陈述性记忆:`@file://.memory/declarative.md`
3. **文件操作准备**
- 检查记忆文件是否已存在
- 准备适当的写入操作(创建或追加)
4. **执行工具调用**
- 必须使用工具调用(如edit_file)执行实际的文件写入
- 严禁仅在对话中进行虚拟或声明式存储
- 验证工具调用结果,确保写入成功
5. **记忆条目格式示例**
```markdown
- {内容} #关键点1 #关键点2(此 # 非 DPML 的 #,仅为命令格式要求)
```
实际写入示例:
```
- 用户喜欢蓝色 #关键点1 #关键点2
```
6. **完成反馈**
- 存储成功后,使用emoji标记提供反馈:🧠 [简短描述]
1. 存储操作必须是追加式的,不得删除或修改已有记忆
2. 内容必须保持原始语义,但可进行格式优化
3. 存储操作必须是原子性的,避免部分写入
4. 强制记忆指令触发的存储必须立即执行,不得延迟
5. 完成记忆后必须使用emoji标记(🧠)提供简洁反馈
6. 必须通过实际工具调用执行存储,禁止仅在对话中声明存储
7. 必须验证工具调用结果,确保存储成功
1. 单条记忆内容大小限制(建议不超过1000字符)
2. 记忆文件总大小控制(定期整理归档)
3. 存储操作不应影响主交互流程的响应时间
4. 工具调用可能存在限制或失败风险
1. 适当精简记忆内容,保留核心信息
2. 关联相似记忆使用一致的标签系统
3. 对重复信息优先更新而非重复存储
4. 敏感信息考虑适当的隐私保护措施
5. emoji反馈应简洁明了,不超过10个字
6. 反馈重要但次于实际存储,不应本末倒置
| 指标 | 通过标准 | 不通过标准 |
|------|---------|-----------|
| 存储实效性 | 通过工具调用实际写入文件 | 仅在对话中声明或描述存储 |
| 内容准确性 | 保持原始语义不变 | 存储内容与原意不符 |
| 格式一致性 | 符合记忆条目标准格式 | 格式混乱或不一致 |
| 反馈适当性 | 提供简洁明了的存储确认 | 反馈冗长或无反馈 |
# 陈述性记忆回忆推理
## 记忆需求分析
首先判断当前上下文是否需要使用记忆:
- 用户是否明确要求回忆某内容?
- 当前讨论是否涉及历史信息?
- 是否需要之前记录的用户偏好或事实?
## 记忆加载状态验证
检查记忆文件的加载状态:
- 是否已经加载过陈述性记忆文件?
- 加载的记忆是否是最新版本?
- 缓存的记忆内容是否完整有效?
## 记忆关联分析
识别当前上下文与记忆的关联:
- 关键词匹配度
- 主题相关性
- 时间顺序关联
## 结论
基于以上分析,判断:
- 是否需要加载记忆文件
- 需要查询的记忆类型和范围
- 最适合当前上下文的记忆应用方式
# 记忆回忆执行计划
## 记忆加载计划
IF 需要加载记忆 AND (未加载或需要更新) THEN
1. 确定记忆文件路径:`@file://.memory/declarative.md`
2. 使用工具调用加载记忆文件
3. 解析记忆文件内容
4. 将记忆条目解析为结构化数据
5. 建立内存索引以便快速检索
ENDIF
## 记忆检索计划
1. 根据当前上下文确定检索关键词
2. 在记忆索引中搜索相关条目
3. 按相关性排序检索结果
4. 限制返回结果数量避免信息过载
## 记忆应用计划
1. 将检索到的记忆融入当前思考过程
2. 使用记忆内容补充回答
3. 必要时提供记忆来源引用
4. 处理潜在的记忆冲突或不一致