From db5af7486b0dde9e86eed10dff5d3ed312857363 Mon Sep 17 00:00:00 2001 From: sean Date: Fri, 16 May 2025 23:51:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0DPML=E5=8D=8F=E8=AE=AE?= =?UTF-8?q?=E6=96=87=E6=A1=A3=EF=BC=8C=E5=A2=9E=E5=8A=A0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E6=80=9D=E6=83=B3=E9=83=A8=E5=88=86=EF=BC=8C=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E9=98=90=E8=BF=B0=E8=87=AA=E7=84=B6=E8=AF=AD=E8=A8=80=E9=A9=B1?= =?UTF-8?q?=E5=8A=A8=E3=80=81=E9=87=8A=E4=B9=89=E5=8D=B3=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E3=80=81=E8=AF=AD=E4=B9=89=E9=80=8F=E6=98=8E=E6=80=A7=E7=AD=89?= =?UTF-8?q?=E6=A0=B8=E5=BF=83=E7=90=86=E5=BF=B5=E3=80=82=E5=90=8C=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E8=B0=83=E6=95=B4=E5=8D=8F=E8=AE=AE=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E7=9A=84=E6=8F=8F=E8=BF=B0=EF=BC=8C=E6=98=8E?= =?UTF-8?q?=E7=A1=AE=E5=8A=9F=E8=83=BD=E4=B8=8E=E5=AE=9E=E7=8E=B0=E7=9A=84?= =?UTF-8?q?=E5=85=B3=E7=B3=BB=EF=BC=8C=E6=8F=90=E5=8D=87=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E7=9A=84=E6=B8=85=E6=99=B0=E5=BA=A6=E5=92=8C=E5=8F=AF=E8=AF=BB?= =?UTF-8?q?=E6=80=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocol/dpml.protocol.md | 53 ++++++++++++++++++++++++++++----------- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/protocol/dpml.protocol.md b/protocol/dpml.protocol.md index 36e48a5..66a2420 100644 --- a/protocol/dpml.protocol.md +++ b/protocol/dpml.protocol.md @@ -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. 首先...` | | 组合提示 | 多个提示单元组合形成完整提示 | `......` | -### 命名空间绑定 +### 协议实现绑定 -命名空间是DPML的核心语义机制,用于表达标签间的语义继承和协议复用: +DPML中的冒号(`:`)语法是核心语义机制,用于表达标签间的实现关系: -1. **协议实现绑定**:通过命名空间前缀表示一个标签通过特定协议实现 +1. **基本实现绑定**:通过冒号表示一个功能通过特定协议实现 ```xml - + ``` 在DPML中,`A:B`表示"A通过B实现",读作"A implemented with B"。冒号左侧表示"做什么"(功能),右侧表示"怎么做"(实现方式)。 -2. **多协议组合**:一个标签可以通过不同命名空间的子标签组合多个协议 +2. **实现继承行为**:当使用``形式时,A标签继承B协议的全部结构规则和语义特征。例如: + ```xml + + ... + ... + + ``` + +3. **多协议组合**:不同功能可以通过不同协议实现,共同构建复杂系统 ```xml 存储操作... @@ -88,17 +112,18 @@ markdown_text ::= (* 任何有效的Markdown文本 *) ``` -3. **协议继承关系**:命名空间前缀表示标签继承了指定协议的所有结构和规则 - ```xml - - - - ... - ... - - +4. **实现层次结构**: + ```mermaid + flowchart LR + A["memory"] --> B["store:execution"] + A --> C["recall:resource"] + B --> D["process"] + B --> E["rule"] + C --> F["path引用"] ``` +每个实现绑定关系都明确表达了"这个功能使用那个协议来实现",确保提示词组件的语义清晰性和交互一致性。 + ### 解释规则 1. 标签名决定提示单元的主要语义类型(思考、执行等)