diff --git a/protocol/practice/execution-best-practice.md b/domain/prompt/practice/execution-best-practice.md similarity index 100% rename from protocol/practice/execution-best-practice.md rename to domain/prompt/practice/execution-best-practice.md diff --git a/domain/prompt/practice/memory-best-practice.md b/domain/prompt/practice/memory-best-practice.md new file mode 100644 index 0000000..8e86e58 --- /dev/null +++ b/domain/prompt/practice/memory-best-practice.md @@ -0,0 +1,253 @@ +# DPML记忆模式提示词框架最佳实践 + +> **TL;DR:** 本文档提供DPML记忆模式提示词框架的最佳实践指南,包括知识库设计、记忆类型选择、操作建议和具体示例。 + +## 💡 最佳实践 + +### 知识库设计 + +角色的先验知识库设计应考虑以下因素: + +- **结构化程度**: + - 高度结构化:适合专业领域知识,便于精确检索 + - 半结构化:适合通用知识,平衡灵活性和组织性 + - 低结构化:适合创意和启发性内容,保持关联灵活性 + +- **知识粒度**: + - 宏观框架:定义领域整体认知结构 + - 中观原则:定义关键概念和方法论 + - 微观细节:定义具体事实和操作步骤 + +- **表达方式推荐**: + - 领域地图:使用思维导图表达知识间的关系 + - 分类表格:使用表格整理分类知识 + - 核心原则:使用编号列表表达重要规则和原则 + +- **资源引用特性**: + - 预加载原则:knowledge标签中的所有资源引用都会在角色初始化时加载 + - 内容与引用平衡:综合使用直接内容和资源引用 + - 分级引用:核心知识内联,扩展知识通过资源引用 + +### 记忆类型选择 + +协议实现可以根据需求采用不同的记忆类型分类方法,以下是基于认知心理学的常见分类: + +1. **陈述性记忆(declarative)**:事实性知识,包括: + - 语义记忆:通用事实,如"Python是编程语言" + - 时态记忆:时间相关信息,如"上次会话在昨天" + +2. **程序性记忆(procedural)**:过程和技能知识,如: + - 操作步骤:如"解决环境配置问题的方法" + - 行动模式:如"用户代码风格偏好" + +3. **情景记忆(episodic)**:特定经历和场景,如: + - 交互记录:如"用户之前遇到的报错" + - 场景重建:如"项目开发历程" + +不同类型记忆的选择建议: +- 存储事实性信息时,考虑使用陈述性记忆方式 +- 存储方法和步骤时,考虑使用程序性记忆方式 +- 存储具体交互经历时,考虑使用情景记忆方式 + +### 记忆操作使用建议 + +- **knowledge最佳实践**: + - 将核心知识组织为分层结构 + - 使用可视化图表表达知识间的关系 + - 区分"确定性知识"和"启发性知识" + - 避免过于琐碎的细节,保持适当抽象 + - 确保所有关键知识都在角色初始化时可用 + - 平衡内联内容和资源引用,内联核心概念,引用详细信息 + - 使用资源引用时考虑加载成本,避免引用过大的资源 + +- **evaluate最佳实践**: + - 明确设定评估标准 + - 综合考虑信息的稀有性、实用性和时效性 + - 避免过度记忆导致的信息冗余 + +- **store最佳实践**: + - 为记忆提供足够的上下文 + - 建立适当的记忆关联 + - 设置合理的过期策略 + +- **recall最佳实践**: + - 设计清晰的记忆检索触发条件 + - 制定多层次的检索策略 + - 规划记忆应用的具体步骤 + - 处理记忆缺失的回退策略 + - 资源引用按需加载,注意引用路径的准确性 + +## 📋 使用示例 + +### 基础使用示例 + +```xml + + + + # 技术领域基础知识 + + ## 核心概念(直接内联,预加载) + - 编程语言:Python、JavaScript、Go + - 开发框架:React、Django、Flask + - 数据库技术:SQL、MongoDB、Redis + + ## 详细资料(资源引用,预加载) + - @file://references/programming_languages.md + - @file://references/frameworks.md + + + + + + 用户提供了特定的代码风格偏好,这对提供一致的代码建议很重要。 + 评分:实用性=8,稳定性=9,总分8.5 > 阈值7.5 + + + + + { + "indent": "2spaces", + "naming": "camelCase", + "brackets": "sameLine" + } + + +``` + +### 高级使用示例 + +```xml + + + + + # 技术支持专家知识库 + + ```mermaid + mindmap + root((技术支持)) + 常见问题 + 依赖冲突 + 环境配置 + 性能优化 + 诊断方法 + 日志分析 + 错误模式识别 + 性能分析 + 解决策略 + 快速修复 + 根本解决 + 预防措施 + ``` + + ## 优先级框架 + | 问题类型 | 优先级 | 响应时间 | + |---------|-------|---------| + | 系统宕机 | 紧急 | <30分钟 | + | 功能障碍 | 高 | <2小时 | + | 性能问题 | 中 | <1天 | + | 功能建议 | 低 | <1周 | + + ## 知识库引用(全部预加载) + - @file://kb/common_errors.md + - @http://internal.docs/troubleshooting-guide.html + - @db://support/solutions + + + + + + 分析用户遇到的依赖安装错误: + + 1. 问题特点: + - 特定版本冲突问题 + - 解决方法非官方文档所列 + - 多次在社区中被报告 + + 2. 记忆价值: + - 解决方案不易找到 + - 可能重复出现 + - 节省未来排查时间 + + 记忆价值评分:9/10,超过阈值 + 决策:应当记忆此解决方案 + + + + + + 问题:TensorFlow 2.4安装与CUDA 11.2版本冲突 + 解决方案:使用兼容性补丁并降级CUDA驱动 + + + + # 存储流程 + + ```mermaid + flowchart TD + A[接收内容] --> B[验证格式] + B --> C[分类标记] + C --> D[构建索引] + D --> E[写入持久存储] + ``` + + + + 1. 解决方案记忆优先级设为高 + 2. 建立与相关技术的关联索引 + 3. 保存完整的上下文信息 + + + + + + + 根据当前用户描述的错误信息分析: + - 涉及TensorFlow与CUDA版本问题 + - 错误模式与之前记录的类似 + - 应当检索相关解决方案 + + + + # 记忆应用计划 + + ```mermaid + flowchart TD + A[识别问题模式] --> B[检索相关记忆] + B --> C[验证适用性] + C -->|适用| D[应用解决方案] + C -->|不适用| E[寻找替代方案] + D --> F[监控结果] + ``` + + 1. 检索TensorFlow相关解决方案 + 2. 验证版本兼容性 + 3. 提供定制化指导 + + + @file://solutions/tensorflow_cuda_fixes.md + + + +``` + +## 实现考虑事项 + +### 知识预加载与按需加载的平衡 + +- **预加载考虑**:knowledge标签中的所有内容和资源引用都预加载 + - 优点:对话开始时角色就拥有完整知识 + - 缺点:初始化成本高,特别是引用大型资源时 + +- **混合策略建议**: + - 核心知识直接内联在knowledge标签中 + - 必要但不常用的知识通过资源引用方式组织 + - 极少使用的扩展知识放在recall中按需引用 + +- **性能优化**: + - 对大型知识库考虑使用索引+按需加载模式 + - 使用分层加载策略:核心立即加载,细节延迟加载 + - 为循环引用建立保护机制,避免无限递归加载 + +> **注意**:memory协议现在包含四个核心组件:knowledge(先验知识库)、evaluate(评估)、store(存储)和recall(回忆),共同构成完整的记忆系统。knowledge定义预加载知识,而其他组件负责运行时记忆管理。 \ No newline at end of file diff --git a/protocol/practice/resource-best-practice.md b/domain/prompt/practice/resource-best-practice.md similarity index 100% rename from protocol/practice/resource-best-practice.md rename to domain/prompt/practice/resource-best-practice.md diff --git a/protocol/practice/role-best-practice.md b/domain/prompt/practice/role-best-practice.md similarity index 100% rename from protocol/practice/role-best-practice.md rename to domain/prompt/practice/role-best-practice.md diff --git a/protocol/practice/thought-best-practice.md b/domain/prompt/practice/thought-best-practice.md similarity index 100% rename from protocol/practice/thought-best-practice.md rename to domain/prompt/practice/thought-best-practice.md diff --git a/domain/prompt/prompt_developer_role.md b/domain/prompt/prompt_developer_role.md new file mode 100644 index 0000000..8fb615a --- /dev/null +++ b/domain/prompt/prompt_developer_role.md @@ -0,0 +1,128 @@ + + + + + + + # 提示词设计思路 + + ```mermaid + mindmap + root((提示词设计)) + 结构规划 + 协议选择 + 标签组织 + 语义设计 + 指令清晰性 + 上下文定义 + 用户体验 + 交互流畅度 + 反馈机制 + 测试验证 + 边界测试 + 异常处理 + ``` + + + + # 提示词开发流程 + + ```mermaid + flowchart TD + A[需求分析] --> B[协议选择] + B --> C[结构设计] + C --> D[内容编写] + D --> E[测试验证] + E --> F{是否符合需求} + F -->|是| G[完成] + F -->|否| H[调整优化] + H --> D + ``` + + + + # 提示词设计风险点 + + ```mermaid + mindmap + root((设计风险)) + 结构问题 + 标签嵌套过深 + 语义不清晰 + 内容问题 + 指令歧义 + 信息冗余 + 执行问题 + 边界条件处理 + 错误恢复能力 + ``` + + + + + + + # 提示词编写指南 + + - 保持标签结构简洁清晰,避免过度嵌套 + - 使用自解释性强的标签和属性名称 + - 内容采用Markdown格式,充分利用其表现力 + - 视觉化表达优于纯文本描述 + - 组件化设计,促进提示词模块复用 + + + + # 提示词开发规范 + + 1. 严格遵循DPML语法规则和标签定义 + 2. 每个标签必须有明确的语义目的 + 3. 标签必须正确闭合,属性值使用双引号 + 4. 内容必须符合Markdown语法规范 + 5. 协议实现关系必须遵循"A:B"格式规范 + + + + # 开发限制条件 + + - 仅使用已定义的DPML协议和标签 + - 遵循协议的优先级和组合规则 + - 考虑不同AI模型的理解能力差异 + + + + # 提示词质量评估标准 + + | 指标 | 目标值 | 评估方法 | + |-----|-------|---------| + | 结构清晰度 | 高 | 标签嵌套深度≤3 | + | 语义准确性 | 高 | AI理解准确率>95% | + | 执行一致性 | 高 | 相同输入产生一致输出 | + | 复用性 | 中高 | 组件可在多种场景使用 | + + + + + + + # DPML知识来源 + + 核心协议文档: + - @file://PromptX/protocol/dpml.protocol.md + - @file://PromptX/protocol/base/thought.protocol.md + - @file://PromptX/protocol/base/execution.protocol.md + - @file://PromptX/protocol/base/memory.protocol.md + - @file://PromptX/protocol/base/resource.protocol.md + - @file://PromptX/protocol/base/role.protocol.md + + 最佳实践文档: + - @file://PromptX/protocol/practice/thought-best-practice.md + - @file://PromptX/protocol/practice/execution-best-practice.md + - @file://PromptX/protocol/practice/memory-best-practice.md + - @file://PromptX/protocol/practice/resource-best-practice.md + - @file://PromptX/protocol/practice/role-best-practice.md + + 模板文档: + - @file://PromptX/protocol/template/protocol-framework-template.md + + + diff --git a/protocol/base/memory.protocol.md b/protocol/base/memory.protocol.md deleted file mode 100644 index c14f3bd..0000000 --- a/protocol/base/memory.protocol.md +++ /dev/null @@ -1,65 +0,0 @@ -# DPML记忆模式提示词框架 - -> **TL;DR:** DPML记忆模式提示词框架定义了AI系统的记忆管理提示词模板,支持三种记忆类型(陈述性、程序性、情景记忆)的提示词构建,并提供完整的记忆生命周期(评估、存储、调用)管理提示词。 - -### 目的与功能 - -DPML记忆模式提示词框架为AI系统提供完整的记忆能力提示词模板,主要功能包括: -- 定义不同类型记忆的提示词结构和语义 -- 提供记忆评估、存储和检索的标准化提示词机制 -- 实现跨会话的信息持久化提示词模板 -- 支持复杂的记忆关联和检索模式的提示词构建 - -## 🔍 基本信息 - -**框架名称:** `` (DPML记忆模式提示词框架) -**版本:** 1.0.0 -**类别:** 记忆类提示词 -**状态:** 草稿 - -## 📝 语法定义 - -```ebnf -(* EBNF形式化定义 *) -memory_element ::= '' memory_content '' -attributes ::= (' ' attribute)+ | '' -attribute ::= name '="' value '"' -name ::= [a-zA-Z][a-zA-Z0-9_-]* -value ::= [^"]* - -memory_content ::= (text | evaluate_element | store_element | recall_element)+ - -evaluate_element ::= '' thought_content '' -store_element ::= '' (text | execution_element)* '' -recall_element ::= '' resource_reference '' - -thought_content ::= (* 符合thought协议的内容 *) -execution_element ::= (* 符合execution协议的元素 *) -resource_reference ::= (* 符合resource协议的引用 *) - -text ::= (* 任何文本内容 *) -``` - -## 🧩 语义说明 - -memory标签表示AI系统的记忆管理单元,定义了记忆的结构和操作方式。它使用三层机制管理记忆的完整生命周期: - -### 记忆操作 - -memory标签包含三个核心子标签,分别对应记忆的三个操作阶段: - -1. **``**:评估信息是否值得记忆 - - 通过thought协议实现评估过程 - - 判断信息的价值、相关性和可信度 - - 决定是否将信息存入记忆系统 - -2. **``**:将信息存入记忆系统 - - 通过execution协议实现存储操作 - - 定义存储过程、规则和约束 - - 管理记忆的添加、更新和组织 - -3. **``**:从记忆系统检索信息 - - 通过resource协议实现检索操作 - - 使用@memory://路径引用存储的记忆 - - 支持过滤、分页和条件检索 - diff --git a/protocol/dpml.protocol.md b/protocol/dpml.protocol.md index 66a2420..25e482c 100644 --- a/protocol/dpml.protocol.md +++ b/protocol/dpml.protocol.md @@ -83,6 +83,30 @@ markdown_text ::= (* 任何有效的Markdown文本 *) | 内容表达 | 使用Markdown表达的实际提示文本 | `# 步骤\n1. 首先...` | | 组合提示 | 多个提示单元组合形成完整提示 | `......` | +### 属性约束 + +DPML对属性采用以下约束和规范: + +1. **属性的通用性原则**: + - 属性是通用机制,可应用于任何标签 + - 同一属性可用于不同标签,但语义一致 + - 属性独立于标签单独定义,不绑定于特定标签 + +2. **属性定义原则**: + - DPML本身不预定义具体属性,仅提供属性的语法框架 + - 所有使用的属性必须在具体协议或属性规范中明确定义 + - 未定义的属性不允许使用 + - 属性值必须符合规定的类型和范围 + +3. **属性规范管理**: + - 属性在单独的属性规范文档中定义 + - 每个属性定义包括:名称、数据类型、适用范围、语义 + - 新属性需遵循规范化流程引入 + - 兼容性变更需考虑向后兼容性 + + +属性约束确保提示词的一致性和互操作性。在使用DPML开发提示词时,开发者应遵循已定义的属性规范,不得创建私有或未文档化的属性。 + ### 协议实现绑定 DPML中的冒号(`:`)语法是核心语义机制,用于表达标签间的实现关系: @@ -255,6 +279,16 @@ DPML中的冒号(`:`)语法是核心语义机制,用于表达标签间的实 ``` 错误原因:属性值缺少双引号,应为`type="analysis"` +**3. 使用未定义属性** +``` + + + 思考内容... + + +``` +错误原因:使用了未在属性规范中定义的`color`和`importance`属性 + ## 💡 最佳实践 1. **标签命名自释义**:选择具有自解释性的标签名称,使其本身就能清晰表达逻辑语义,即使没有计算机处理,人和AI也能轻松理解标签结构的逻辑上下文 @@ -264,6 +298,7 @@ DPML中的冒号(`:`)语法是核心语义机制,用于表达标签间的实 5. **属性合理性**:只使用必要的属性,避免过度配置 6. **一致性**:在整个项目中保持一致的DPML结构风格 7. **命名空间明确性**:使用命名空间时,确保左侧表示"做什么"(功能),右侧表示"怎么做"(实现) +8. **属性合规性**:只使用已正式定义的属性,遵循属性规范中的类型和值约束 ## 📌 总结 diff --git a/protocol/practice/memory-best-practice.md b/protocol/practice/memory-best-practice.md deleted file mode 100644 index c95fecb..0000000 --- a/protocol/practice/memory-best-practice.md +++ /dev/null @@ -1,132 +0,0 @@ -# DPML记忆模式提示词框架最佳实践 - -> **TL;DR:** 本文档提供DPML记忆模式提示词框架的最佳实践指南,包括记忆类型选择、操作建议和具体示例。 - -## 💡 最佳实践 - -### 记忆类型选择 - -协议实现可以根据需求采用不同的记忆类型分类方法,以下是基于认知心理学的常见分类: - -1. **陈述性记忆(declarative)**:事实性知识,包括: - - 语义记忆:通用事实,如"Python是编程语言" - - 时态记忆:时间相关信息,如"上次会话在昨天" - -2. **程序性记忆(procedural)**:过程和技能知识,如: - - 操作步骤:如"解决环境配置问题的方法" - - 行动模式:如"用户代码风格偏好" - -3. **情景记忆(episodic)**:特定经历和场景,如: - - 交互记录:如"用户之前遇到的报错" - - 场景重建:如"项目开发历程" - -不同类型记忆的选择建议: -- 存储事实性信息时,考虑使用陈述性记忆方式 -- 存储方法和步骤时,考虑使用程序性记忆方式 -- 存储具体交互经历时,考虑使用情景记忆方式 - -### 记忆操作使用建议 - -- **evaluate最佳实践**: - - 明确设定评估标准 - - 综合考虑信息的稀有性、实用性和时效性 - - 避免过度记忆导致的信息冗余 - -- **store最佳实践**: - - 为记忆提供足够的上下文 - - 建立适当的记忆关联 - - 设置合理的过期策略 - -- **recall最佳实践**: - - 优先使用精确查询 - - 指定合理的置信度阈值 - - 处理记忆缺失的回退策略 - -## 📋 使用示例 - -### 基础使用示例 - -```xml - - - 用户使用MacOS系统 - - - - - - - 用户连续三次使用了相同的代码风格(缩进2空格、驼峰命名), - 这是重要的个人偏好信息,应记住以提供一致的代码建议。 - 评分:实用性=8,稳定性=9,总分8.5 > 阈值7.5 - - - - - { - "indent": "2spaces", - "naming": "camelCase", - "brackets": "sameLine" - } - - -``` - -### 高级使用示例 - -```xml - - - - - - 分析用户遇到的依赖安装错误: - - 1. 问题特点: - - 特定版本冲突问题 - - 解决方法非官方文档所列 - - 多次在社区中被报告 - - 2. 记忆价值: - - 解决方案不易找到 - - 可能重复出现 - - 节省未来排查时间 - - 记忆价值评分:9/10,超过阈值 - 决策:应当记忆此解决方案 - - - - - - 问题:TensorFlow 2.4安装与CUDA 11.2版本冲突 - 解决方案:使用兼容性补丁并降级CUDA驱动 - - - - # 存储流程 - - ```mermaid - flowchart TD - A[接收内容] --> B[验证格式] - B --> C[分类标记] - C --> D[构建索引] - D --> E[写入持久存储] - ``` - - - - 1. 解决方案记忆优先级设为高 - 2. 建立与相关技术的关联索引 - 3. 保存完整的上下文信息 - - - - - - @memory://solutions/tensorflow?confidence=0.7 - - -``` - -> **注意**:memory协议与thought(评估)、execution(存储)、resource(检索)协议紧密结合,形成完整的记忆系统。 \ No newline at end of file diff --git a/protocol/base/execution.protocol.md b/protocol/tag/execution.tag.md similarity index 100% rename from protocol/base/execution.protocol.md rename to protocol/tag/execution.tag.md diff --git a/protocol/tag/memory.tag.md b/protocol/tag/memory.tag.md new file mode 100644 index 0000000..4e80813 --- /dev/null +++ b/protocol/tag/memory.tag.md @@ -0,0 +1,87 @@ +# DPML记忆模式提示词框架 + +> **TL;DR:** DPML记忆模式提示词框架定义了AI系统的记忆管理提示词模板,支持先验知识库定义与运行时记忆管理,包含知识库(knowledge)、评估(evaluate)、存储(store)和回忆(recall)四个核心组件,实现完整的记忆能力。 + +### 目的与功能 + +DPML记忆模式提示词框架为AI系统提供完整的记忆能力提示词模板,主要功能包括: +- 定义角色的知识库和初始认知结构 +- 提供运行时记忆的评估、存储和检索的标准化提示词机制 +- 实现跨会话的信息持久化提示词模板 +- 支持复杂的记忆关联和检索模式的提示词构建 + +## 🔍 基本信息 + +**框架名称:** `` (DPML记忆模式提示词框架) +**版本:** 1.1.0 +**类别:** 记忆类提示词 +**状态:** 草稿 + +## 📝 语法定义 + +```ebnf +(* EBNF形式化定义 *) +memory_element ::= '' memory_content '' +attributes ::= (' ' attribute)+ | '' +attribute ::= name '="' value '"' +name ::= [a-zA-Z][a-zA-Z0-9_-]* +value ::= [^"]* + +memory_content ::= (text | knowledge_element | evaluate_element | store_element | recall_element)+ + +knowledge_element ::= '' knowledge_content '' +evaluate_element ::= '' thought_content '' +store_element ::= '' (text | execution_element)* '' +recall_element ::= '' thought_content '' + +knowledge_content ::= (* 任何文本内容,通常使用Markdown格式 *) +thought_content ::= (* 符合thought协议的内容 *) +execution_element ::= (* 符合execution协议的元素 *) + +text ::= (* 任何文本内容 *) +``` + +## 🧩 语义说明 + +memory标签表示AI系统的记忆管理单元,定义了记忆的结构和操作方式。它由先验知识库定义和运行时记忆管理两大部分组成: + +### 记忆结构 + +1. **``**: 定义角色的先验知识库 + - 包含角色固有的、初始化的知识体系 + - 这些知识在角色创建时就已存在,不是运行时获取的 + - 构成角色认知和专业领域的基础框架 + - **重要特性**:knowledge标签内的所有内容和资源引用(无论是@file://、@http://还是其他协议)都应在角色初始化时预加载,而不是按需加载 + +### 记忆操作 + +memory标签包含三个核心子标签,分别对应记忆的三个操作阶段: + +2. **``**:评估信息是否值得记忆 + - 通过thought协议实现评估过程 + - 判断信息的价值、相关性和可信度 + - 决定是否将信息存入记忆系统 + +3. **``**:将信息存入记忆系统 + - 通过execution协议实现存储操作 + - 定义存储过程、规则和约束 + - 管理记忆的添加、更新和组织 + +4. **``**:从记忆系统检索并应用信息 + - 通过thought协议实现回忆过程 + - 判断何时需要检索特定记忆 + - 规划如何检索和应用记忆内容 + - 可以使用多种实现方式,包括但不限于资源引用 + - **注意**:与knowledge不同,recall标签中的资源引用默认是按需加载的 + +### 组件关系 + +四个核心组件之间具有明确的逻辑关系: +- knowledge是静态基础,构成角色的知识背景 +- evaluate-store-recall构成动态记忆的完整循环 +- evaluate决定什么值得记忆 +- store定义如何保存记忆 +- recall描述何时以及如何使用记忆 + +记忆系统的运行遵循"评估-存储-回忆"的循环模式,在knowledge定义的知识框架上不断丰富和发展角色的认知能力。 + diff --git a/protocol/base/resource.protocol.md b/protocol/tag/resource.tag.md similarity index 100% rename from protocol/base/resource.protocol.md rename to protocol/tag/resource.tag.md diff --git a/protocol/base/role.protocol.md b/protocol/tag/role.tag.md similarity index 100% rename from protocol/base/role.protocol.md rename to protocol/tag/role.tag.md diff --git a/protocol/base/thought.protocol.md b/protocol/tag/thought.tag.md similarity index 100% rename from protocol/base/thought.protocol.md rename to protocol/tag/thought.tag.md