更新角色和资源协议文档,新增提示词开发者和记忆触发机制的定义,优化角色的内容结构,提升文档的清晰度和实用性。同时,删除不再使用的README文档,清理代码库以提高可维护性。

This commit is contained in:
sean
2025-05-20 13:55:55 +08:00
parent 8ebc9da367
commit b40cf2496d
13 changed files with 806 additions and 337 deletions

View 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>

View 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>

View 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>

View File

@ -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>

View 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>

View File

@ -12,5 +12,6 @@
<!-- 思维模式ID到文件路径的映射表 -->
| 思维ID | 文件路径 |
|--------|---------|
| prompt-developer | @file://PromptX/domain/prompt/thought/prompt-developer.thought.md |
</registry>
</resource>