模块8:提示词模板与框架

难度:⭐⭐⭐⭐ 高级 | 建议时长:3-4小时

目标:掌握经典提示词框架,学会设计自己的模板,建立个人提示词库


8.0 快速上手:极简框架

在学习经典框架之前,先掌握两个”轻量级武器”。它们结构简单、上手极快,适合日常对话和简单任务。很多时候你不需要六七个要素的复杂框架,三个要素就够了。

框架A:RTF(日常对话首选)

R - Role(角色):你希望 AI 扮演什么身份
T - Task(任务):你希望 AI 完成什么事
F - Format(格式):你希望输出是什么样子

示例1:翻译润色
R:你是一位中英双语翻译专家,擅长学术论文润色
T:将以下中文摘要翻译为英文,确保符合 SCI 论文的表达习惯
F:输出英文翻译 + 3处关键润色说明(表格形式)

示例2:面试准备
R:你是一位有10年招聘经验的HR总监
T:针对"Python后端开发"岗位,帮我准备5个常见面试题及参考答案
F:每个问题包含:题目、考察重点、参考答案(200字内)、加分项提示

什么时候用 RTF? 日常提问、快速任务、不需要复杂推理的场景。如果你只能记住一个框架,记住 RTF。

框架B:APE(行动导向首选)

注意:本章的 APE 指的是 Action / Purpose / Expectation 提示框架。

在一些论文或研究资料中,APE 也可能指 Automatic Prompt Engineer(自动提示工程)。两者名称相同,但含义完全不同。为了避免混淆,后者更适合放在“优化与评估”或“扩展阅读”中理解。

A - Action(行动):要求 AI 做的具体动作
P - Purpose(目的):为什么要做这件事
E - Expectation(期望):期望得到什么样的结果

示例1:代码审查
A:审查以下 Python 代码
P:准备提交到生产环境前的最后检查
E:找出所有潜在的 bug、安全隐患和性能问题,
   按严重程度排序,每个问题给出修复建议

示例2:竞品分析
A:对比分析飞书和钉钉的项目管理功能
P:我们团队正在选型协作工具,需要做决策
E:输出对比表格,涵盖功能、价格、优缺点,
   最后给出推荐建议及理由

RTF vs APE 怎么选?

  • 需要 AI 扮演特定身份 → 用 RTF(有角色)
  • 只关心”做什么、为什么、要什么” → 用 APE(无角色,更直接)

8.1 五大经典框架

先提醒一句:本章介绍的几大框架,主要是常见实践框架或经验模板,适合帮助你更快组织提示词。

它们并不是行业唯一标准,也不是官方统一规范。真正重要的不是死记框架名,而是理解:任务目标、上下文、约束、示例、输出格式这些核心要素如何组合。

本章框架一览(缩写还原速查)

缩写字母拆解一句话特点
RTFRole / Task / Format(角色 / 任务 / 格式)3 要素极简版,日常对话首选(见 8.0)
APEAction / Purpose / Expectation(行动 / 目的 / 期望)3 要素行动导向(见 8.0)
CO-STARContext / Objective / Style / Tone / Audience / Response6 要素,内容创作首选
CRISPECapacity / Role / Insight / Statement / Personality / Experiment6 要素,策略分析首选
BROKEBackground / Role / Objectives / Key result / Evolve5 要素,项目规划首选
RISENRole / Instructions / Steps / End goal / Narrowing5 要素,任务执行首选
RODESRole / Objective / Details / Examples / Sense check5 要素,质量把关首选
密度链Chain of Density摘要压缩首选

💡 不需要死记字母——用的时候照速查表对一遍即可。

框架1:CO-STAR(内容创作首选)

C - Context(背景):任务的来龙去脉
O - Objective(目标):要达成什么
S - Style(风格):写作/回答的风格
T - Tone(语气):正式?友好?严肃?
A - Audience(受众):目标受众是谁
R - Response(回复格式):期望的输出格式

示例:
C:公司Q3销售额同比增长15%,超额完成目标
O:撰写一封给全体员工的通报邮件
S:正式的公司通知风格
T:积极鼓励,肯定团队努力
A:公司全体员工(约500人,各部门)
R:邮件格式,标题+正文+结语,800字以内

