ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

CRISPE框架详解:让大语言模型输出高质量结果的提示词工程指南

CRISPE框架详解:让大语言模型输出高质量结果的提示词工程指南

写提示词这件事,入门只要十分钟,但要写好往往得反复磨。我见过太多人——包括从前的我自己——把大语言模型当成一个“有问必答的同事”,想到什么就直接问什么:“帮我写一份市场推广方案”,然后对着平庸的输出叹气。后来我把 CRISPE 这套提示词工程框架真正用起来,才明白问题从来不在模型,而在提示词的信息结构。这篇文章适合所有和生成式AI打交道的朋友:写文案的、写代码的、做分析的、带团队梳理AI工作流的,只要你知道“提示词质量直接决定输出质量”这个道理,CRISPE 就值得你花半小时系统过一遍。全文按两章八节展开,第一章把框架的逻辑讲透,第二章给足可以照抄的实战案例。

1. 第一章 框架认知:为什么提示词工程需要一个像CRISPE这样的结构(第1节)

1.1 大多数提示词失效的根源

先聊一个现象。我接触过不少同事和读者,他们对大语言模型的评价经常是“时而惊艳,时而智障”。同一个模型,上午还能写出像模像样的方案,下午换个问法就满嘴正确的废话。差别往往不在模型,而在提示词。

大多数失效的提示词都败在信息量不足。你只说了“要什么”,没说“以什么身份要”“为什么需要”“给谁看”“用什么语气”“要几个版本”,模型就只能把每个维度都往最中庸的方向猜。大语言模型不是一个搜索引擎,它本质上是一套“在给定上下文条件下,预测最合理输出”的系统。上下文里没有的信息,它不会凭空变出来,它只会用统计学上最可能的写法糊弄过去。

打个生活化的比方:你请一位装修师傅干活,只丢一句“帮我把厨房弄一下”,师傅能怎么办?他只能按自己脑子里“最标准厨房”的样子自由发挥,你回来大概率要返工。但如果你告诉他“三口之家,平均身高一米七,每天做两顿饭,预算三万,喜欢原木风,三周内完工”,他做出来的方案和你想对上的概率就高得多。提示词的道理完全一样——模型不是不想好好干,是你给它的“需求说明书”太薄了。

1.2 CRISPE的定位:不是咒语,而是沟通清单

CRISPE 就是针对这个问题的结构化方案。它不是某个模型特有的口令,也不是什么高深理论,本质上是一份“与AI沟通前必须想清楚的清单”。这套框架最初来自英文提示词社区的实践总结,核心思想是把一条提示词拆成五个必要模块:角色、背景、任务、风格、实验。五块拼齐,提示词的信息结构就完整;缺一块,输出的短板就出在哪一块。

我经常跟朋友说,CRISPE 解决的核心问题不是“让模型变聪明”,而是“让你把需求想清楚”。很多时候我们提示词写得差,不是因为不会写,而是因为没想清楚。CRISPE 逼着你在提问之前先回答五个问题:模型该以什么角色回答?它需要知道哪些背景?它要完成的具体任务是什么?输出应该是什么风格?要不要给多个版本供对比?把这五个问题答完,一条高质量提示词基本就成型了。

1.3 五要素速览:先记住这张表

在逐字拆解之前,先放一张速览表,方便你建立整体印象:

要素英文全称作用对应问题
CRCapacity and Role定义模型身份与能力边界你是谁?你擅长什么?
IInsight提供背景、语境与约束你还需要知道什么?
SStatement下达明确、可执行的任务你到底要做什么?
PPersonality规定输出风格与语气回答长什么样?
EExperiment要求多版本与自我迭代能不能多给几个方案?

这张表建议你先抄一遍。后面所有内容,本质上都是围绕这五行展开的。

2. 第一章 要素拆解(上):CR、I、S三个要素怎么用才有效(第2-4节)

2.1 第2节 CR——能力与角色:先让模型“上岗”,再让它“干活”

CR 是 CRISPE 里的第一个模块,也是最容易被误解的模块。很多人以为“角色扮演”就是写一句“你是专家”就够了,实际上 CR 要解决的是模型的“能力预设”问题。

