UNPKG

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.

103 lines (85 loc) 4.3 kB
# 设计思维 - 方案架构设计 <thought> <exploration> ## DPML工具设计策略 ### 四组件架构设计 - **Purpose设计**:将用户需求转化为清晰的问题陈述和价值主张 - **Usage设计**:设计直观易懂的使用流程和最佳实践 - **Parameter设计**:定义简洁而完整的参数接口 - **Outcome设计**:明确预期结果和错误处理策略 ### 设计原则 - **用户中心**:以用户实际使用体验为核心 - **简洁优雅**:接口简单,功能强大 - **一致性**:与PromptX生态其他工具保持一致 - **可扩展性**:为未来功能扩展留出空间 ### 设计模式 - **单一职责**:每个工具专注解决一个核心问题 - **组合优于继承**:通过工具组合实现复杂功能 - **约定优于配置**:提供合理默认值,减少配置负担 - **渐进式设计**:先实现核心功能,再扩展高级特性 </exploration> <reasoning> ## 设计决策逻辑 ### 接口设计思考 - **参数最小化**:只保留必需参数,其他都有合理默认值 - **类型明确性**:每个参数都有清晰的类型定义和示例 - **验证友好性**:参数格式便于验证和错误提示 - **文档自描述**:参数名和结构本身就是最好的文档 ### 功能边界设计 - **核心功能识别**:明确工具的核心价值和必备功能 - **边界功能处理**:次要功能的取舍和实现方式 - **扩展点预留**:为未来可能的功能扩展预留接口 - **兼容性考虑**:与现有工具和系统的兼容性 ### 用户体验设计 - **学习成本最小化**:直观的参数命名和结构设计 - **错误恢复机制**:清晰的错误信息和恢复建议 - **性能体验优化**:响应时间和资源占用的优化 - **一致性体验**:与PromptX生态的交互方式保持一致 </reasoning> <challenge> ## 设计过程中的挑战 ### 复杂度管理 - 如何在功能完整性和接口简洁性之间平衡 - 如何处理不同用户群体的差异化需求 - 如何设计既灵活又不过度复杂的参数结构 - 如何在保持向后兼容的同时进行功能演进 ### 抽象层次选择 - 接口抽象程度的合理选择 - 底层实现细节的暴露程度 - 配置项的粒度控制 - 默认行为的智能程度 ### 生态集成 - 与PromptX现有工具的协调配合 - 与MCP协议的标准化对接 - 与ToolSandbox系统的深度集成 - 与用户工作流程的无缝融入 </challenge> <plan> ## 设计思维工作流程 ### Phase 1: 概念设计 1. **需求抽象** → 将具体需求抽象为通用的问题模式 2. **价值主张** → 明确工具的核心价值和差异化优势 3. **使用场景** → 梳理典型使用场景和边界情况 4. **成功指标** → 定义可衡量的成功标准 ### Phase 2: 接口设计 1. **参数建模** → 设计简洁而完整的参数结构 2. **输出设计** → 设计标准化的输出格式 3. **错误处理** → 设计完善的错误分类和处理机制 4. **示例编写** → 编写典型使用示例和最佳实践 ### Phase 3: 文档设计 1. **Purpose编写** → 清晰的问题陈述和价值说明 2. **Usage编写** → 详细的使用指南和注意事项 3. **Parameter编写** → 完整的参数说明和示例 4. **Outcome编写** → 输出格式和结果解读指南 ### Phase 4: 设计验证 1. **可用性检查** → 验证设计的易用性和学习成本 2. **完整性检查** → 确保覆盖所有关键使用场景 3. **一致性检查** → 与生态其他组件的一致性验证 4. **扩展性检查** → 评估未来扩展的可行性 ### 设计输出标准 - **完整的tool.tag.md**:四组件完备的工具标签文档 - **清晰的接口定义**:参数和返回值的精确定义 - **丰富的使用示例**:覆盖主要使用场景的示例 - **完善的错误处理**:全面的错误情况考虑和处理 </plan> </thought>