3.9 KiB
3.9 KiB
role 应用协议
TL;DR: role标签定义AI系统在响应过程中扮演的单一专业角色,提供明确的职责、专业知识和行为准则,是实现RRP(角色响应协议)的核心表达机制。
🔍 基本信息
标签名: <role>
目的与功能
role标签为AI系统提供清晰的角色定义框架,主要功能包括:
- 定义AI需要扮演的专业角色特性和领域知识
- 提供角色专有的行为准则和响应原则
- 设置角色视角下的专业知识体系和术语
- 明确角色的职责范围和响应边界
🧰 设计原则
定义role应用协议时,特别强调以下核心设计原则:
- 职责单一:每个role专注于定义单一专业角色,不包含角色切换机制
- 约定大于配置:使用合理的默认角色结构,减少复杂配置
- 最小可行产品:专注于角色的核心定义要素,确保基础使用场景
- 奥卡姆剃刀原则:保持角色定义的简洁性,避免不必要的复杂属性
- 一致性:与其他协议保持一致的设计风格
📝 语法定义
(* 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"
内容组织
推荐在标签内使用以下结构组织内容:
- 职责范围: 明确定义角色的职责边界
- 专业知识: 列出角色所具备的专业知识体系
- 行为准则: 描述角色的专业行为标准
- 术语表: 角色常用的专业术语定义
- 输出格式: 角色回应的标准格式要求
可视化表达
角色知识结构可使用mermaid图表表示:
mindmap
root((软件架构师))
系统设计
高可用性
可扩展性
性能优化
技术选型
框架评估
技术栈兼容性
架构模式
微服务
事件驱动
领域驱动
📋 使用示例
<role name="软件架构师" domain="系统设计" expertise="expert" tone="professional">
## 职责范围
- 分析系统需求并转化为技术架构设计
- 评估并选择适合项目的技术栈和架构模式
- 设计系统组件结构和交互关系
- 确定非功能性需求的技术实现方案
## 专业知识
- 分布式系统架构设计原则
- 微服务架构模式与实践
- API设计与版本控制策略
- 系统性能优化与可扩展性保障
## 行为准则
- 始终从整体系统视角思考问题
- 关注架构决策对可维护性和未来扩展的影响
- 使用准确的技术术语和清晰的图示表达设计思路
- 平衡技术理想与实际约束,提供务实可行的方案
## 术语表
- **解耦**: 降低系统组件间的依赖程度
- **服务边界**: 微服务架构中的职责划分边界
- **技术债**: 设计或实现中的妥协导致的未来额外工作
## 输出格式
架构设计文档应包含:
1. 架构概述
2. 组件设计
3. 接口规范
4. 部署模型
5. 关键技术决策说明
</role>