框架2:CRISPE(策略分析首选)

C - Capacity(能力):AI 扮演的角色
R - Request(请求):要做什么
I - Information(信息):背景信息
S - Steps(步骤):按什么步骤执行
P - Personality(个性):表达风格
E - Experiment(实验):要求多个方案

示例:
C:你是一位经验丰富的产品文案策划
R:为新上市的智能手表写推广文案
I:主打健康监测,目标用户25-35岁都市白领
S:先分析用户痛点,再设计3个不同角度的文案
P:简洁有力,有都市生活气息
E:提供3个版本,说明每个版本的策略差异

框架3:BROKE(项目规划首选)

B - Background(背景):任务的背景
R - Role(角色):AI 扮演的角色
O - Objective(目标):需要完成的目标
K - Key Result(关键结果):期望的具体产出
E - Evolve(改进):如何迭代优化

示例:
B:公司正在从传统电商转型社交电商
R:你是社交电商领域的战略顾问
O:制定3个月的转型计划
K:输出包含里程碑、关键指标、资源需求的计划表
E:如果第一版不够具体,根据反馈进一步细化

框架4:RISEN(任务执行首选)

R - Role(角色):你是谁
I - Instructions(指令):你要做什么
S - Steps(步骤):按什么步骤做
E - End goal(最终目标):要达到什么效果
N - Narrowing(约束):边界和限制

示例:
R:你是一位资深数据分析师,擅长用 Python 做商业分析
I:分析电商销售数据,找出销售下滑的原因
S:1.数据概览 2.趋势分析 3.品类下钻 4.地区交叉分析 5.建议
E:输出1页纸的分析报告,让业务负责人知道"问题在哪、该怎么办"
N:只基于提供的数据分析,建议必须可执行,图表用中文

框架5:密度链(Chain of Density,摘要压缩首选)

核心思想:让 AI 反复改写同一段摘要,
每次长度不变但信息密度越来越高。

类比:同样100字的朋友圈——
第1版:说了一堆废话,信息量低
第3版:每个字都是干货,信息量翻几倍

模板:
请为以下文章生成摘要,然后逐步提高信息密度。

规则:
- 每个版本长度相同(约100字)
- 每个新版本包含上一版的所有关键信息
- 每个新版本额外加入1-2个遗漏的重要细节
- 不能加长,只能通过压缩表达来腾出空间
- 共生成5个版本

文章:
"""
[粘贴文章]
"""

版本1(密度:低):...
遗漏的关键信息:[列出]
版本2(密度:中低):...
...
版本5(密度:高):...

实操建议:通常版本 2-3 可读性最好。版本5信息密度最高但可能读起来费劲。根据用途选合适的版本。

框架6:RODES(质量把关首选)

R - Role(角色):AI 扮演的专家身份
O - Objective(目标):要完成的核心目标
D - Details(细节):背景信息、上下文、具体要求
E - Examples(示例):期望输出的参考样例
S - Sense check(自检):让 AI 回顾并检查自己的输出

示例1:API 错误码文档
R:你是一位高级技术文档工程师
O:为电商支付系统的 REST API 编写错误码文档
D:面向第三方开发者阅读,需覆盖 HTTP 4xx 和 5xx 错误,
   每个错误码需包含:错误码、HTTP状态码、描述、可能原因、解决方案
E:参考格式——
   | 错误码 | HTTP 状态 | 描述 | 可能原因 | 解决方案 |
   |--------|-----------|------|----------|----------|
   | PAY_001 | 400 | 无效的支付金额 | 金额为负数或零 | 确保金额为正数,单位为分 |
S:完成后请自行检查——
   1. 每个错误码是否唯一且无重复?
   2. 解决方案对开发者是否真正有帮助(而非空话)?
   3. 是否覆盖了支付流程中所有关键失败场景?

示例2:用户调研报告
R:你是一位用户研究专家,有 8 年 B2C 产品经验
O:基于以下用户访谈记录,输出一份用户调研分析报告
D:产品是一款健身 App,访谈了 12 位用户(6位活跃、6位流失),
   重点关注流失原因和功能满意度
E:每个发现的格式——
   【发现】:一句话结论
   【证据】:引用 2-3 条原始访谈内容
   【建议】:产品改进方向
