RTF

Role-Task-Format

⭐ 简洁 3 个要素 ⏱️ 3 分钟学习

📦 组成要素

R

角色 Role

定义角色

T

任务 Task

描述任务

F

格式 Format

指定输出格式

✅ 适合

角色扮演、场景模拟

📖 详细说明

Prompt 框架:RTF(Role-Task-Format)

RTF 框架概述

RTF 是一个简洁但强大的 Prompt 框架,强调角色扮演和场景模拟,特别适合需要AI扮演特定角色或模拟真实场景的任务。框架名称由三个核心要素组成:

  • Role(角色)
  • Task(任务)
  • Format(格式)

RTF 框架是最简洁的框架之一,但通过清晰的角色定义能产生意外强大的效果。


特点

特点 说明
学习曲线 极低,三个概念即可掌握
适用场景 角色扮演、场景模拟、教学演示
框架复杂度 ⭐ 极简(仅3个要素)
有效性 ⭐⭐⭐⭐ 很高
迭代性 中等
组合性 强(可与其他框架组合)

RTF 的优势

极简易用 - 3个要素,5分钟掌握 ✅ 角色强化 - 明确的 Role 能显著改变 AI 的回答风格 ✅ 场景逼真 - 模拟真实场景能得到更贴近实际的回答 ✅ 教学友好 - 可以模拟各种角色进行教学 ✅ 快速迭代 - 改变 Format 快速调整输出

RTF 的局限

缺乏深度约束 - 对复杂需求表达不足 ❌ 可能不稳定 - 角色定义不当时结果差 ❌ 不适合代码细节 - 需要更详细的技术约束


模板

[Role]
你是 [角色描述]
背景/经验:[相关背景]

[Task]
请 [具体的任务描述]

[Format]
输出格式:[期望的格式]

或更详细版本:

[Role]
你现在是一名 [职位],拥有 [N年] 经验
你的特点:[性格特征、专业特长等]

[Task]
在 [场景] 中,请 [具体任务]

[Format]
请用 [格式/风格] 回答

相关框架比较

维度 RTF BROKE CRISPE
学习难度 ⭐ 极低 ⭐ 低 ⭐⭐ 中
要素数 3 5 6
完成时间 快(1-2分钟) 中(5分钟) 慢(15分钟)
角色强化
场景感

应用实践

实践1:技术面试练习

问题描述:模拟 Google/Microsoft 的技术面试

[Role]
你是 Google 的一名资深技术面试官
你有10年的面试经验,专注于考察候选人的算法能力和系统设计能力
你的风格是友好但严格,会根据回答深层挖掘

[Task]
请为我进行一场模拟的算法面试
问题难度:中等(LeetCode Medium 级别)
期望用时:45分钟

[Format]
按以下流程进行:
1. 提出一个算法问题
2. 听我的思路,给出反馈
3. 如果我卡住,给出提示而不是答案
4. 让我写代码,审查代码质量
5. 最后评价我的表现

交互示例

面试官:"给你一个数组,找出其中的两个数,使得它们的和等于目标值。" 候选人:"我可以用哈希表..." 面试官:"很好,为什么选择哈希表?有其他方法吗?" ...


实践2:学生和老师角色扮演

问题描述:学习一个复杂的编程概念

[Role]
你是一位资深的计算机科学教授
教学风格:Socratic method(苏格拉底方法),通过提问引导学生思考
特点:友好、耐心、擅长用比喻解释复杂概念

[Task]
教我理解"什么是闭包(Closure)"
我的背景:刚学完 JavaScript 基础

[Format]
采用对话形式:
1. 先用一个简单的日常例子
2. 逐步深化到代码示例
3. 让我说出自己的理解
4. 如果有误,温和地纠正

教学过程示例

老师:"想象你有一个钱包,里面有一些钱。你能看到钱包里有多少钱,但外人看不到。这就像什么?" 学生:"像是私有变量?" 老师:"很好!现在让我们用 JavaScript 代码表示这个想法..."


实践3:产品经理讨论

问题描述:与产品经理讨论功能设计

[Role]
你是一位经验丰富的产品经理
背景:在大型互联网公司工作过8年,做过多个千万级用户的产品
特点:用户导向、数据驱动、务实且有远见

[Task]
我想和你讨论一个新功能的可行性
功能:为我的社交应用添加"实时翻译"功能

[Format]
请采用产品讨论的形式:
1. 首先问我一些澄清问题
2. 评估功能的价值和可行性
3. 指出可能的陷阱
4. 建议优化方案
5. 帮助我制定实施计划

讨论流程示例

PM:"首先,你的用户有多大比例需要翻译功能?" 你:"大约20-30%,他们经常和不同国家的用户聊天" PM:"这个用户占比很重要。有没有考虑过..."


RTF 框架最佳实践

✅ 做这些事

  1. 具体的角色定义

    • ✅ "Google 技术面试官,10年经验,风格严格友好"
    • ❌ "一个技术专家"
  2. 清晰的任务描述

    • ✅ "进行45分钟的算法面试,考察中等难度问题"
    • ❌ "面试我"
  3. 明确的互动格式

    • ✅ "采用对话形式,我说一步你给反馈"
    • ❌ "随意对话"
  4. 角色的连贯性

    • 保持角色的一致性
    • 让 AI 始终按照这个角色行动

❌ 避免这些事

  1. 模糊的角色

    • ❌ "你是专家"
    • ✅ "你是 MIT 计算机科学教授,专研并发编程"
  2. 没有格式要求

    • ❌ "和我讨论一个想法"
    • ✅ "按照设计思维的 5 步框架帮我分析"
  3. 角色冲突

    • ❌ Role 说"严格的面试官",但 Format 说"非常友好"
    • ✅ 角色和格式协调一致
  4. 任务不清晰

    • ❌ "模拟一个面试"
    • ✅ "模拟 Google 的系统设计面试,时长 60 分钟"

RTF 和其他框架的组合

RTF 可以和其他框架组合,创造更强大的效果:

RTF + BROKE

[Role] 资深 Java 架构师
[Background] 企业级微服务项目
[Objective] 生成登录接口
[Constraints] Spring Boot 3.2, JWT
[Examples] 输入/输出示例
[Format] 完整代码,包含异常处理

RTF + Chain-of-Thought

[Role] 算法讲师
[Task] 教我如何解决这个 LeetCode 问题
[Format] 请一步步讲解思路,然后才给代码

常见问题

Q: RTF 太简洁了,不会不够吗?

A: RTF 适合明确的任务。如果需求复杂,组合其他框架(如 RTF + BROKE)。

Q: 如何让 AI 更好地理解我想要的角色?

A: 给出具体的背景和经验。"20年经验"比"资深"更有效。

Q: RTF 适合代码生成吗?

A: 可以,但不是最优选择。代码生成用 BROKE 更好。RTF 适合角色扮演。


进一步阅读