diff --git a/core/execution/deal-memory.execution.md b/core/execution/deal-memory.execution.md
index 62da8d9..fa0e3ac 100644
--- a/core/execution/deal-memory.execution.md
+++ b/core/execution/deal-memory.execution.md
@@ -93,10 +93,19 @@
### 3. 自动存储流程
**自主执行工具调用**:
- - 准备符合记忆条目格式的内容
- - 自动选择适当的标签
- - 主动使用工具调用实际写入记忆文件
- - 验证工具调用结果
+ - 使用 `promptx.js remember` 命令存储记忆
+ - 命令格式:`node promptx.js remember "记忆内容" [#标签1 #标签2] [score:评分] [duration:时长]`
+ - 示例:`node promptx.js remember "用户偏好设置" #用户信息 #配置 score:8 duration:长期`
+ - 验证存储结果并提供反馈
+
+ **记忆存储格式**:
+ ```
+ 记忆条目格式:
+ - {内容} #{标签1} #{标签2} #评分:{分值} #有效期:{时长} #时间:{时间戳}
+
+ 示例:
+ - 用户偏好深色主题 #用户信息 #配置 #评分:8 #有效期:长期 #时间:2024-03-20 15:30
+ ```
### 4. 自动反馈机制
@@ -111,17 +120,45 @@
- 检测对话中是否出现相关问题或需求
- 主动加载记忆文件并检索相关内容
- 自然地将记忆内容融入回答中
+
+ ### 6. 工具初始化检查
+
+ **启动时执行**:
+ - 检查 promptx.js 是否可用
+ - 验证 remember 命令是否正常
+ - 确认记忆存储权限
+
+ ### 7. 违规监控机制
+
+ **违规处理流程**:
+ ```mermaid
+ flowchart TD
+ A[检测记忆存储请求] --> B{是否使用promptx.js}
+ B -->|是| C[继续处理]
+ B -->|否| D[记录违规]
+ D --> E{违规次数}
+ E -->|首次| F[发出警告]
+ E -->|再次| G[记录到审计日志]
+ E -->|三次及以上| H[暂停记忆功能]
+ F --> I[引导使用正确命令]
+ G --> I
+ H --> J[要求人工干预]
+ ```
1. 角色初始化时**必须**主动加载记忆文件
- 2. 显式记忆指令**必须**自动触发完整的记忆处理流程,无需用户提醒
- 3. 记忆存储**必须**通过实际工具调用执行,不得仅在对话中声明
+ 2. 显式记忆指令**必须且只能**使用 `promptx.js remember` 命令执行存储
+ 3. 记忆存储**必须**包含评分、标签和有效期信息
4. 工具调用结果**必须**得到验证,确保记忆实际写入
5. 记忆反馈**必须**简洁明了,使用emoji等轻量级方式
6. 高价值信息识别和评估**必须**自动进行,不依赖用户明确指示
7. 记忆回忆**必须**在检测到相关需求时自动触发
8. 记忆处理的全流程**必须**在单次对话交互中完成,不拖延到后续交互
+ 9. **严禁**使用其他工具调用替代 promptx.js remember 命令
+ 10. **严禁**忽略评分不达标的记忆存储请求
+ 11. 违反工具使用规则**必须**执行违规处理流程
+ 12. 命令格式**必须**为:node promptx.js remember "内容" [#标签] [score:分值] [duration:时长]
@@ -131,6 +168,12 @@
4. 记忆评估受限于AI的语义理解能力
5. 记忆文件访问和写入可能受到环境限制
6. emoji反馈可能在某些界面中显示不完整
+ 7. 仅允许使用 promptx.js remember 进行记忆存储
+ 8. 其他工具调用在记忆存储场景下将被拒绝
+ 9. 记忆存储操作不可被其他工具替代
+ 10. 单次记忆命令执行时间不超过1秒
+ 11. 评分计算不超过100ms
+ 12. 存储验证不超过50ms
@@ -142,6 +185,9 @@
6. 记忆反馈应作为轻量级确认,不打断对话流程
7. 回忆机制应自然融入回答,避免机械式引用
8. 高度相关的记忆应在合适时机主动提供,不等用户询问
+ 9. 发现记忆指令时应立即切换到 promptx.js remember 命令
+ 10. 首次出现工具选择错误时,应提供正确使用方法的指导
+ 11. 对于评分不达标的信息,应明确解释不存储的原因
@@ -155,5 +201,8 @@
| 回忆主动性 | 相关场景下自动检索并应用记忆 | 用户需明确要求回忆 |
| 流程效率 | 不影响对话响应时间 | 明显延迟或阻塞对话 |
| 集成一致性 | 与现有记忆协议无缝集成 | 与其他协议冲突 |
+ | 工具选择正确性 | 使用 promptx.js remember | 使用其他工具调用 |
+ | 命令格式正确性 | 符合规定格式 | 格式错误或缺失参数 |
+ | 违规处理及时性 | 及时发现并处理违规 | 忽视违规操作 |
\ No newline at end of file
diff --git a/core/execution/memory-tool-usage.execution.md b/core/execution/memory-tool-usage.execution.md
new file mode 100644
index 0000000..b328155
--- /dev/null
+++ b/core/execution/memory-tool-usage.execution.md
@@ -0,0 +1,146 @@
+
+
+ # 记忆工具使用规范
+
+ ```mermaid
+ flowchart TD
+ A[启动记忆服务] --> B[检查工具可用性]
+ B --> C[注册监控钩子]
+ C --> D[等待记忆触发]
+
+ D --> E{检测记忆指令}
+ E -->|显式指令| F[强制使用promptx.js]
+ E -->|隐式指令| G[评估并使用promptx.js]
+
+ F --> H[执行记忆命令]
+ G --> H
+
+ I[检测工具使用错误] --> J{纠正机制}
+ J -->|首次错误| K[发出警告]
+ J -->|再次错误| L[记录违规]
+ J -->|多次错误| M[阻断操作]
+
+ K --> N[提供正确示例]
+ L --> N
+ N --> O[重定向到正确工具]
+ O --> H
+ ```
+
+ ## 工具优先级规则
+
+ 1. **命令优先级设置**
+ - promptx.js remember 命令具有最高优先级
+ - 任何记忆存储操作必须使用此命令
+ - 其他工具调用在记忆场景下将被自动拦截
+
+ 2. **命令格式标准化**
+ - 标准格式:`node promptx.js remember "内容" [#标签] [score:分值] [duration:时长]`
+ - 示例:`node promptx.js remember "用户偏好简洁界面" #用户偏好 #设置 score:8 duration:长期`
+ - 所有参数必须按照规定格式提供,不得省略必要参数
+
+ 3. **监控与拦截机制**
+ - 实时监控所有记忆相关操作
+ - 自动拦截非 promptx.js 的工具调用
+ - 自动转换为正确的命令格式
+ - 记录所有拦截和转换操作
+
+ 4. **违规处理流程**
+ ```
+ 1. 首次违规:发出警告,提供正确使用示例
+ 2. 二次违规:记录违规,强制转换为正确命令
+ 3. 三次违规:阻断操作,要求人工确认
+ 4. 多次违规:暂时禁用自动记忆功能
+ ```
+
+ 5. **工具调用初始化检查**
+ - 系统启动时检查 promptx.js 可用性
+ - 验证 remember 命令是否正常工作
+ - 测试记忆存储路径的写入权限
+ - 配置违规监控阈值和处理策略
+
+
+
+ 1. **工具选择强制规则**
+ - 记忆操作**必须且只能**使用 promptx.js remember 命令
+ - **严禁**使用任何其他工具调用替代
+ - 违反工具使用规则将触发自动拦截和纠正
+ - 连续违规将导致记忆功能暂时禁用
+
+ 2. **命令格式强制规则**
+ - 命令格式必须为:`node promptx.js remember "内容" [#标签] [score:分值] [duration:时长]`
+ - 评分参数必须提供
+ - 标签必须遵循规定的标签体系
+ - 有效期必须明确指定
+
+ 3. **参数验证规则**
+ - 内容不得为空
+ - 评分必须为有效数值(0-10)
+ - 有效期必须为预定义值(短期/中期/长期)
+ - 内容长度不超过100个字符
+
+ 4. **工具监控规则**
+ - 记忆相关操作必须被实时监控
+ - 监控程序不得干扰正常对话流程
+ - 所有违规记录必须保存到审计日志
+ - 违规统计数据必须定期清零
+
+
+
+ 1. **工具使用技术限制**
+ - promptx.js 依赖于运行环境
+ - 监控机制受系统性能限制
+ - 拦截和转换操作可能产生轻微延迟
+ - 并发记忆操作存在资源竞争
+
+ 2. **命令执行限制**
+ - 单次记忆命令执行时间不超过1秒
+ - 命令参数总长度不超过200字符
+ - 同一会话中记忆操作数量有限
+ - 命令执行失败时需有重试机制
+
+ 3. **监控性能限制**
+ - 监控开销不超过10ms/次
+ - 拦截处理不超过50ms/次
+ - 审计日志大小不超过2MB
+ - 违规计数器精度为会话级别
+
+
+
+ 1. **工具选择最佳实践**
+ - 始终首选 promptx.js remember 命令
+ - 熟悉命令的完整语法和参数
+ - 在记忆相关操作前主动切换到正确工具
+ - 不尝试使用替代工具绕过限制
+
+ 2. **命令使用技巧**
+ - 准备好所有必要参数再执行命令
+ - 标签应简洁明确,便于后续检索
+ - 评分应基于多维度评估结果
+ - 有效期应与信息的时效性匹配
+
+ 3. **错误处理建议**
+ - 命令执行失败时检查参数格式
+ - 权限问题时检查存储路径设置
+ - 内容过长时进行适当分割
+ - 遇到违规警告时立即改正
+
+ 4. **监控响应建议**
+ - 理解并遵循工具使用规则
+ - 收到警告时认真查看提供的示例
+ - 避免尝试绕过监控系统
+ - 记录并学习常见的使用错误
+
+
+
+ | 指标 | 通过标准 | 不通过标准 |
+ |------|---------|-----------|
+ | 工具选择正确性 | 100%使用promptx.js remember | 使用其他工具调用 |
+ | 命令格式准确性 | 完全符合规定格式 | 参数缺失或格式错误 |
+ | 参数完整性 | 提供所有必要参数 | 缺少关键参数 |
+ | 拦截响应速度 | 错误检测后立即拦截 | 延迟拦截或不拦截 |
+ | 纠正准确性 | 正确转换为标准格式 | 转换错误或不完整 |
+ | 违规处理及时性 | 违规后立即执行处理 | 延迟处理或忽略违规 |
+ | 审计记录完整性 | 记录所有相关操作 | 记录缺失或不完整 |
+ | 用户体验影响 | 不影响正常对话流程 | 明显干扰对话体验 |
+
+
\ No newline at end of file
diff --git a/core/execution/memory-trigger.execution.md b/core/execution/memory-trigger.execution.md
index dea9e2c..0f1670d 100644
--- a/core/execution/memory-trigger.execution.md
+++ b/core/execution/memory-trigger.execution.md
@@ -54,6 +54,31 @@
- 时效性:2 (短期有效)
总分:4.3分 ✗ (未通过存储阈值)
```
+
+ ## 工具使用监控流程
+
+ ```mermaid
+ flowchart TD
+ A[检测记忆操作] --> B{检查工具选择}
+ B -->|promptx.js| C[继续处理]
+ B -->|其他工具| D[拦截操作]
+ D --> E[记录违规]
+ E --> F[强制重定向]
+ F --> G[使用正确工具]
+ G --> C
+ C --> H[执行记忆存储]
+ ```
+
+ 1. **工具使用检测**:
+ - 主动监控记忆相关操作
+ - 识别显式和隐式记忆指令
+ - 在检测到记忆指令时立即验证工具选择
+
+ 2. **工具纠正机制**:
+ - 发现错误工具使用时立即拦截
+ - 自动切换到 promptx.js remember 命令
+ - 保留原始参数并转换为正确格式
+ - 记录纠正操作以便审计
@@ -64,21 +89,40 @@
- 显式记忆指令可以覆盖评分,但最低为8分
2. **存储前置条件**
- - 存储操作必须验证评分标记
- - 未评分的记忆条目将被自动拒绝
+ - 存储操作必须且只能使用 `promptx.js remember` 命令
+ - 严禁使用其他工具调用替代 promptx.js remember
+ - 命令格式必须包含评分和标签信息
- 评分需包含具体分值和评估依据
- - 评分标记格式:#评分:{分值} #评估:{维度得分}
+ - 存储示例:
+ ```bash
+ # 高价值信息存储
+ node promptx.js remember "用户ID: 12345" #用户信息 #核心信息 score:9 duration:长期
+
+ # 中等价值信息存储
+ node promptx.js remember "用户喜欢简洁界面" #用户偏好 score:6 duration:长期
+
+ # 低价值信息(不建议存储)
+ node promptx.js remember "临时调试信息" #调试 score:3 duration:短期
+ ```
3. **违规处理机制**
- - 对违规存储操作发出警告提示
- - 自动清理评分不达标的记忆条目
- - 记录违规操作到审计日志
- - 连续违规将触发系统提醒
+ - 对评分不达标的存储操作发出警告提示
+ - 系统会自动拒绝评分低于5分的存储请求
+ - 记录所有存储操作到 `.memory/declarative.md`
+ - 定期检查并清理低价值记忆
+ - 检测到错误工具使用时必须立即纠正
+ - 记录所有工具使用违规到审计日志
4. **评分有效性**
- 评分有效期为当前会话
- 跨会话的记忆条目需重新评估
- 定期对已存储记忆进行重新评分
+
+ 5. **工具使用优先级**
+ - promptx.js remember 命令具有最高优先级
+ - 任何其他工具调用尝试将被自动拦截并重定向
+ - 记忆相关操作必须通过指定命令执行
+ - 违反工具使用规则将触发警告和纠正机制
@@ -86,16 +130,24 @@
- 单次评分计算不超过100ms
- 评分维度数量固定为6个
- 评分精度保留一位小数
+ - 记忆命令执行时间不超过1秒
2. **存储验证限制**
- 验证超时时间不超过50ms
- 单次会话最多允许3次违规
- 评分记录最多保存30天
+ - `.memory` 目录总大小不超过10MB
3. **系统资源限制**
- 评分计算内存占用不超过10MB
- 审计日志大小不超过1MB
- 单日评分次数不超过1000次
+
+ 4. **工具使用限制**
+ - 记忆存储操作仅支持 promptx.js remember 命令
+ - 工具调用监控开销不超过10ms
+ - 工具切换过程不影响用户体验
+ - 纠正机制仅在检测到错误工具使用时触发
@@ -106,6 +158,9 @@
5. 记忆反馈应简洁,避免打断自然对话流程
6. 会话结束记忆处理应尽可能全面但有选择性
7. 长期价值信息优先于短期价值信息
+ 8. 检测到记忆相关操作时立即使用正确的工具
+ 9. 首次工具使用错误时提供明确的纠正指导
+ 10. 主动监控工具选择以确保符合规则
@@ -117,5 +172,8 @@
| 响应及时性 | 评分计算及时 | 计算延迟明显 |
| 反馈清晰度 | 提供明确反馈 | 反馈模糊或缺失 |
| 审计完整性 | 记录所有违规 | 违规记录缺失 |
+ | 工具选择正确性 | 仅使用 promptx.js remember | 使用其他工具调用 |
+ | 工具切换及时性 | 错误检测后立即切换 | 延迟切换或不切换 |
+ | 命令格式正确性 | 完全符合规定格式 | 参数错误或不完整 |
\ No newline at end of file
diff --git a/domain/prompt/prompt-developer.role.md b/domain/prompt/prompt-developer.role.md
index 43abc19..cc35559 100644
--- a/domain/prompt/prompt-developer.role.md
+++ b/domain/prompt/prompt-developer.role.md
@@ -25,6 +25,10 @@
确保自动完成记忆的识别、评估、存储和反馈的端到端流程:
@!execution://deal-memory
+ ### 记忆工具使用规范
+ 严格遵守记忆工具使用规则,必须且只能使用 promptx.js remember 命令:
+ @!execution://memory-tool-usage
+
# 提示词开发原则
@@ -69,7 +73,7 @@
## 资源加载优先级
- 1. 核心执行框架: @!execution://deal-at-reference, @!execution://deal-memory, @!execution://memory-trigger
+ 1. 核心执行框架: @!execution://deal-at-reference, @!execution://deal-memory, @!execution://memory-trigger, @!execution://memory-tool-usage
2. 核心记忆系统: @!memory://declarative
3. 角色思维模式: @!thought://prompt-developer
4. 角色执行框架: @execution://prompt-developer
@@ -92,7 +96,7 @@
## 角色启动确认
完成以上初始化步骤后,提示词开发者角色将进入就绪状态,可以开始接收用户输入并提供专业的提示词开发支持。
- 进入状态时,提示词开发者应明确表达 “🙋我已进入角色状态!!”
+ 进入状态时,提示词开发者应明确表达 "🙋我已进入角色状态!!"
\ No newline at end of file
diff --git a/promptx.js b/promptx.js
index 91021ed..a94757e 100644
--- a/promptx.js
+++ b/promptx.js
@@ -138,6 +138,94 @@ function printFile(filePath) {
}
}
+/**
+ * 添加记忆条目
+ * @param {string} content - 记忆内容
+ * @param {object} options - 配置选项
+ */
+function addMemory(content, options = {}) {
+ const defaultOptions = {
+ tags: ['其他'],
+ score: 5,
+ duration: '短期',
+ timestamp: new Date().toLocaleString('zh-CN', {
+ year: 'numeric',
+ month: '2-digit',
+ day: '2-digit',
+ hour: '2-digit',
+ minute: '2-digit'
+ })
+ };
+
+ const finalOptions = { ...defaultOptions, ...options };
+
+ // 构建记忆条目,确保格式统一
+ const memoryEntry = `\n- ${content.trim()} ${finalOptions.tags.map(tag => `#${tag}`).join(' ')} #评分:${finalOptions.score} #有效期:${finalOptions.duration} #时间:${finalOptions.timestamp}\n`;
+
+ // 确保.memory目录存在
+ const memoryDir = path.join(process.cwd(), '.memory');
+ if (!fs.existsSync(memoryDir)) {
+ fs.mkdirSync(memoryDir, { recursive: true });
+ }
+
+ // 追加到记忆文件
+ const memoryFile = path.join(memoryDir, 'declarative.md');
+ try {
+ // 如果文件不存在,创建文件并添加标题
+ if (!fs.existsSync(memoryFile)) {
+ fs.writeFileSync(memoryFile, '# 陈述性记忆库\n\n## 高价值记忆(评分 ≥ 7)\n');
+ }
+
+ fs.appendFileSync(memoryFile, memoryEntry);
+ console.log('✅ 记忆已成功保存');
+
+ // 如果评分大于等于7,输出高价值提醒
+ if (finalOptions.score >= 7) {
+ console.log('🌟 这是一条高价值记忆');
+ }
+ } catch (err) {
+ console.error('❌ 记忆保存失败:', err);
+ }
+}
+
+/**
+ * 解析记忆命令参数
+ * @param {string} content - 记忆内容
+ * @param {string[]} args - 其他参数
+ */
+function parseMemoryArgs(content, args) {
+ const options = {
+ tags: [],
+ score: 5,
+ duration: '短期'
+ };
+
+ // 解析标签和其他选项
+ args.forEach(arg => {
+ if (arg.startsWith('#')) {
+ // 去掉#号并添加到标签数组
+ options.tags.push(arg.slice(1).trim());
+ } else if (arg.startsWith('score:')) {
+ const score = parseInt(arg.split(':')[1]);
+ if (!isNaN(score) && score >= 1 && score <= 10) {
+ options.score = score;
+ }
+ } else if (arg.startsWith('duration:')) {
+ const duration = arg.split(':')[1].trim();
+ if (['短期', '长期'].includes(duration)) {
+ options.duration = duration;
+ }
+ }
+ });
+
+ // 如果没有标签,使用默认标签
+ if (options.tags.length === 0) {
+ options.tags = ['其他'];
+ }
+
+ return options;
+}
+
/**
* 打印帮助信息
*/
@@ -150,16 +238,17 @@ PromptX 工具 - 协议和角色内容查看器
node promptx.js protocols - 同上,打印所有协议内容
node promptx.js role <路径> - 打印指定角色文件内容
node promptx.js file <路径> - 打印指定文件内容
+ node promptx.js remember <内容> [选项] - 添加记忆条目
node promptx.js help - 显示此帮助信息
-路径说明:
- - 对于'role'和'file'命令,路径应该是相对于PromptX目录的路径
- - 也支持绝对路径
+记忆命令选项:
+ #标签名 - 添加标签 (可多个)
+ score:数字 - 设置重要性评分 (1-10)
+ duration:时长 - 设置有效期 (短期/长期)
示例:
- node promptx.js
- node promptx.js role domain/prompt/prompt-developer.role.md
- node promptx.js file protocol/tag/thought.tag.md
+ node promptx.js remember "用户提出了重要建议" #用户反馈 #改进建议 score:7 duration:长期
+ node promptx.js remember "临时配置信息" #配置 score:3
`);
}
@@ -184,6 +273,17 @@ switch (command) {
printFile(param);
}
break;
+ case 'remember':
+ if (!param) {
+ console.error('错误: 缺少记忆内容');
+ console.log('使用方法: node promptx.js remember "记忆内容" [#标签1 #标签2] [score:7] [duration:长期]');
+ } else {
+ const memoryContent = param;
+ const memoryArgs = args.slice(2); // 获取其他参数
+ const options = parseMemoryArgs(memoryContent, memoryArgs);
+ addMemory(memoryContent, options);
+ }
+ break;
case 'help':
printHelp();
break;
diff --git a/resource/execution.resource.md b/resource/execution.resource.md
index 0befb25..104f87f 100644
--- a/resource/execution.resource.md
+++ b/resource/execution.resource.md
@@ -16,6 +16,7 @@
| 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 |
+ | memory-tool-usage | @file://PromptX/core/execution/memory-tool-usage.execution.md |
| thought-best-practice | @file://PromptX/domain/prompt/execution/thought-best-practice.execution.md |
| execution-best-practice | @file://PromptX/domain/prompt/execution/execution-best-practice.execution.md |
| memory-best-practice | @file://PromptX/domain/prompt/execution/memory-best-practice.execution.md |