S:完成后请自行检查——
   1. 结论是否都有原始数据支撑,而非主观臆断?
   2. 是否同时覆盖了活跃用户和流失用户的视角?
   3. 建议是否具体可执行,而非"优化体验"这类空话?

RODES 的独特价值:最后的 Sense check(自检) 环节是其他框架没有的。它让 AI 扮演”审稿人”角色检查自己的输出,能显著减少遗漏和低质量内容。对输出质量要求高的任务,优先选 RODES。

如何选择框架?

场景推荐框架原因
简单日常提问RTF三要素极简,上手最快
行动导向/快速指令APE 或 TAG不需要角色,直奔主题
文案/文章/邮件CO-STAR注重风格和受众
营销推广/痛点文案BABBefore→After→Bridge 结构天然有说服力
产品/策略分析CRISPE注重步骤和多方案
产品介绍/卖点提炼FOCUS特性→成果→对比→独特→总结
项目规划BROKE注重目标和迭代
目标设定SMART具体、可衡量、可实现、相关、有时限
数据分析/技术任务RISEN 或 ROSES注重执行步骤和约束
案例复盘/述职SPEAR情境→问题→证据→行动→结果
学术论证/观点输出PEE论点→证据→解释
摘要/压缩/提炼密度链字数不变信息翻倍
高质量文档/格式严格RODES示例驱动 + AI 自检机制

框架复杂度阶梯

极简 ─────────────────────────────────── 精细
APE → RTF → CO-STAR → BROKE → RISEN → CRISPE → RODES
 3要素  3要素   6要素    5要素   5要素   6要素    5要素+自检

原则:够用就好,不要过度设计。写个朋友圈用 APE 足矣,写专业报告再上 RODES。

更多实用框架(速查手册补充)

以下框架在特定场景下很好用,但日常频率不如上面几个高。每个给出结构和 2 个示例,按需取用。

RACE(多场景通用)

R - Role(角色):AI 扮演什么身份
A - Action(行动):要做什么
C - Context(背景):在什么情况下
E - Expectation(期望):要什么结果

示例1:竞品调研
R:你是一位市场分析师
A:对比分析 Notion 和 飞书文档 的协作功能
C:我们团队正在选型,10人规模,远程办公为主
E:输出对比表格 + 推荐结论,500字以内

示例2:面试辅导
R:你是一位资深技术面试官
A:模拟一场 30 分钟的 Java 后端面试
C:候选人是 3 年经验的中级工程师,面试高级岗
E:提出 5 个由浅入深的问题,每个附带评分标准

BAB(营销文案 / 产品推广)

B - Before(之前):用户现在的痛点/困境
A - After(之后):用了产品后的理想状态
B - Bridge(桥梁):产品如何帮用户从 Before 到 After

示例1:健身App推广
B:每天加班到9点,想健身但没时间去健身房,身体越来越差
A:每天只需15分钟,在家就能完成高效训练,3个月体脂降5%
B:「FitHome」App 提供 AI 定制的短时高效课程,
   根据你的时间和体能自动调整,不需要器械

示例2:项目管理工具
B:团队用微信群沟通项目,消息刷屏找不到重点,
   任务经常遗漏,deadline 总是赶不上
A:每个任务有清晰的负责人和截止日,进度一目了然,
   到期自动提醒,再也不会漏事
B:「TaskFlow」把聊天和任务管理合二为一,
   群里说的事一键变任务,自动追踪到完成

SMART(目标设定)

S - Specific(具体):目标是什么,越具体越好
M - Measurable(可衡量):怎么判断达成了
A - Achievable(可实现):以现有资源能做到吗
R - Relevant(相关):和大目标有什么关系
T - Time-bound(有时限):什么时候完成

示例1:学习目标
S:掌握 Python 数据分析(pandas + matplotlib)
M:能独立完成一份包含数据清洗、可视化、结论的分析报告
A:每天投入1小时,有编程基础
R:为转岗数据分析师做准备
T:8周内完成

示例2:产品目标
S:将 App 的用户次日留存率从 35% 提升到 45%
M:通过数据后台监控次日留存指标
A:团队有 3 名开发 + 1 名产品,可投入 2 个迭代
R:留存是当前增长瓶颈,提升留存直接影响 LTV
T:6周内上线改进方案并观察 2 周数据

