更新角色和资源协议文档,新增提示词开发者和记忆触发机制的定义,优化角色的内容结构,提升文档的清晰度和实用性。同时,删除不再使用的README文档,清理代码库以提高可维护性。
This commit is contained in:
146
core/execution/deal-memory.execution.md
Normal file
146
core/execution/deal-memory.execution.md
Normal file
@ -0,0 +1,146 @@
|
||||
<execution>
|
||||
<process>
|
||||
# 记忆处理自动化流程
|
||||
|
||||
## 角色初始化阶段
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
Start[角色初始化触发] --> A[检查记忆文件存在性]
|
||||
A -->|文件存在| B[主动加载记忆文件]
|
||||
A -->|文件不存在| C[准备空记忆容器]
|
||||
B --> D[解析记忆内容]
|
||||
C --> E[建立记忆索引]
|
||||
D --> E
|
||||
E --> F[记忆系统就绪]
|
||||
F --> G[继续角色初始化]
|
||||
```
|
||||
|
||||
### 初始化步骤详解
|
||||
|
||||
1. **检测角色切换或初始化**
|
||||
- 识别"代入角色"、"作为角色"等指令
|
||||
- 识别`@role://角色ID`或`@file://path/to/role.md`引用
|
||||
|
||||
2. **主动加载记忆文件**
|
||||
- 使用工具调用读取`.memory/declarative.md`
|
||||
- 如果文件不存在,记录状态但不报错
|
||||
- 准备好空记忆容器以接收新记忆
|
||||
|
||||
3. **建立记忆索引**
|
||||
- 将加载的记忆解析为结构化数据
|
||||
- 建立关键词索引便于快速检索
|
||||
- 识别常用标签集和主题分类
|
||||
|
||||
## 运行时记忆处理流程
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[监听用户输入] --> B{记忆价值判断}
|
||||
B -->|显式记忆指令| C[标记为强制记忆]
|
||||
B -->|高价值信息| D[触发评估流程]
|
||||
B -->|低价值信息| E[不处理]
|
||||
|
||||
C --> F[提取记忆内容]
|
||||
D --> F
|
||||
|
||||
F --> G[准备记忆格式]
|
||||
G --> H[执行工具调用存储]
|
||||
H --> I{存储结果验证}
|
||||
I -->|成功| J[提供简洁emoji反馈]
|
||||
I -->|失败| K[记录错误并重试]
|
||||
|
||||
J --> L[继续对话]
|
||||
K --> L
|
||||
|
||||
M[检测记忆相关问题] --> N{是否需要回忆}
|
||||
N -->|是| O[触发回忆流程]
|
||||
N -->|否| P[正常响应]
|
||||
|
||||
O --> Q[检索相关记忆]
|
||||
Q --> R[将记忆融入回答]
|
||||
R --> P
|
||||
```
|
||||
|
||||
### 1. 识别记忆内容
|
||||
|
||||
**自动识别以下情况**:
|
||||
- **显式记忆指令**:包含"记住"、"记录"、"牢记"等指令词
|
||||
- **个人信息陈述**:如"我是..."、"我的...是..."、"我喜欢..."等
|
||||
- **重要事实标记**:用户明确表示某信息重要
|
||||
- **未来引用预告**:用户表示将来会用到此信息
|
||||
|
||||
### 2. 自动评估流程
|
||||
|
||||
**自动触发评估**:
|
||||
- 对于显式记忆指令,直接标记为强制记忆,跳过评估
|
||||
- 对于隐式高价值信息,调用多维度评估机制
|
||||
- 根据预设阈值决定是否记忆
|
||||
|
||||
### 3. 自动存储流程
|
||||
|
||||
**自主执行工具调用**:
|
||||
- 准备符合记忆条目格式的内容
|
||||
- 自动选择适当的标签
|
||||
- 主动使用工具调用实际写入记忆文件
|
||||
- 验证工具调用结果
|
||||
|
||||
### 4. 自动反馈机制
|
||||
|
||||
**条件反馈处理**:
|
||||
- 存储成功后提供简洁emoji反馈
|
||||
- 反馈应不打断自然对话流
|
||||
- 仅在关键记忆节点提供视觉反馈
|
||||
|
||||
### 5. 自动回忆机制
|
||||
|
||||
**上下文触发回忆**:
|
||||
- 检测对话中是否出现相关问题或需求
|
||||
- 主动加载记忆文件并检索相关内容
|
||||
- 自然地将记忆内容融入回答中
|
||||
</process>
|
||||
|
||||
<rule>
|
||||
1. 角色初始化时**必须**主动加载记忆文件
|
||||
2. 显式记忆指令**必须**自动触发完整的记忆处理流程,无需用户提醒
|
||||
3. 记忆存储**必须**通过实际工具调用执行,不得仅在对话中声明
|
||||
4. 工具调用结果**必须**得到验证,确保记忆实际写入
|
||||
5. 记忆反馈**必须**简洁明了,使用emoji等轻量级方式
|
||||
6. 高价值信息识别和评估**必须**自动进行,不依赖用户明确指示
|
||||
7. 记忆回忆**必须**在检测到相关需求时自动触发
|
||||
8. 记忆处理的全流程**必须**在单次对话交互中完成,不拖延到后续交互
|
||||
</rule>
|
||||
|
||||
<constraint>
|
||||
1. 记忆处理流程不得明显延迟对话响应时间
|
||||
2. 记忆存储受系统工具调用能力限制
|
||||
3. 单次交互中可处理的记忆条目数量有限
|
||||
4. 记忆评估受限于AI的语义理解能力
|
||||
5. 记忆文件访问和写入可能受到环境限制
|
||||
6. emoji反馈可能在某些界面中显示不完整
|
||||
</constraint>
|
||||
|
||||
<guideline>
|
||||
1. 角色初始化时应检查并加载所有相关记忆文件
|
||||
2. 优先处理包含个人信息、偏好和关键决策的内容
|
||||
3. 使用一致的标签体系便于后续检索和关联
|
||||
4. 记忆条目应保持简洁但包含足够上下文
|
||||
5. 避免存储明显的重复信息,应更新而非追加
|
||||
6. 记忆反馈应作为轻量级确认,不打断对话流程
|
||||
7. 回忆机制应自然融入回答,避免机械式引用
|
||||
8. 高度相关的记忆应在合适时机主动提供,不等用户询问
|
||||
</guideline>
|
||||
|
||||
<criteria>
|
||||
| 指标 | 通过标准 | 不通过标准 |
|
||||
|------|---------|-----------|
|
||||
| 初始化完整性 | 角色初始化时自动加载记忆 | 需用户提醒加载记忆 |
|
||||
| 自动识别率 | 95%以上的显式记忆指令被自动识别 | 需用户多次提醒才执行记忆 |
|
||||
| 处理完整性 | 识别到存储反馈全流程自动完成 | 流程断裂需人工介入 |
|
||||
| 存储实效性 | 通过工具调用实际写入文件 | 仅在对话中声明 |
|
||||
| 反馈适当性 | 简洁、及时且不打断对话 | 无反馈或过度干扰 |
|
||||
| 回忆主动性 | 相关场景下自动检索并应用记忆 | 用户需明确要求回忆 |
|
||||
| 流程效率 | 不影响对话响应时间 | 明显延迟或阻塞对话 |
|
||||
| 集成一致性 | 与现有记忆协议无缝集成 | 与其他协议冲突 |
|
||||
</criteria>
|
||||
</execution>
|
||||
102
core/execution/memory-trigger.execution.md
Normal file
102
core/execution/memory-trigger.execution.md
Normal file
@ -0,0 +1,102 @@
|
||||
<execution>
|
||||
<process>
|
||||
# 记忆触发处理流程
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[监控信息流] --> B{触发类型判断}
|
||||
|
||||
%% 显式指令触发路径
|
||||
B -->|显式记忆指令| C[提取待记忆内容]
|
||||
C --> D[立即评估并分类]
|
||||
D --> E[执行优先存储]
|
||||
E --> F[提供记忆确认反馈]
|
||||
F --> G[继续对话]
|
||||
|
||||
%% 会话结束触发路径
|
||||
B -->|会话结束信号| H[提取完整会话记录]
|
||||
H --> I[分析会话主题结构]
|
||||
I --> J[识别关键信息点]
|
||||
J --> K[评估信息价值]
|
||||
K --> L[筛选待记忆内容]
|
||||
L --> M[组织记忆结构]
|
||||
M --> N[执行批量记忆存储]
|
||||
N --> O[更新记忆索引]
|
||||
O --> P[完成会话记忆处理]
|
||||
|
||||
%% 共享的判断路径
|
||||
G --> Q[检查是否会话结束]
|
||||
Q -->|是| H
|
||||
Q -->|否| A
|
||||
```
|
||||
|
||||
## 核心处理步骤
|
||||
|
||||
### 显式指令触发处理
|
||||
1. **识别记忆指令模式**:检测用户输入中的显式记忆请求
|
||||
- 直接请求模式:"请记住..."、"记录一下..."
|
||||
- 重要性标记:"这很重要..."、"请特别注意..."
|
||||
- 未来引用预告:"下次我提到时..."
|
||||
|
||||
2. **提取记忆内容**:从用户输入中提取需要记忆的具体信息
|
||||
- 提取指令后的核心内容
|
||||
- 必要时与用户确认具体要记忆的内容
|
||||
|
||||
3. **立即存储与反馈**:将内容存入记忆系统并确认
|
||||
- 存储内容及相关上下文
|
||||
- 向用户提供简洁的确认反馈
|
||||
|
||||
### 会话结束触发处理
|
||||
1. **会话总结分析**:分析整个会话的内容和结构
|
||||
- 识别主要主题和子主题
|
||||
- 提取关键事实、决策和结论
|
||||
|
||||
2. **价值信息筛选**:评估会话中信息的价值和重要性
|
||||
- 应用价值评估标准筛选记忆内容
|
||||
- 排除冗余和低价值信息
|
||||
|
||||
3. **结构化存储**:将筛选后的信息存入记忆系统
|
||||
- 建立信息间的关联关系
|
||||
- 创建适当的索引和检索路径
|
||||
</process>
|
||||
|
||||
<rule>
|
||||
1. 用户显式记忆指令必须立即处理,不得延迟到会话结束
|
||||
2. 每次会话结束必须触发一次综合记忆评估和处理
|
||||
3. 显式指令存储的内容必须提供确认反馈给用户
|
||||
4. 显式记忆指令的优先级高于系统自动评估的内容
|
||||
5. 记忆内容必须保留足够上下文以确保未来理解
|
||||
6. 相同或高度相似的信息不应重复存储,而应更新已有记忆
|
||||
7. 记忆存储操作必须保证完整性,避免部分存储导致的信息不一致
|
||||
</rule>
|
||||
|
||||
<constraint>
|
||||
1. 记忆处理不得明显延迟对话响应时间
|
||||
2. 会话结束记忆处理的时间和资源消耗必须在可接受范围内
|
||||
3. 单次存储的记忆内容大小存在上限
|
||||
4. 记忆系统的总容量有限,需要适时清理低价值记忆
|
||||
5. 记忆检索性能会随记忆量增长而降低
|
||||
</constraint>
|
||||
|
||||
<guideline>
|
||||
1. 优先记忆用户个人信息、偏好和重要事实
|
||||
2. 对话中反复提及的主题应提高记忆优先级
|
||||
3. 用户工作流程和决策模式是高价值记忆内容
|
||||
4. 工具调用的有价值结果应作为记忆的一部分
|
||||
5. 记忆反馈应简洁,避免打断自然对话流程
|
||||
6. 会话结束记忆处理应尽可能全面但有选择性
|
||||
7. 长期价值信息优先于短期价值信息
|
||||
</guideline>
|
||||
|
||||
<criteria>
|
||||
| 指标 | 通过标准 | 不通过标准 |
|
||||
|------|---------|-----------|
|
||||
| 指令响应性 | 显式记忆指令立即处理 | 显式指令被忽略或延迟 |
|
||||
| 会话覆盖率 | 所有会话最终进行记忆评估 | 有会话结束未触发记忆处理 |
|
||||
| 内容准确性 | 记忆内容与用户意图一致 | 记忆内容存在误解或偏差 |
|
||||
| 价值筛选 | 高价值信息被有效保留 | 大量低价值信息占用资源 |
|
||||
| 反馈适当性 | 记忆确认简洁且不打断对话 | 反馈过于冗长或缺失 |
|
||||
| 资源效率 | 记忆处理不影响系统响应 | 记忆处理导致明显延迟 |
|
||||
| 内容组织 | 记忆结构合理便于检索 | 记忆碎片化难以关联使用 |
|
||||
</criteria>
|
||||
</execution>
|
||||
230
core/memory/declarative-memory.memory.md
Normal file
230
core/memory/declarative-memory.memory.md
Normal file
@ -0,0 +1,230 @@
|
||||
<memory type="declarative">
|
||||
<!-- 记忆评估部分 -->
|
||||
<evaluate:thought>
|
||||
<reasoning>
|
||||
# 陈述性记忆评估
|
||||
|
||||
## 优先级检查
|
||||
首先检查是否存在用户强制记忆指令:
|
||||
- 用户是否明确使用"记住"、"记录"等指令词?
|
||||
- 用户是否强调某信息的重要性?
|
||||
- 用户是否暗示将来会用到此信息?
|
||||
|
||||
如果存在用户强制记忆指令,则直接进入存储阶段,无需进一步评估。
|
||||
|
||||
## 多维度评估
|
||||
如无强制指令,则进行以下维度的评估:
|
||||
|
||||
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>
|
||||
<process>
|
||||
# 陈述性记忆存储流程
|
||||
|
||||
```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
|
||||
```
|
||||
实际写入示例:
|
||||
```
|
||||
- 用户喜欢蓝色 #偏好 #颜色
|
||||
```
|
||||
|
||||
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>
|
||||
# 陈述性记忆回忆推理
|
||||
|
||||
## 记忆需求分析
|
||||
首先判断当前上下文是否需要使用记忆:
|
||||
- 用户是否明确要求回忆某内容?
|
||||
- 当前讨论是否涉及历史信息?
|
||||
- 是否需要之前记录的用户偏好或事实?
|
||||
|
||||
## 记忆加载状态验证
|
||||
检查记忆文件的加载状态:
|
||||
- 是否已经加载过陈述性记忆文件?
|
||||
- 加载的记忆是否是最新版本?
|
||||
- 缓存的记忆内容是否完整有效?
|
||||
|
||||
## 记忆关联分析
|
||||
识别当前上下文与记忆的关联:
|
||||
- 关键词匹配度
|
||||
- 主题相关性
|
||||
- 时间顺序关联
|
||||
|
||||
## 结论
|
||||
基于以上分析,判断:
|
||||
- 是否需要加载记忆文件
|
||||
- 需要查询的记忆类型和范围
|
||||
- 最适合当前上下文的记忆应用方式
|
||||
</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>
|
||||
</memory>
|
||||
@ -15,5 +15,8 @@
|
||||
| 执行ID | 文件路径 |
|
||||
|--------|---------|
|
||||
| deal-at-reference | @file://PromptX/core/execution/deal-at-reference.execution.md |
|
||||
| prompt-developer | @file://PromptX/domain/prompt/execution/prompt-developer.execution.md |
|
||||
| memory-trigger | @file://PromptX/core/execution/memory-trigger.execution.md |
|
||||
| deal-memory | @file://PromptX/core/execution/deal-memory.execution.md |
|
||||
</registry>
|
||||
</resource>
|
||||
17
core/resource/memory.resource.md
Normal file
17
core/resource/memory.resource.md
Normal file
@ -0,0 +1,17 @@
|
||||
<resource protocol="memory">
|
||||
<location>
|
||||
记忆模式资源位置使用以下格式:
|
||||
|
||||
```ebnf
|
||||
location ::= memory://{memory_id}
|
||||
memory_id ::= [a-zA-Z][a-zA-Z0-9_-]*
|
||||
```
|
||||
</location>
|
||||
|
||||
<registry>
|
||||
<!-- 记忆模式ID到文件路径的映射表 -->
|
||||
| 记忆ID | 文件路径 |
|
||||
|--------|---------|
|
||||
| declarative | @file://PromptX/core/memory/declarative-memory.memory.md |
|
||||
</registry>
|
||||
</resource>
|
||||
@ -12,5 +12,6 @@
|
||||
<!-- 思维模式ID到文件路径的映射表 -->
|
||||
| 思维ID | 文件路径 |
|
||||
|--------|---------|
|
||||
| prompt-developer | @file://PromptX/domain/prompt/thought/prompt-developer.thought.md |
|
||||
</registry>
|
||||
</resource>
|
||||
Reference in New Issue
Block a user