大语言模型在训练时读过海量文本,它的“知识仓库”里同时装着医生、律师、程序员、销售、编辑等无数种讲话方式。当你不指定角色时,模型默认启用“通用助手”口吻——四平八稳、缺乏立场、什么都说一点但什么都不深入。而一旦指定角色,等于把模型的生成方向往特定区域压缩:你说“你是一名有十年经验的数据分析师”,模型就更倾向使用分析师的术语、分析框架、甚至表达习惯。

我自己的经验是,CR 部分不要只写“你是某领域专家”就完事,最好把经验年限、擅长的方法论、服务的对象都带上。对比一下:

低效版:你是数据分析专家,帮我分析销售数据。 CRISPE版:CR:你是一名在零售行业工作八年的数据分析专家,擅长用同比、环比、漏斗模型和用户分层等方法诊断销售变化,服务过实体门店和电商两类业务。

后面这个版本为什么更好?因为“零售行业”“八年”“漏斗模型”“用户分层”这些词,有没有,模型输出的颗粒度完全是两回事。没有这些限定,它给你一套放之四海皆准的通用框架;有了这些限定,它输出的指标和分析角度会更贴近真实业务场景。

2.2 第3节 I——洞察与背景:把上下文喂够,别让模型瞎猜

I 模块是 CRISPE 里最容易被跳过的模块,但恰恰是最能拉开输出质量差距的模块。很多人的逻辑是“模型什么都知道,为什么还要我提供背景?”——模型确实知道很多,但它不知道你的具体情况。

I 模块要填充的内容包括三类。第一类是客观背景,比如业务所处的阶段、数据的规模和时间范围、产品的单价和受众;第二类是约束条件,比如预算限制、合规要求、截止时间;第三类是目的与受众,这份输出最终给谁看、用来做什么决策。

还是用看病来类比。你对医生说一句“我不舒服”,医生只能从头到脚排查;但你说“前天吃了海鲜,昨晚开始胃疼,没发烧,以前有过胆囊炎”,医生立刻就有了方向。背景信息越多,模型花在猜测上的算力就越少,花在解决问题上的能力就越多。

举个实际例子。你让模型写一封客户回访邮件:

低效版:帮我写一封给客户的回访邮件。 CRISPE版:I:客户一个月前购买了我们的入门级课程,上周他发邮件抱怨课程难度太低,客服已经电话沟通过一次,他态度有所缓和,但还没有续费意向。这次回访的目的是修复关系,不是推销。

背景一旦补充到“具体情况”层面,模型写出来的邮件绝不会是模板味的,它会针对“难度太低、已电话沟通、未续费”这些信息逐条回应。这就是 I 的价值——它把模型从“写一封像样的邮件”变成“写一封发给这位客户的邮件”。

2.3 第4节 S——陈述与任务:指令要“可执行”,不要“可理解”

S 模块就是任务本身,看起来最简单,实际上最容易出问题。问题的根源在于:我们把“模型能看懂”当成了“模型能做对”。写代码的人都知道,机器能读懂的代码不一定能正确运行,中间差的就是精确的规格。

S 模块的写作要领有三条。第一条,动词要具体。“分析”“讨论”“看看”这类词输出边界很模糊;“列出”“对比”“给出”“分三步”这类词输出边界就清晰得多。第二条,把交付物规格写清楚。你要的是段落、列表、表格还是逐条结论?字数多少?每条要不要带理由?第三条,写明质量标准和忌讳,比如“不要使用空泛的口号”“所有结论必须有数据支撑”。

低效版:S:请分析一下我们公司上个季度的经营情况。 CRISPE版:S:请分析我们公司上个季度的经营情况,输出一份500字以内的简报,包含收入、成本、利润三个板块;每个板块先给结论再给支撑数据,最后给一个需要管理层关注的预警项。整体避免空话套话,结论必须给出数据出处或计算口径。

同样一个任务,规格写得越细,模型跑偏的可能性越小。我常说的一个判断标准是:提示词里的 S,应该写成“给新同事的交接说明”,而不是“给老朋友的闲聊请求”。

