Files
PromptX/core/memory/declarative-memory.memory.md

8.3 KiB
Raw Blame History

# 陈述性记忆评估
  ## 优先级检查
  首先检查是否存在用户强制记忆指令:
  - 用户是否明确使用"记住"、"记录"等指令词?
  - 用户是否强调某信息的重要性?
  - 用户是否暗示将来会用到此信息?
  
  如果存在用户强制记忆指令,则直接进入存储阶段,无需进一步评估。
  
  ## 多维度评估
  如无强制指令,则进行以下维度的评估:
  
  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标记来表示评估完成
  - 🧠 表示记忆评估完成并决定存储
  - 🚫 表示评估后决定不存储
</reasoning>

<challenge>
  # 评估边界检验
  
  ## 特殊情况处理
  
  1. **复合信息分解**
     - 检查信息是否包含多个独立的事实点
     - 若是,考虑分解为多条单独评估
  
  2. **强相关信息关联**
     - 检查信息是否与已存储的高价值记忆强相关
     - 若是,可适当降低评估阈值
  
  3. **反事实信息处理**
     - 检查信息是否包含明显错误或误导
     - 若是,即使其他维度得分高也应谨慎处理
  
  4. **隐私敏感信息**
     - 评估信息是否涉及用户隐私
     - 若是,需应用更严格的存储标准
</challenge>

</evaluate:thought>

store:execution # 陈述性记忆存储流程

  ```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标记提供反馈🧠 [简短描述]
</process>

<rule>
  1. 存储操作必须是追加式的,不得删除或修改已有记忆
  2. 内容必须保持原始语义,但可进行格式优化
  3. 存储操作必须是原子性的,避免部分写入
  4. 强制记忆指令触发的存储必须立即执行,不得延迟
  5. 完成记忆后必须使用emoji标记(🧠)提供简洁反馈
  6. 必须通过实际工具调用执行存储,禁止仅在对话中声明存储
  7. 必须验证工具调用结果,确保存储成功
</rule>

<constraint>
  1. 单条记忆内容大小限制建议不超过1000字符
  2. 记忆文件总大小控制(定期整理归档)
  3. 存储操作不应影响主交互流程的响应时间
  4. 工具调用可能存在限制或失败风险
</constraint>

<guideline>
  1. 适当精简记忆内容,保留核心信息
  2. 关联相似记忆使用一致的标签系统
  3. 对重复信息优先更新而非重复存储
  4. 敏感信息考虑适当的隐私保护措施
  5. emoji反馈应简洁明了不超过10个字
  6. 反馈重要但次于实际存储,不应本末倒置
</guideline>

<criteria>
  | 指标 | 通过标准 | 不通过标准 |
  |------|---------|-----------|
  | 存储实效性 | 通过工具调用实际写入文件 | 仅在对话中声明或描述存储 |
  | 内容准确性 | 保持原始语义不变 | 存储内容与原意不符 |
  | 格式一致性 | 符合记忆条目标准格式 | 格式混乱或不一致 |
  | 反馈适当性 | 提供简洁明了的存储确认 | 反馈冗长或无反馈 |
</criteria>

</store:execution>

recall:thought # 陈述性记忆回忆推理

  ## 记忆需求分析
  首先判断当前上下文是否需要使用记忆:
  - 用户是否明确要求回忆某内容?
  - 当前讨论是否涉及历史信息?
  - 是否需要之前记录的用户偏好或事实?
  
  ## 记忆加载状态验证
  检查记忆文件的加载状态:
  - 是否已经加载过陈述性记忆文件?
  - 加载的记忆是否是最新版本?
  - 缓存的记忆内容是否完整有效?
  
  ## 记忆关联分析
  识别当前上下文与记忆的关联:
  - 关键词匹配度
  - 主题相关性
  - 时间顺序关联
  
  ## 结论
  基于以上分析,判断:
  - 是否需要加载记忆文件
  - 需要查询的记忆类型和范围
  - 最适合当前上下文的记忆应用方式
</reasoning>

<plan>
  # 记忆回忆执行计划
  
  ## 记忆加载计划
  IF 需要加载记忆 AND (未加载或需要更新) THEN
    1. 确定记忆文件路径:`@file://.memory/declarative.md`
    2. 使用工具调用加载记忆文件
    3. 解析记忆文件内容
    4. 将记忆条目解析为结构化数据
    5. 建立内存索引以便快速检索
  ENDIF
  
  ## 记忆检索计划
  1. 根据当前上下文确定检索关键词
  2. 在记忆索引中搜索相关条目
  3. 按相关性排序检索结果
  4. 限制返回结果数量避免信息过载
  
  ## 记忆应用计划
  1. 将检索到的记忆融入当前思考过程
  2. 使用记忆内容补充回答
  3. 必要时提供记忆来源引用
  4. 处理潜在的记忆冲突或不一致
</plan>

</recall:thought>