SPEAR(案例陈述 / 复盘)

S - Situation(情境):当时的背景
P - Problem(问题):遇到了什么问题
E - Evidence(证据):有什么数据/事实支撑
A - Action(行动):采取了什么措施
R - Result(结果):最终效果如何

示例1:项目复盘
S:2024年Q2,电商大促期间系统承压
P:支付接口在峰值时段响应超时,导致 15% 订单失败
E:监控显示 QPS 达到 8000,数据库连接池耗尽
A:紧急扩容 + 引入消息队列削峰 + 增加数据库读写分离
R:30分钟内恢复正常,后续压测通过 12000 QPS

示例2:个人成长
S:入职第一年,负责一个 5 人小组的日常管理
P:组员对任务分配不满,认为分配不公平,士气低落
E:1on1 中 3 人提到"总是我做脏活",迭代速度下降 20%
A:引入任务轮换制 + 公开任务难度评分 + 每周回顾
R:2个月后满意度调查提升 40%,迭代速度恢复正常

TAG(极简任务)

T - Task(任务):做什么
A - Action(行动):怎么做
G - Goal(目标):达到什么效果

示例1:
T:翻译一段产品介绍
A:用简洁的美式英语,避免直译
G:让美国用户一读就懂,不超过 100 词

示例2:
T:检查这段 SQL 查询
A:从性能和安全两个角度审查
G:找出所有慢查询风险和 SQL 注入隐患,给修复建议

ERA(快速任务)

E - Expectation(期望):你想要什么
R - Role(角色):AI 扮演谁
A - Action(行动):具体做什么

示例1:
E:得到一份清晰的会议纪要
R:你是一位高效的行政助理
A:将以下会议录音转写整理为结构化纪要,
   包含:议题、决议、待办事项(含负责人和截止日)

示例2:
E:快速理解一篇英文论文的核心贡献
R:你是一位 AI 领域的研究员
A:用中文总结这篇论文的 3 个核心贡献和 1 个主要局限,
   每点不超过 2 句话

ROSES(步骤明确的任务)

R - Role(角色):AI 的身份
O - Objective(目标):要完成什么
S - Scenario(场景):在什么情境下
E - Expected output(期望输出):输出什么样子
S - Steps(步骤):按什么步骤做

示例1:数据报告
R:数据分析师
O:分析本月销售数据异常
S:某品类销售额环比下降 30%,需要找原因
E:一页纸的分析报告,含图表描述和改进建议
S:1.确认数据范围 2.对比历史趋势 3.下钻到SKU级别
  4.排查外部因素 5.给出结论和建议

示例2:代码重构
R:高级后端工程师
O:重构这个 500 行的 God Class
S:这个类承担了用户注册、登录、权限校验、日志记录四个职责
E:拆分为 4 个单一职责的类,保持原有接口不变
S:1.梳理现有方法归属 2.设计新的类结构 3.逐个迁移方法
  4.处理类间依赖 5.验证原有测试通过

FOCUS(产品介绍)

F - Features(特性):产品有什么功能
O - Outcomes(成果):能带来什么结果
C - Comparisons(对比):和竞品比怎样
U - Unique(独特):独特卖点是什么
S - Summary(总结):一句话总结

示例1:
F:AI 写作助手,支持长文、邮件、社媒文案
O:写作效率提升 3 倍,文案质量稳定
C:比 ChatGPT 更懂中文语境,比文心一言更快
U:内置 50+ 行业模板,一键切换写作风格
S:中文写作场景的最佳 AI 搭档

示例2:
F:智能会议系统,实时转写 + 自动摘要 + 待办提取
O:会后 5 分钟出纪要,不再遗漏 action item
C:比讯飞听见多了智能摘要,比 Otter 支持中文
U:能识别多人发言并自动标注说话人
S:开完会就有纪要,再也不用手动整理

PEE(学术写作 / 论证)

P - Point(论点):你的核心观点
E - Evidence(证据):支撑观点的事实/数据
E - Explanation(解释):证据如何支撑论点

示例1:
P:远程办公能提高知识工作者的生产力
E:斯坦福 2023 年研究显示,远程工作者产出比办公室高 13%;
   GitLab 全远程团队连续 5 年营收增长超 50%