3. 第一章 要素拆解(下):P、E与五要素协同(第5-6节)

3.1 第5节 P——个性与风格:控制输出的“长相”

P 模块负责输出风格。风格这个东西,在早期提示词教学里被当成“锦上添花”,用过 CRISPE 之后我才意识到它是必需品。原因很简单:同一段内容,用不同风格包装,它的可读性、说服力和后续可操作性完全不同。

同样是优化一段产品介绍,不写 P,模型就给你一段中性得不能再中性的说明文字;写了 P,输出立刻有“人味儿”:

P:请用书面商务风格,语气克制但自信,每句话不超过40字,避免形容词堆砌,多用动词和名词;格式上每条卖点单独一个短段落。

P 的写作对象包括:语气(正式/轻松/犀利/温和)、句式(短句/长句/口语化)、用词偏好(专业化/大众化)、结构偏好(结论先行/总分总),以及明确的禁忌(不要用感叹号、不要用网络用语)。这些细节看起来琐碎,但大语言模型对这种风格约束的服从度相当高,你写了,它基本就能做到。

为什么 P 这么重要?因为大语言模型的默认风格是“平衡且平庸”。它不会主动选择犀利、不会主动选择幽默、更不会主动“像某个人”。你不管它的风格,它就用最安全的中庸风格交差,这在大多数工作场景里都不是最优解。

3.2 第6节 E——实验与迭代:把单次提问变成一轮对话

E 是 CRISPE 里最有“版本意识”的模块,也是很多人完全忽略的模块。E 要做两件事:第一,主动要求多版本;第二,让模型对输出进行自我检查与自我改进。

先说“多版本”的价值。大语言模型每次生成都有一定随机性,同一个问题问两遍,输出也会有差异。这意味着单次生成结果只是“可行解空间”里的一个抽样;如果你只拿一次结果就定稿,往往会错过更好的方向。E 的常规做法是在任务末尾加一句:

E:请给出三个不同的版本,分别侧重A、B、C三个方向,并在最后说明每个版本的适用场景。

再说自我迭代。我更喜欢的用法是让模型自己“挑刺”:

E:以上内容完成后,请你自己检查一遍,指出其中逻辑不够严谨、数据可能失真、表述容易引起误解的地方,并在原有基础上输出修订版。

这个做法实测下来效果很稳定。原因是模型在“检查模式”下的注意力机制和“生成模式”不同,它确实能发现自己刚写出来的一堆毛病。有人担心“模型自己检查自己不可靠”,实测中,对语言表述、逻辑连贯、遗漏信息这类问题,它的自我纠错能力已经足够实用;至于事实性错误,则需要人工把关。

3.3 五要素合体:一份可以直接抄走的完整模板

五要素讲完,给一份可以直接套用的骨架。以后不管什么任务,都可以按这个结构填内容:

CR:你是一名【角色】,拥有【经验年限/擅长方法/服务对象】。 I:背景情况是【业务现状/数据情况/约束条件】;这份输出的读者是【具体人群】,用途是【具体决策或动作】。 S:请完成【具体任务】,输出格式为【列表/表格/短文】,篇幅约【字数】,必须包含【必备板块】,禁止出现【负面清单】。 P:请使用【语气/风格】,句式【偏好】,术语水平【面向专业读者或大众】。 E:请先给出【数量】个不同方向的版本,然后选择最优版本进行自检,指出潜在问题,并输出修订版。

我第一次用这个模板时,明显感觉到模型输出的“专业浓度”提升了一大截。当然,模板是骨架不是束缚,第二章我们专门讲怎么灵活调整。

4. 第二章 实战演练:三个场景的逐字改写全过程(第7节)

4.1 场景一:从“帮我写一份市场方案”到CRISPE版本

第一个场景是大多数人最常遇到的:写方案。先看原生态提示词,你大概率见过甚至写过——就一句话:“帮我写一份新品上市的市场推广方案。”

再看 CRISPE 改写后的完整版本:

