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