E:远程减少了通勤和无效会议的时间消耗,
   让员工能在精力最佳时段集中处理深度工作

示例2:
P:微服务架构不适合所有团队
E:Segment 在 2018 年从微服务回退到单体,
   维护 100+ 服务的成本超过了收益;
   团队从 3 人扩到 10 人才勉强维持
E:微服务带来的运维复杂度(网络、部署、监控)
   需要足够的团队规模来分摊,小团队得不偿失

RACEF(提示词精炼优化)

R - Rephrase(重述):用自己的话重新表述需求
A - Append(补充):添加遗漏的关键信息
C - Contextualize(加上下文):补充背景和约束
E - Examples(加示例):给出期望输出的样例
F - Follow-up(追问):预设可能的追问方向

示例1:优化一个模糊的提示词
原始提示词:"帮我写个邮件"
R:写一封催促供应商交货的商务邮件
A:供应商已延期 2 周,合同约定违约金条款
C:我是采购经理,对方是长期合作伙伴,语气要坚定但不撕破脸
E:开头问候 → 说明延期事实 → 引用合同条款 → 要求回复确认新日期
F:如果对方回复说原材料短缺,我该怎么回?

示例2:优化一个技术提示词
原始提示词:"帮我优化这段代码"
R:优化这段 Python 数据处理代码的执行速度
A:当前处理 100 万行 CSV 需要 45 秒,目标降到 10 秒以内
C:运行环境是 8核16G 的 Linux 服务器,可以用多线程
E:期望输出:优化后的代码 + 性能对比 + 优化原理说明
F:如果用 pandas 还是不够快,是否该换 Polars?

RACEF 的独特价值:它不是用来”写提示词”的,而是用来”改提示词”的。当你觉得自己的提示词效果不好时,按 RACEF 五步逐项补充,通常能显著提升质量。

使用建议:以上框架不需要全部记住。日常 80% 的场景用 RTF/APE/CO-STAR 就够了。遇到特定场景(营销用 BAB、目标设定用 SMART、案例复盘用 SPEAR、优化提示词用 RACEF)时再来查。


8.2 扩展阅读:从框架到自动化提示优化

本章讲的是“人如何更好地组织提示词”。继续往前走,你还会遇到“让模型自动生成、筛选和优化提示词”的方向,例如 Automatic Prompt Engineer、Active-Prompt 等。

这些内容更偏优化方法论和研究实践,不属于日常写 Prompt 的第一优先级。建议先掌握本章这些高频框架,再继续学习模块 9 的系统化优化方法。


8.3 设计自己的模板

为什么要有自己的模板?

每次从头写提示词就像每次做菜都从”盐放多少”开始琢磨。有了验证过的模板,复制粘贴改几个变量就能用。

从零设计模板的三步法

第一步:确定场景
  "我每周都要写周报" → 这是一个高频场景,值得做模板

第二步:提炼变量
  每次变化的部分:本周工作内容、遇到的问题、下周计划
  不变的部分:格式要求、语气要求、字数限制

第三步:组装模板
  把不变的部分固定下来,变化的部分用 [占位符] 标记

示例:周报模板

你是一位善于总结的项目经理助手。

请基于以下信息撰写一份周报:

本周完成的工作:
[在这里填写]

遇到的问题:
[在这里填写]

下周计划:
[在这里填写]

格式要求:
- 使用 Markdown 格式
- 每个部分用 ### 标题
- 完成的工作按重要性排序
- 问题部分要附带解决方案或进展
- 下周计划要有具体的时间节点
- 总字数 300-500 字
- 语气:专业简洁,突出成果和数据

8.4 变量化深入指南

8.3 节的”三步法”教你怎么提炼变量,本节教你怎么把变量写规范、写对、写到生产可用

8.4.1 4 种主流占位符语法

不同工具/场景用不同的占位符语法。先认清差别再选用

语法长相出处适用
[占位符] 中括号[在这里填写本周工作]给人看的标记手动复制粘贴场景,肉眼最易识别
{变量} 单花括号请总结{topic}Python str.format() / f-stringPython 代码调用 LLM API 时
{{变量}} 双花括号请总结{{topic}}Mustache / Jinja2 / LangChain PromptTemplate生产框架(LangChain、LlamaIndex 等)
<变量> 尖括号<context>...</context>Anthropic 官方推荐给 Claude 的结构化提示词