CR:你是一名在快消行业做了十年的市场总监,操盘过至少五个新品从0到1的上市推广,熟悉社交媒体种草、渠道铺货和线下活动的组合打法。 I:我们的产品是一款主打“办公室便携”的即食燕麦杯,单价25元,目标人群是一二线城市25到35岁的白领;竞品主要是传统燕麦品牌和新兴代餐品牌;这次推广预算50万元,周期一个月,核心目标是上市首月完成300万销售额。 S:请输出一份新品上市市场推广方案,包含目标人群洞察、核心卖点提炼、渠道策略、内容策略、预算分配与时间节奏六大板块;每个板块先给结论再给理由;预算分配必须精确到万元;时间节奏以周为单位。 P:用专业商务风格,语气直接不绕弯,标题和每节开头用结论先行句式,避免“赋能”“抓手”等空泛词。 E:请先给出聚焦“线上种草为主”和“线上线下一体化”两个不同方向的方案,对比优劣后推荐一个,并指出该方案最大的两个执行风险。

这份提示词放在一起很长,但拆开看,每个部分都在回答一个具体问题。模型拿到它,等于拿到一份完整的 brief,输出的方案基本能当初稿直接用,而不是“仅作参考”。

4.2 场景二:代码解释与代码评审任务的CRISPE改写

很多程序员觉得 CRISPE 偏“文职”场景,其实在代码任务里一样好用。以最常遇到的“帮我解释这段代码”为例,没有 CRISPE 时,模型会给你一段“这段代码的功能是……”的标准答案;有 CRISPE 时,输出会完全不同。

CR:你是一名熟悉 Python 后端开发的资深工程师,擅长解释复杂代码并指出潜在问题。 I:这段代码来自一个库存管理服务的订单模块,团队里其他成员以 Java 为主,Python 经验不多;我们正在做代码评审,最关心并发安全和可维护性。 S:请逐段解释这段代码的执行逻辑,用文字描述数据流转关系,指出线程安全和异常处理方面的潜在问题,并给出两处具体的重构建议。 P:解释面向 Python 基础一般的同事,多打比方少堆术语,每个问题点用“影响—原因—改法”三段式表达。 E:说明你最大的一个顾虑是什么,以及如果由你负责重写,你会优先改哪一部分。

这套模板的价值在于:本来模型只会“翻译代码”,现在它会“评审代码”。角色、背景、任务、风格和实验五个维度,每一项都在改变输出的用途。

4.3 场景三:翻译与润色场景的CRISPE变体

最后一个场景是翻译和润色。很多人觉得这类任务太简单,不需要框架。实际上,如果只是直译,大语言模型和在线翻译工具没有本质区别;但加了 CRISPE 背景之后,它能做出“符合场景的翻译”,而不是“符合语法的翻译”。

CR:你是一名中英双母语水平的商业译者,长期翻译科技公司的对外文档和产品文案。 I:这篇文章是给海外客户的季度产品更新邮件,客户有技术背景,但不是人人都是工程师;邮件目的不是解释技术,而是强化客户信心。 S:把下面这段中文翻译成英文,保持原有结构和完整信息;术语如“分布式架构”“容灾”“灰度发布”第一次出现时给出括号注释;遇到中文里常见但英文里冗余的表达(如“进一步”“有效”),可以适当精简。 P:语气专业、克制、偏商务,避免营销化的感叹号和夸张副词;句子平均长度控制在20个单词以内。 E:翻译完成后,用一段话说明你做了哪些意译处理,以及哪些地方保持直译并说明原因。

当你把“翻译任务”升级成“带约束的翻译任务”,模型输出的译文质量基本能对齐国际商业写作的标准。

4.4 改写前后的效果对比

三个场景看下来,你会发现一个共同规律:原始提示词的问题不在“任务没写对”,而在“任务以外的信息全都没写”。CRISPE 做的最重要的一件事,就是把任务以外的信息系统地补齐了。

场景改写前的典型问题CRISPE改写后的改善
市场方案结构通用、卖点平庸、预算模糊有行业视角、有明确板块、预算可执行
代码解释只翻译字面意思,不提风险带代码评审视角,有重构建议
翻译润色语法正确但风格平淡符合场景预期,术语处理专业

5. 第二章 实战心法:常见误区、调优技巧与模板沉淀(第8节)

