更新DPML协议文档,新增属性约束部分,详细阐述属性的通用性、定义原则和规范管理,确保提示词的一致性和互操作性。同时,删除不再使用的执行、记忆、资源、角色和思考协议文档,优化代码库结构以提高可维护性。
This commit is contained in:
@ -83,6 +83,30 @@ markdown_text ::= (* 任何有效的Markdown文本 *)
|
||||
| 内容表达 | 使用Markdown表达的实际提示文本 | `# 步骤\n1. 首先...` |
|
||||
| 组合提示 | 多个提示单元组合形成完整提示 | `<thinking>...</thinking><executing>...</executing>` |
|
||||
|
||||
### 属性约束
|
||||
|
||||
DPML对属性采用以下约束和规范:
|
||||
|
||||
1. **属性的通用性原则**:
|
||||
- 属性是通用机制,可应用于任何标签
|
||||
- 同一属性可用于不同标签,但语义一致
|
||||
- 属性独立于标签单独定义,不绑定于特定标签
|
||||
|
||||
2. **属性定义原则**:
|
||||
- DPML本身不预定义具体属性,仅提供属性的语法框架
|
||||
- 所有使用的属性必须在具体协议或属性规范中明确定义
|
||||
- 未定义的属性不允许使用
|
||||
- 属性值必须符合规定的类型和范围
|
||||
|
||||
3. **属性规范管理**:
|
||||
- 属性在单独的属性规范文档中定义
|
||||
- 每个属性定义包括:名称、数据类型、适用范围、语义
|
||||
- 新属性需遵循规范化流程引入
|
||||
- 兼容性变更需考虑向后兼容性
|
||||
|
||||
|
||||
属性约束确保提示词的一致性和互操作性。在使用DPML开发提示词时,开发者应遵循已定义的属性规范,不得创建私有或未文档化的属性。
|
||||
|
||||
### 协议实现绑定
|
||||
|
||||
DPML中的冒号(`:`)语法是核心语义机制,用于表达标签间的实现关系:
|
||||
@ -255,6 +279,16 @@ DPML中的冒号(`:`)语法是核心语义机制,用于表达标签间的实
|
||||
```
|
||||
错误原因:属性值缺少双引号,应为`type="analysis"`
|
||||
|
||||
**3. 使用未定义属性**
|
||||
```
|
||||
<prompt>
|
||||
<thinking color="blue" importance="9">
|
||||
思考内容...
|
||||
</thinking>
|
||||
</prompt>
|
||||
```
|
||||
错误原因:使用了未在属性规范中定义的`color`和`importance`属性
|
||||
|
||||
## 💡 最佳实践
|
||||
|
||||
1. **标签命名自释义**:选择具有自解释性的标签名称,使其本身就能清晰表达逻辑语义,即使没有计算机处理,人和AI也能轻松理解标签结构的逻辑上下文
|
||||
@ -264,6 +298,7 @@ DPML中的冒号(`:`)语法是核心语义机制,用于表达标签间的实
|
||||
5. **属性合理性**:只使用必要的属性,避免过度配置
|
||||
6. **一致性**:在整个项目中保持一致的DPML结构风格
|
||||
7. **命名空间明确性**:使用命名空间时,确保左侧表示"做什么"(功能),右侧表示"怎么做"(实现)
|
||||
8. **属性合规性**:只使用已正式定义的属性,遵循属性规范中的类型和值约束
|
||||
|
||||
## 📌 总结
|
||||
|
||||
|
||||
Reference in New Issue
Block a user