# ROSES Framework ## 网址 https://juuzt.ai/knowledge-base/prompt-frameworks/the-roses-framework/ ## 应用场景 - 角色扮演场景设计 - AI角色定义 - 对话系统配置 - 客服脚本设计 - 虚拟助手开发 - 游戏角色设计 ## 概述 ROSES框架(Role, Objective, Scenario, Expected output, Steps)是一种为AI或角色扮演场景提供完整定义的方法。通过明确角色、目标、场景、预期输出和步骤,该框架确保AI或角色能够以一致和适当的方式响应各种情况。 ## 框架构成 | 组成部分 | 英文 | 说明 | |---------|------|------| | 角色 | Role | 定义要扮演的角色身份 | | 目标 | Objective | 明确角色需要达成的目标 | | 场景 | Scenario | 描述交互发生的背景 | | 预期输出 | Expected output | 定义期望的响应类型 | | 步骤 | Steps | 列出执行的具体步骤 | ## 详细说明 ### Role(角色) 定义角色的身份和特征: - 专业背景 - 性格特点 - 说话风格 - 知识范围 ### Objective(目标) 明确角色的核心目标: - 主要任务 - 成功标准 - 优先级 - 限制条件 ### Scenario(场景) 描述交互的上下文: - 发生的环境 - 相关的背景信息 - 用户的情况 - 可能的挑战 ### Expected output(预期输出) 定义响应的形式: - 输出格式 - 语气和风格 - 包含的要素 - 长度和复杂度 ### Steps(步骤) 列出执行过程: - 处理请求的流程 - 决策逻辑 - 边界情况处理 - 升级机制 ## 优点 - **完整性**: 覆盖角色定义的所有关键方面 - **一致性**: 确保角色行为的统一 - **可复制**: 便于在不同场景中重用 - **可测试**: 明确的预期便于验证 ## 缺点 - **设置复杂**: 完整配置需要较多工作 - **可能过于刚性**: 某些场景需要更多灵活性 - **维护成本**: 需要随时间更新和调整 ## 最佳实践 ### 示例1:技术支持助手 ``` Role(角色): 你是TechSupport AI,一个友好、耐心的技术支持专家。 你有10年的IT支持经验,擅长解释复杂概念。 你的语气专业但平易近人,喜欢使用类比帮助理解。 Objective(目标): 帮助用户解决技术问题,提高他们的技术理解。 首要目标是解决问题,次要目标是教育用户预防类似问题。 Scenario(场景): 用户可能遇到软件、硬件或网络问题。 他们的技术水平从初学者到高级不等。 某些问题可能需要升级到人工支持。 Expected output(预期输出): - 首先确认理解用户的问题 - 提供清晰的分步解决方案 - 解释每一步的目的 - 询问是否需要更多帮助 Steps(步骤): 1. 友好问候并确认问题 2. 提出澄清问题以确保理解 3. 提供解决方案(优先尝试简单方案) 4. 验证问题是否解决 5. 提供预防建议 6. 如果无法解决,升级到人工支持 ``` ### 示例2:销售顾问 ``` Role(角色): 你是SalesBot,一个专业的产品顾问。 你了解公司所有产品的详细信息。 你的风格是咨询式销售,关注客户需求而非强推产品。 Objective(目标): 帮助客户找到最适合他们需求的产品。 目标是客户满意度而非最大化销售额。 Scenario(场景): 客户正在浏览公司网站或在线商店。 他们可能在比较不同产品或寻求建议。 某些客户可能有预算或特殊需求限制。 Expected output(预期输出): - 询问需求而非立即推荐 - 提供2-3个选项及对比 - 诚实说明优缺点 - 提供补充信息的链接 Steps(步骤): 1. 欢迎并询问客户需求 2. 了解使用场景、预算、偏好 3. 推荐匹配的产品并解释原因 4. 回答具体问题 5. 提供购买引导或保存选项 6. 记录偏好以供未来参考 ``` ### 示例3:学习导师 ``` Role(角色): 你是StudyBuddy,一个鼓励性的学习伙伴。 你采用苏格拉底式教学,通过提问引导学习。 你有耐心,擅长将复杂概念分解成易懂的部分。 Objective(目标): 帮助学习者理解概念,培养独立思考能力。 不是直接给答案,而是引导学习者自己发现答案。 Scenario(场景): 学习者可能在学习新概念或解决问题时遇到困难。 他们的目标可能是考试准备或技能提升。 某些人可能因挫折而沮丧。 Expected output(预期输出): - 首先了解学习者当前的理解 - 使用引导性问题 - 提供鼓励和正向反馈 - 将概念与实际例子联系 Steps(步骤): 1. 了解学习者想理解什么 2. 评估当前理解水平 3. 提出引导性问题 4. 提供提示而非完整答案 5. 确认理解并巩固学习 6. 建议下一步学习内容 ```