dpml-prompt
Version:
DPML-powered AI prompt framework - Revolutionary AI-First CLI system based on Deepractice Prompt Markup Language. Build sophisticated AI agents with structured prompts, memory systems, and execution frameworks.
285 lines (241 loc) • 6.96 kB
Markdown
//tool-name
简洁明确的工具功能描述,一句话说明工具的核心能力
</identity>
```
```xml
<purpose>
⚠️ **AI重要提醒**: 调用此工具前必须完整阅读本说明书,理解工具功能边界、参数要求和使用限制。禁止在不了解工具功能的情况下盲目调用。
明确描述工具要解决的具体问题和适用场景
- 🎯 **解决什么痛点**:具体描述用户痛点
- 🚀 **带来什么价值**:明确量化收益
- 🌟 **独特优势**:相比其他解决方案的优势
- ✅ **适用场景**:详细列出适用情况
- ❌ **不适用场景**:明确使用边界
</purpose>
```
```xml
<usage>
- 在什么情况下应该使用这个工具
- 如何判断是否需要使用
1. **准备阶段**:需要提前准备什么
2. **执行阶段**:具体操作流程
3. **验证阶段**:如何验证结果
- 🎯 **效率提升技巧**
- ⚠️ **常见陷阱避免**
- 🔧 **故障排除指南**
- 安全性考虑
- 性能优化建议
- 兼容性要求
</usage>
```
```xml
<parameter>
| 参数名 | 类型 | 描述 | 示例 |
|--------|------|------|------|
| input | string | 输入文本 | "Hello World" |
| 参数名 | 类型 | 默认值 | 描述 |
|--------|------|--------|------|
| format | string | "json" | 输出格式 |
- **长度限制**:input 不超过 10000 字符
- **格式要求**:必须是有效的 UTF-8 编码
- **安全限制**:不允许包含可执行代码
```json
{
"input": "需要处理的文本内容",
"options": {
"format": "json",
"encoding": "utf-8"
}
}
```
</parameter>
```
```xml
<outcome>
```json
{
"success": true,
"data": {
"result": "处理结果",
"metadata": {
"processingTime": 150,
"timestamp": "2024-01-01T12:00:00Z"
}
}
}
```
```json
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "输入参数验证失败",
"details": "具体错误详情"
}
}
```
- **如何判断执行成功**:检查 success 字段
- **如何获取核心数据**:data.result 包含主要结果
- **如何处理错误**:根据 error.code 分类处理
- **如何优化下次使用**:根据 metadata 调优参数
- 成功时的下一步操作
- 失败时的重试策略
- 结果的进一步处理方式
</outcome>
```
- ✅ 工具名称符合@tool://格式
- ✅ 简介简洁明确一句话概括
- ✅ 体现工具核心能力
- ✅ 便于快速识别和理解
- ✅ 问题定义清晰具体
- ✅ 价值主张明确量化
- ✅ 应用边界明确划分
- ✅ 用户痛点精准描述
- ✅ 使用时机判断明确
- ✅ 操作步骤完整可执行
- ✅ 最佳实践实用有效
- ✅ 注意事项全面详细
- ✅ 参数分类准确(必需/可选)
- ✅ 类型定义精确
- ✅ 约束条件明确
- ✅ 示例完整有效
- ✅ 返回格式标准化
- ✅ 错误处理完整
- ✅ 解读指南清晰
- ✅ 后续动作明确
```javascript
// Purpose中的核心问题 → getMetadata()中的description
getMetadata() {
return {
name: 'text-processor',
description: 'Purpose中定义的核心问题和价值主张',
category: 'Purpose中的应用领域'
};
}
```
```javascript
// Parameter中的参数定义 → getSchema()中的JSON Schema
getSchema() {
return {
type: 'object',
properties: {
// Parameter表格中的每个参数
input: {
type: 'string',
description: 'Parameter中的参数描述'
}
},
required: ['input'] // Parameter中的必需参数
};
}
```
```javascript
// Usage中的最佳实践 → validate()中的验证逻辑
validate(params) {
// Usage中提到的参数约束检查
// Usage中的安全性考虑
}
// Usage中的操作步骤 → execute()中的执行流程
async execute(params) {
// 1. 准备阶段的代码实现
// 2. 执行阶段的核心逻辑
// 3. 验证阶段的结果检查
}
```
```javascript
// Outcome中的返回格式 → execute()的返回值结构
return {
success: true, // Outcome中定义的成功标识
data: result, // Outcome中定义的数据格式
metadata: { // Outcome中定义的元数据
executionTime: Date.now() - startTime
}
};
```
```mermaid
flowchart TD
A[用户需求] --> B[定义Identity]
B --> C[编写Purpose]
C --> D[设计Usage]
D --> E[定义Parameter]
E --> F[规划Outcome]
F --> G[生成工具标签]
G --> H[映射到代码接口]
H --> I[实现具体逻辑]
I --> J[测试验证]
J --> K[完整工具交付]
```
1. **标签先行**:先完成工具标签定义,再编写代码
2. **映射验证**:确保代码实现与标签定义一致
3. **用户测试**:基于标签进行用户验收测试
4. **文档同步**:保持标签和代码的同步更新
- 语言通俗易懂,避免技术术语
- 结构清晰,信息层次分明
- 示例丰富,便于理解和使用
- 参数定义精确,类型明确
- 约束条件完整,边界清晰
- 返回格式标准,错误处理完善
- 步骤详细具体,可直接执行
- 最佳实践实用,经过验证
- 故障排除全面,覆盖常见问题
</knowledge>
<knowledge>
DPML
```xml
<tool>
<identity>工具身份 - 工具名称和简介</identity>
<purpose>用途说明 - 明确工具解决什么问题</purpose>
<usage>使用方法 - 详细说明如何正确使用</usage>
<parameter>参数定义 - 明确工具需要什么输入</parameter>
<outcome>预期结果 - 描述工具执行后的预期输出</outcome>
</tool>
```
- **工具定义专注于使用指导**:不包含具体代码实现
- **代码执行通过MCP工具系统**:`promptx_tool`负责具体执行
- **实现完整闭环**:指导-执行-验证的完整流程
```xml
<identity>
@tool: