Files
PromptX/protocol/application/task.protocol.md
2025-05-15 11:45:58 +08:00

6.0 KiB
Raw Blame History

task 应用协议

TL;DR: task标签用于定义可重用的任务模板支持任务的静态描述和动态执行是实现任务模板化和标准化执行的核心机制。

🔍 基本信息

标签名: <task>

目的与功能

task标签提供了任务模板化的框架主要功能包括

  • 定义标准化的任务结构和执行流程
  • 支持任务的参数化配置和动态绑定
  • 提供任务执行的验证和约束条件
  • 实现任务模板的复用和组合
  • 容器化封装任务执行环境和上下文

🧰 设计原则

定义task应用协议时特别强调以下核心设计原则

  1. 职责单一每个task专注于定义单一完整的任务流程
  2. 约定大于配置:使用合理的默认任务结构,减少不必要的配置
  3. 最小可行产品:专注于任务定义的核心要素,确保基础执行场景
  4. 奥卡姆剃刀原则:保持任务定义的简洁性,避免过度复杂的结构
  5. 一致性:与其他协议保持一致的设计风格

📝 语法定义

(* EBNF形式化定义 *)
task_element ::= '<task' attributes? '>' content '</task>'
attributes ::= (' ' attribute)+ | ''
attribute ::= name '="' value '"'
name ::= [a-zA-Z][a-zA-Z0-9_-]*
value ::= [^"]*
content ::= markdown_content
markdown_content ::= (* 任何有效的Markdown文本描述任务结构 *)

🧩 语义说明

task标签用于定义可重用的任务模板。它提供了任务的结构化描述包括目标定义、执行环境和成功标准使任务可以被标准化执行和重复使用。通过与role标签的配合可以实现特定角色执行特定任务的精确控制。

💡 最佳实践

核心设计原则

在设计task标签时建议遵循以下核心原则

  1. 职责单一每个task专注于定义单一完整的任务流程
  2. 约定大于配置:使用合理的默认任务结构,减少不必要的配置
  3. 最小可行产品:专注于任务定义的核心要素,确保基础执行场景
  4. 奥卡姆剃刀原则:保持任务定义的简洁性,避免过度复杂的结构
  5. 一致性:与其他协议保持一致的设计风格

推荐属性

可以考虑使用以下属性来增强task标签的语义

  • id: 任务唯一标识,如id="code-review-task"
  • type: 任务类型,如type="analysis"
  • priority: 任务优先级,如priority="high"
  • timeout: 执行超时时间,如timeout="30m"
  • requires: 依赖的角色或资源,如requires="architect"

OES框架内容组织

强烈推荐使用OES框架组织任务内容这种结构借鉴了容器化思想使任务更加清晰和可执行

  1. 目标(Objective)

    • 明确定义任务的具体预期结果
    • 设定任务边界和约束
    • 说明任务的价值和意义
  2. 环境(Environment)

    • 背景信息:任务相关的上下文和背景
    • 资源需求:执行任务所需的数据、工具和参考资料
    • 约束条件:技术、业务和资源限制
    • 执行规范:风格指南、质量标准和工作流程
    • 上下文关联:与其他任务的关系和依赖
  3. 成功标准(Success Criteria)

    • 基础达标:最低要求和基本功能
    • 预期品质:符合项目整体质量标准的指标
    • 验证方法:如何验证任务是否成功完成
    • 结果格式:交付物的具体格式和内容要求

任务网络构建

对于复杂项目,推荐构建任务网络,通过以下方式连接多个任务:

  1. 垂直连接:上级任务的成功标准成为下级任务的目标
  2. 水平连接:前序任务的产物成为后续任务的环境组成部分

可视化表达

任务执行流程可使用mermaid图表表示

graph TD
    A[输入验证] --> B{参数检查}
    B -->|通过| C[执行准备]
    B -->|失败| H[错误处理]
    C --> D[主要步骤]
    D --> E[结果验证]
    E -->|成功| F[输出结果]
    E -->|失败| G[回滚处理]
    H --> I[任务终止]
    G --> I

📋 使用示例

<task id="code-review" type="analysis" requires="senior-developer" timeout="30m">
  ## 目标(Objective)
  对提交的代码变更进行全面的代码审查,确保代码质量和一致性,并提供具体改进建议。
  目标范围包括代码风格、性能、安全性和业务逻辑正确性评估。
  
  ## 环境(Environment)
  ### 背景信息
  - 项目使用Git流程管理代码
  - 团队遵循Google代码风格指南
  - 代码审查是合并请求流程的必要环节
  
  ### 资源需求
  - **diff_files**: 需要审查的文件列表
  - **base_branch**: 基准分支名称
  - **review_focus**: 重点关注的方面
  
  ### 约束条件
  - 审查必须在30分钟内完成
  - 必须使用团队标准的代码审查清单
  - 严重安全问题需立即上报
  
  ### 执行规范
  1. **预检查**
     - 验证文件可访问性
     - 检查diff格式正确性
     - 确认审查权限
  
  2. **静态分析**
     - 代码风格检查
     - 潜在问题扫描
     - 复杂度评估
  
  3. **逻辑审查**
     - 业务逻辑正确性
     - 异常处理完整性
     - 性能影响评估
  
  4. **安全审查**
     - 安全漏洞检查
     - 敏感信息扫描
     - 权限控制审查
  
  ## 成功标准(Success Criteria)
  ### 基础达标
  - 所有必要的检查项已完成
  - 没有严重或阻塞性问题
  - 代码符合团队编码标准
  
  ### 预期品质
  - 提供至少3个有价值的改进建议
  - 验证测试覆盖率达到团队标准
  - 确认新代码没有引入性能退化
  
  ### 结果格式
  ```json
  {
    "status": "approved|rejected|needs_revision",
    "summary": "审查总结",
    "issues": [
      {
        "type": "security|performance|style",
        "severity": "high|medium|low",
        "description": "问题描述",
        "suggestion": "改进建议"
      }
    ],
    "metrics": {
      "files_reviewed": 10,
      "issues_found": 5,
      "review_time": "25m"
    }
  }
```