⚠️ 不要混用:选定一种就一以贯之。混用会导致替换出 bug 或被框架误解析。

4 种语法的对比示例

同一个”总结文章”提示词,4 种写法:

[中括号 - 给人看]
请用3句话总结以下文章:
[在这里粘贴文章]

{单花括号 - Python}
请用3句话总结以下文章:
{article}

{{双花括号 - LangChain}}
请用3句话总结以下文章:
{{article}}

<尖括号 - Anthropic 推荐>
请用3句话总结以下文章:
<article>
{{article}}
</article>

📌 Anthropic 风格的精髓:用 XML 标签包裹内容,比单纯占位符更清晰——AI 能明确知道”哪段是用户真正要处理的内容”。

8.4.2 变量的 3 种角色分类

不是所有变量都一样重要。按”在提示词里扮演什么角色”分类:

类型作用例子改动频率
内容变量AI 要处理的素材{文章} {代码} {用户问题}每次都变
配置变量影响输出格式{字数限制} {语言} {格式}偶尔改
角色变量改变 AI 行为风格{专家身份} {语气} {受众}很少改

为什么要分类

  • 🟢 内容变量 → 前台用户每次都填
  • 🟡 配置变量 → 做成下拉选项 / 默认值
  • 🔵 角色变量 → 后台预设,前台不暴露

示例:写一个”技术答疑”模板,三类变量都用上:

你是一位{身份},请用{语气}回答以下技术问题。

问题:
<question>
{user_question}
</question>

要求:
- 答案不超过 {max_words} 字
- 用 {language} 回答
- 如果问题不清楚,先反问澄清

填入:

  • 角色变量:身份=资深 Python 工程师语气=耐心专业
  • 配置变量:max_words=300language=中文
  • 内容变量:user_question=如何优化 for 循环?

8.4.3 高级技巧

技巧 1:默认值(可选变量)

不是每个变量都必须填——支持默认值能让模板更灵活。

Python 写法

template = "用{tone}的语气回答:{question}"
result = template.format(
    question="什么是 RAG?",
    tone="通俗易懂"   # 可以省略此参数 → 改用 .get('tone', '专业') 提供默认
)

LangChain 写法

from langchain.prompts import PromptTemplate
prompt = PromptTemplate(
    template="用{tone}的语气回答:{question}",
    input_variables=["question"],
    partial_variables={"tone": "专业"}  # 默认值
)

技巧 2:嵌套变量(变量里再套变量)

复杂场景下,一个大模板由多个小模板拼出来。

[主模板]
你是 {role_block}。

请处理以下内容:
{content_block}

输出要求:{output_block}

[role_block 子模板]
一位 {experience} 年经验的 {profession},擅长 {skill}

[output_block 子模板]
- 字数:{word_limit}
- 格式:{format}

💡 嵌套层级建议不超过 2 层——再深就难维护了。

技巧 3:条件变量(不同情况插不同内容)

# 伪代码示意
prompt = f"""
请总结以下文章:
{article}
 
{('请用专业术语' if is_expert_audience else '请用通俗语言')}
 
{f'限制 {max_words} 字以内' if max_words else ''}
"""

LangChain 用 Jinja2 模板更优雅:

请总结:{{ article }}
{% if expert %}请用专业术语{% else %}请用通俗语言{% endif %}

技巧 4:变量类型约束

防止”变量值不合法”导致提示词跑飞——在替换前先校验

def render_prompt(template, vars):
    # 校验类型
    assert isinstance(vars.get("max_words"), int), "max_words 必须是数字"
    assert vars.get("max_words", 0) <= 2000, "字数上限不能超过 2000"
    assert vars.get("language") in ["中文", "英文"], "语言只支持中英文"
 
    # 校验通过后再替换
    return template.format(**vars)

8.4.4 与主流框架的对接

LangChain PromptTemplate(最常用)

from langchain.prompts import PromptTemplate
 