5.1 五个容易踩的坑

第一个坑是“把 CRISPE 当填空游戏”。五要素每项都写了,但全是空话,比如“你是一名优秀专家”“请给出高质量回答”。这种填充对输出没有约束力,是“形式上的 CRISPE”,实质上的低效提示词。每个要素一定要写入具体信息——哪怕你基于当前任务编一个合理的示例背景,都比写“高质量”三个字有用。

第二个坑是“背景信息堆砌过量”。I 模块给背景是对的,但有人会把公司简介、历史沿革、创始人故事全部贴进去。大模型对超长上下文的注意力是有限的,无关信息会稀释真正重要的指令。我的经验是:I 模块只写“完成任务所必需的最小背景集”,写完反问自己——删掉任何一句,输出会不会变差?不会变差就该删。

第三个坑是“忽略 E 模块”。很多人把 CRISPE 当成一条静态提示词写完就结束,完全不用 E。实际上 E 是 CRISPE 里最能拉开体验差距的部分。我自己用 E 的频率相当高,“请先给两个版本再自检”这种组合基本成了默认配置。

第四个坑是“一次成型,绝不迭代”。CRISPE 的第一版通常不是最好的版本。我的做法是:先按模板写一版,让模型输出,再根据输出质量反推是哪个要素写得不到位,然后针对性修改。风格不对,多半是 P 没写清楚;内容太浅,多半是 CR 的角色不够具体;方向不对,多半是 S 的任务边界有问题。

第五个坑是“照抄别人的 CRISPE 模板”。模板可以抄,但抄的是结构,不是内容。别人的背景、角色、任务和你的场景几乎不可能一致,直接复制只会得到“看起来专业、实际上错位”的输出。

5.2 调优技巧:CRISPE不是死模板

用 CRISPE 一段时间后,你会发现五要素的“权重”是可以调的。任务越复杂,CR 和 I 的权重越高;任务越简单,S 写清楚就够了。比如“帮我算一下这个 Excel 公式里的逻辑错误”这类任务,角色的影响很小,重点全在 S 和 I。

另外,CRISPE 和其他技巧可以叠加。最常见的是在 S 或 I 里加入少量示例,把你想要的样子直接给模型看一个样例,比用形容词描述一百遍都管用。还有一种叠加是“把 CRISPE 写成的提示词再喂给模型,让它优化这份提示词本身”,在处理高难度任务时偶尔会有奇效。

还有一个细节是顺序。CRISPE 的顺序本身合理:先立角色,再补背景,再下任务,再定风格,最后要求迭代。但实测下来,S 和 P 的顺序偶尔调换问题不大,只要 CR 在开头、E 在最后,就基本符合模型的注意力习惯。顺序的价值不在于“金科玉律”,而在于让信息按模型最容易消化的方式排列。

5.3 把CRISPE沉淀成自己的模板库

最后给一个长期主义建议。用 CRISPE 写提示词,最大的收获不是某一条提示词,而是形成一套自己的模板库。我自己的做法是:给每个高频场景(写方案、写代码注释、翻译、写邮件、做分析)各存一个 CRISPE 模板,每次使用后根据效果微调一次。

三个月下来,每个模板都被打磨得很有个人风格,写新提示词时基本不用从零开始,只替换 CR、I、S 里的具体内容就行。这个习惯带来的效率提升,比任何技巧都大。你可能不需要背下 CRISPE 的全部细节,但你一定需要一套“属于自己业务的 CRISPE 变体”。

最后分享一点个人体会。我见过很多人放弃结构化提示词,理由是“太麻烦了,直接说多快”。这个逻辑我一开始也认同,但用久了就发现:直接说,省的是打磨提示词的十分钟,费的是反复返工的两小时。CRISPE 真正改变我的不是某一次输出变好了,而是让我养成了“先想清楚再提问”的习惯。你现在花半小时把这两章八节的内容消化掉,往后每一次和大语言模型的对话,都会替你省回这半小时。不妨现在就挑一个手头正在做的任务,按模板写一条 CRISPE 提示词试一次——我打赌,第一次的效果就会让你回不去。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进