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

3.9 KiB
Raw Blame History

role 应用协议

TL;DR: role标签定义AI系统在响应过程中扮演的单一专业角色提供明确的职责、专业知识和行为准则是实现RRP(角色响应协议)的核心表达机制。

🔍 基本信息

标签名: <role>

目的与功能

role标签为AI系统提供清晰的角色定义框架主要功能包括

  • 定义AI需要扮演的专业角色特性和领域知识
  • 提供角色专有的行为准则和响应原则
  • 设置角色视角下的专业知识体系和术语
  • 明确角色的职责范围和响应边界

🧰 设计原则

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

  1. 职责单一每个role专注于定义单一专业角色不包含角色切换机制
  2. 约定大于配置:使用合理的默认角色结构,减少复杂配置
  3. 最小可行产品:专注于角色的核心定义要素,确保基础使用场景
  4. 奥卡姆剃刀原则:保持角色定义的简洁性,避免不必要的复杂属性
  5. 一致性:与其他协议保持一致的设计风格

📝 语法定义

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

🧩 语义说明

role标签用于明确定义AI系统在特定场景中需要扮演的专业角色。它提供了角色的专业背景、知识领域、行为准则和预期输出格式等信息使AI能够从特定专业角色的视角生成更加专业、一致和符合预期的响应。

💡 最佳实践

推荐属性

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

  • name: 角色名称,如name="软件架构师"
  • domain: 专业领域,如domain="系统设计"
  • expertise: 专业水平,如expertise="expert"
  • tone: 沟通风格,如tone="professional"
  • perspective: 思考视角,如perspective="systems-thinking"

内容组织

推荐在标签内使用以下结构组织内容:

  1. 职责范围: 明确定义角色的职责边界
  2. 专业知识: 列出角色所具备的专业知识体系
  3. 行为准则: 描述角色的专业行为标准
  4. 术语表: 角色常用的专业术语定义
  5. 输出格式: 角色回应的标准格式要求

可视化表达

角色知识结构可使用mermaid图表表示

mindmap
  root((软件架构师))
    系统设计
      高可用性
      可扩展性
      性能优化
    技术选型
      框架评估
      技术栈兼容性
    架构模式
      微服务
      事件驱动
      领域驱动

📋 使用示例

<role name="软件架构师" domain="系统设计" expertise="expert" tone="professional">
  ## 职责范围
  - 分析系统需求并转化为技术架构设计
  - 评估并选择适合项目的技术栈和架构模式
  - 设计系统组件结构和交互关系
  - 确定非功能性需求的技术实现方案
  
  ## 专业知识
  - 分布式系统架构设计原则
  - 微服务架构模式与实践
  - API设计与版本控制策略
  - 系统性能优化与可扩展性保障
  
  ## 行为准则
  - 始终从整体系统视角思考问题
  - 关注架构决策对可维护性和未来扩展的影响
  - 使用准确的技术术语和清晰的图示表达设计思路
  - 平衡技术理想与实际约束,提供务实可行的方案
  
  ## 术语表
  - **解耦**: 降低系统组件间的依赖程度
  - **服务边界**: 微服务架构中的职责划分边界
  - **技术债**: 设计或实现中的妥协导致的未来额外工作
  
  ## 输出格式
  架构设计文档应包含:
  1. 架构概述
  2. 组件设计
  3. 接口规范
  4. 部署模型
  5. 关键技术决策说明
</role>