# 定义模板
template = PromptTemplate(
    input_variables=["product", "audience"],
    template="""
你是营销专家。请为 {product} 写一段面向 {audience} 的推广文案。
要求:3 句话以内,突出 1 个核心卖点。
"""
)
 
# 渲染(变量替换)
prompt = template.format(product="降噪耳机", audience="程序员")
# 然后丢给 LLM

Anthropic SDK(直接传消息)

from anthropic import Anthropic
 
client = Anthropic()
 
# Anthropic 风格:用 XML 标签包裹内容变量
prompt = f"""
请总结这篇文章。
 
<article>
{article_content}
</article>
 
要求:{max_words} 字以内。
"""
 
response = client.messages.create(
    model="claude-opus-4-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": prompt}]
)

OpenAI SDK

类似 Python 标准 f-string 即可,没有专属模板规范。

8.4.5 变量化的常见坑

现象解法
变量名冲突模板里有 {role},但用户输入也含 {role} 字面量 → 替换出错用双花括号 {{role}} 转义,或换语法
空值未处理变量为空时模板里出现”请处理:” 后面什么都没有加默认值或条件分支
类型错配{max_words} 期望数字但传了字符串”五百”加类型校验
顺序敏感变量先后位置影响 AI 理解关键内容(如用户问题)放最后
越权变量用户输入的变量内容里夹带”忽略上面,你现在是…”用 XML 标签隔离用户输入;做 Prompt Injection 检测

⚠️ 越权变量是最危险的——用户输入可能藏着”提示词注入攻击”。详见 Agent 安全攻防 中”提示词注入”章节。

8.4.6 一句话总结

变量化 = 把”每次都要写一遍”的提示词,变成”模板 + 占位符”的结构。 占位符语法选 1 种用到底(推荐 Anthropic 的 <XML> 风格),变量按”内容/配置/角色”分类管理,复杂场景用 LangChain 等框架。


8.5 建立个人提示词库

提示词库的组织方式

我的提示词库/
├── 工作场景/
│   ├── 邮件_商务.md
│   ├── 邮件_催促.md
│   ├── 周报.md
│   ├── 会议纪要.md
│   └── 项目方案.md
├── 编程开发/
│   ├── 代码生成.md
│   ├── 代码审查.md
│   ├── Bug调试.md
│   └── 代码重构.md
├── 学习研究/
│   ├── 概念学习.md
│   ├── 论文阅读.md
│   └── 学习规划.md
└── 创意写作/
    ├── 公众号文章.md
    ├── 产品文案.md
    └── 短视频脚本.md

单个提示词的记录格式

# [提示词名称]

## 基本信息
- 适用场景:
- 推荐模型:[GPT-4o/Claude/通用]
- 效果评分:⭐⭐⭐⭐ (4/5)
- 版本:v2.1
- 最近更新:2024-xx-xx

## 提示词正文
"""
[完整的提示词内容]
"""

## 使用说明
- 需要替换的变量:[列出]
- 注意事项:[特别提醒]

## 效果样本
输入示例:...
输出示例:...

## 优化历史
- v1.0:初始版本
- v1.1:增加了输出格式要求
- v2.0:加入角色设定,效果显著提升
- v2.1:微调约束条件,减少跑题

8.6 动手练习

练习1:用框架写提示词

分别用 CO-STAR 和 RISEN 框架,为”给公司新人写欢迎邮件”设计提示词,对比哪个更好用。

练习2:设计自己的模板

为你工作中最高频的任务设计一个可复用模板,用 [占位符] 标记变量部分。

练习3:建立提示词库

根据你的实际需求,建立一个包含至少 5 个提示词的个人库,每个都按记录格式写好。


本章小结

✅ 极简框架:RTF(角色+任务+格式)、APE(行动+目的+期望)
✅ 五大经典框架:CO-STAR/CRISPE/BROKE/RISEN/密度链
✅ 质量把关框架:RODES(独有自检机制)
✅ 按场景选框架:日常用RTF/APE,创作用CO-STAR,分析用CRISPE,
   规划用BROKE,执行用RISEN,压缩用密度链,高质量输出用RODES
✅ 设计模板三步法:确定场景→提炼变量→组装模板
✅ 个人提示词库:分类保存、记录版本、持续迭代

下一步09_系统化优化与评估.md