更新DPML协议文档,增加设计思想部分,详细阐述自然语言驱动、释义即实现、语义透明性等核心理念。同时,调整协议实现绑定的描述,明确功能与实现的关系,提升文档的清晰度和可读性。

This commit is contained in:
sean
2025-05-16 23:51:19 +08:00
parent 6b9fdd286f
commit db5af7486b

View File

@ -16,6 +16,22 @@ DPML适用于所有需要结构化表达提示词的场景包括但不限于
- 自动化工作流的提示词定义
- 知识管理的提示词组织
### 设计思想
DPML的核心设计理念基于以下关键思想:
1. **自然语言驱动**: DPML认为提示词本质上是自然语言的结构化表达而非传统编程语言。标记结构仅用于提供语义边界内容仍以自然语言为主。
2. **释义即实现**: DPML中对提示词的语义释义本身就构成了实现。当AI系统理解一个提示词的语义后无需额外的转换层该理解过程即为执行过程。
3. **语义透明性**: 标签和属性名称具有自解释性使人类和AI都能直观理解结构的意图和功能。
4. **组合复用**: 通过协议实现绑定(`A:B`语法),简单协议可组合构建复杂功能,实现"积木式"提示词工程。
5. **一致性理解**: 同一DPML结构应在不同AI系统中产生一致理解和行为确保提示词的可移植性和稳定性。
这些设计思想指导DPML的所有协议设计使提示词既具备结构化的机器可解析性又保持自然语言的表达力和灵活性。
### 相关协议
- **XML**: DPML的基本标签结构借鉴了XML
@ -67,20 +83,28 @@ markdown_text ::= (* 任何有效的Markdown文本 *)
| 内容表达 | 使用Markdown表达的实际提示文本 | `# 步骤\n1. 首先...` |
| 组合提示 | 多个提示单元组合形成完整提示 | `<thinking>...</thinking><executing>...</executing>` |
### 命名空间绑定
### 协议实现绑定
命名空间是DPML的核心语义机制,用于表达标签间的语义继承和协议复用
DPML中的冒号(`:`)语法是核心语义机制,用于表达标签间的实现关系
1. **协议实现绑定**:通过命名空间前缀表示一个标签通过特定协议实现
1. **基本实现绑定**:通过冒号表示一个功能通过特定协议实现
```xml
<store:execution>
<!-- 表示store标签通过execution协议实现 -->
<!-- 表示store功能通过execution协议实现 -->
</store:execution>
```
在DPML中`A:B`表示"A通过B实现",读作"A implemented with B"。冒号左侧表示"做什么"(功能),右侧表示"怎么做"(实现方式)。
2. **多协议组合**:一个标签可以通过不同命名空间的子标签组合多个协议
2. **实现继承行为**:当使用`<A:B>`形式时A标签继承B协议的全部结构规则和语义特征。例如
```xml
<store:execution>
<process>...</process> <!-- 来自execution协议的子标签 -->
<rule>...</rule> <!-- 来自execution协议的子标签 -->
</store:execution>
```
3. **多协议组合**:不同功能可以通过不同协议实现,共同构建复杂系统
```xml
<memory>
<store:execution>存储操作...</store:execution>
@ -88,17 +112,18 @@ markdown_text ::= (* 任何有效的Markdown文本 *)
</memory>
```
3. **协议继承关系**:命名空间前缀表示标签继承了指定协议的所有结构和规则
```xml
<!-- memory协议中的store子标签通过execution协议实现 -->
<memory>
<store:execution>
<process>...</process>
<rule>...</rule>
</store:execution>
</memory>
4. **实现层次结构**
```mermaid
flowchart LR
A["memory"] --> B["store:execution"]
A --> C["recall:resource"]
B --> D["process"]
B --> E["rule"]
C --> F["path引用"]
```
每个实现绑定关系都明确表达了"这个功能使用那个协议来实现",确保提示词组件的语义清晰性和交互一致性。
### 解释规则
1. 标签名决定提示单元的主要语义类型(思考、执行等)