写 Prompt 这件事我前后折腾了至少两年。最开始我以为提示词不过就是把需求说清楚“帮我写一段文案”“给这段代码找 bug”后来才发现这种想法害了不少人。你把一句话丢给模型模型就只知道这一句话模型生成的每一次回答都只能从你提供的上下文里找线索。提示词不是“命令”而是一份“沟通需求说明书”它决定了模型在生成时能看到什么、愿意往哪个方向走、最终交给你什么样的东西。今天这篇不聊虚的理论只讲我实际用下来最有效的一套提示词拆解方法以及从零到一迭代提示词的全过程。内容适合刚刚接触大模型的初学者也适合那些已经写了很久、但总觉得输出不稳定的开发者。只要你能掌握后面那六个要素再按第三部分的三步走实操一次你写提示词的水平会比现在高出一大截。1. 提示词到底在解决什么问题1.1 提示词的本质跟模型做一次需求对齐很多人把大模型幻想成一个全知全能的助手以为它天然懂你的业务、懂你的用户、懂你的审美标准。实际上对话模型在每一次生成时只能依赖它看到的上下文来推断你要什么。你给它五句话它就基于五句话来发挥你给它五百字的背景它才能基于五百字来发挥。提示词的作用本质上是把你脑子里已经默认为“不需要说”的信息全部显式地告诉模型完成一次需求对齐。这个道理很像带实习生。你招来一个能力很强但对业务一无所知的新人只丢一句“帮我整理一下这个季度数据”然后人走了。过了一会儿他交来一份数据你一看就冒火范围不对、口径不对、格式不对。明明你心里有一套默认规则比如“只看华东区”“按产品线汇总”“输出成对比表格”可你一个字都没说凭什么都指望对方猜得到大语言模型比实习生的“猜谜能力”更弱它连常识性推测都依赖训练数据而且不会主动追问只会顺着你的话头往下编。所以提示词写不好第一责任人通常是我们自己而不是模型。还有一种常见的误解是认为提示词写一次就能用一辈子。同一个任务换成不同的需求背景、不同的目标用户、不同的质量标准提示词里的角色、背景、约束都要跟着调。哪怕只是把“给新用户写欢迎语”改成“给流失用户写召回文案”称呼、语气、利益点、篇幅、禁忌全都要重新做一次对齐。想要一次回答稳定落进你的期待区间就必须先把双方信息差抹平。1.2 为什么同一句话换个说法结果千差万别我见过不少人试过同一个问题比如“帮我写一个新年祝福”得到的结果平淡无奇再把问题改成“你是公司行政主管要替老板给全体员工写新年祝福老板的风格偏简洁务实要求提到过去一年的业绩、感谢团队、展望新一年长度控制在 80 字以内”得到的结果立刻有模有样。表面上是加了几个词实际上是改变了模型对生成空间的约束方向。这里可以做一个很粗浅但好用的理解大模型生成回答时不是从某个“标准答案”里复制而是在一个巨大的“可能性分布”里逐词采样。它每生成下一个词都会根据前面的文字计算哪些词更符合这个语境。你的提示词越是具体语境就越明确被选中概率高的词汇就越靠近你想要的表达方向。反之提示词过于开放时模型只能退回到最通用的表达习惯输出自然显得平庸、安全、四平八稳。我常跟朋友打的一个比方是提示词像调色盘。你只对画师说“画个苹果”他会画最标准的红苹果你说“画一个放在铝饭盒里的富士苹果光照来自左上角风格偏写实”他才能画出你心里那个画面。模型也是这个逻辑甚至更依赖文字描述。你描述得越准确、约束得越清晰结果越接近脑内预期什么都不说就等于把审美决策权完全交给了模型。2. 提示词拆解六个要素决定输出质量2.1 不是写得长就叫好关键是要素全我早期写提示词特别容易走两个极端。一是极度偷懒一句话了事二是拼命堆背景把几百字说明糊上去结果模型还是抓不住重点。后来我总结出一套自己的“六要素”框架每一次写提示词先在心里过一遍清单看看哪些要素没给全再动手组装。这六个要素分别是角色、背景、任务、约束、输出格式、示例。要特别说明一点六个要素不是每次都要写全。简单任务只需要任务加约束复杂任务则需要全部拉满。关键不是追求篇幅而是保证模型不缺关键信息。比如你让模型“判断这段评论是正面还是负面”角色和背景都可以省略但你最好把输出格式写成“只输出‘正面’或‘负面’”否则它会给你分析出三大段。角色告诉模型它应该以什么身份来处理这个任务。身份会影响措辞和思考视角。背景提供任务相关的现状、痛点、受众、数据让模型知道你在什么场景下提问。任务一句话说清楚你要模型做的事情动词要明确比如“写”“改”“整理”“分析”。约束限定生成内容的规则包括字数、风格、禁忌、必须包含的要点。输出格式指定返回内容的结构比如分点、表格、JSON、标题加正文。示例给出一个符合你标准的例子让模型照着这个标杆去生成。这六要素里最容易漏的是“示例”。模型确实能听懂抽象描述但对“好”和“坏”的边界仍然模糊。你只说“幽默一点”它可能幽默得很尴尬你给一个幽默的样例它的模仿能力立刻展现出来。少样本示例是提示词工程里性价比最高的一招后面我会专门展开。2.2 一个模板把要素全部收拢从问题到框架把六要素串起来可以套用一个很基础的模板角色你是[职业/身份]擅长[能力领域]。 背景[当前是什么情况 / 目标受众是谁 / 有哪些已知信息]。 任务请[具体动作]完成[具体目标]。 约束 1. 风格上要[语气/风格要求] 2. 不要出现[禁忌内容] 3. 篇幅控制在[字数和结构要求]。 输出格式[标题 正文 / 表格 / 列表 / JSON写明预期组织方式]。 示例 [输入样例 - 期望输出样例或直接给一段符合要求的示范文本]这个模板看起来简单但实际用起来非常顺。我想强调的是模板的顺序也有讲究。把角色放在开头是让模型在读到任务之前先进入一个“人设状态”背景放在角色之后任务之前是为了让它在执行任务之前先获得足够上下文约束和输出格式尽量单独列出是为了避免混在任务描述里被模型忽略。我在使用过程中发现很多人会在写任务时顺手把约束写进去比如“请你写一个关于环保的、语言生动的、不超过 200 字的演讲稿”。结果模型经常顾此失彼记住生动就忘了字数限制。原因在于这种混排把多段信息压缩在一个句子里模型的注意力不容易均匀分布。把约束拆成独立几行、每条单独成行之后遵守率明显提升。语言模型对结构化输入的处理能力比对连续长句强得多这一点越在复杂任务上越明显。3. 实操三步走从一句话到完整提示词模板3.1 第一版只有任务输出“能用但没灵魂”这部分我想用一条完整的实例带你看一遍迭代过程。假设我们要运营一款保温杯目标是在内容平台上发布种草笔记于是我们让模型帮忙写文案。第一版提示词帮我写一条保温杯的种草文案。这个提示词应该是很多人的起点。它的确能得到一段文案但结果通常非常模板化堆砌“高颜值”“大容量”“保温效果很好”这种没有辨识度的卖点开头“今天给大家分享一款超好用的保温杯”结尾“姐妹们冲就完了”除了语气是小红书味内容几乎没有差异度。更麻烦的是因为模型不知道你的产品参数、目标人群和平台规则它只能用训练数据里最常见的保温杯特征来填充最后你还要花大量时间自己改。第一版的问题不是模型不努力而是信息太稀薄。它不知道这款杯子的核心卖点是 24 小时长效保温还是轻便不知道受众是通勤上班族还是户外露营党不知道你想秀颜值还是谈功能性不知道平台要求避免哪些夸张用语。所有“关键默认值”都缺失时模型回到最安全也最平庸的表达几乎是必然结果。3.2 第二版补上角色和背景输出开始对味第二版提示词我先把角色和背景这两个要素补上你是一位资深生活方式编辑擅长写种草笔记特别懂年轻女性用户的喜好。 背景我们要推一款主打“长效保温”的保温杯核心卖点是 普通保温杯 6 小时后水温可能降到 50 度以下这款能做到 24 小时仍保持 60 度以上。 杯身重量只有 220 克非常轻外观是低饱和度的莫兰迪色系。 目标用户是城市通勤族和周末露营的年轻人她们在意实用也看重杯子是否好看、拍照是否出片。 任务请为这款保温杯写一条内容平台的种草文案突出长时间保温、轻便、颜值这三件事。这一版明显比第一版好写很多模型不再泛泛而谈开始围绕“24 小时”“220 克”“莫兰迪”这些具体信息组织内容语气也更贴近生活方式博主的表达。但如果你拿这一版的输出去发布还是会发现两个问题一是结构比较随意有时开头很突然有时结尾没有互动感二是它容易“用力过猛”比如为了强调保温直接写“保你喝一口就记住一辈子”这种表达虽然生动但放在真实产品文案里可能夸张过头。问题出在哪里背景给了任务也明确了但缺了“约束”和“输出格式”。模型的创作自由度依旧太大。它不知道篇幅应该控制在多少字以内不知道是否要用第一人称不知道必须分成几段也不清楚平台对夸张宣传的限制。留给模型的自由裁量空间越大结果就越不可控。3.3 第三版结构化完整模板直接可用第三版我把六要素全部补齐尤其是约束和输出格式。写出来的提示词会长一点但稳定性非常高角色你是一位资深生活方式编辑写作风格细腻但不煽情擅长把产品卖点融入具体场景而不是单纯堆功能参数。 背景我们推出一款主打“长效保温”的保温杯核心卖点如下 - 保温性能普通保温杯 6 小时水温降至 50 度以下这款在 24 小时后仍能保持 60 度以上 - 便携性空杯重量 220 克约等于一个苹果 - 颜值低饱和莫兰迪色系哑光漆面适合拍照。 目标用户是城市通勤族和周末露营的年轻人她们希望杯子既实用又能成为日常穿搭的一部分。 任务请创作一条内容平台风格的种草文案目标是激发用户想拥有这款杯子的冲动。 约束 1. 用第一人称“我”有真实使用的感觉 2. 正文分三段场景带入、核心体验、互动收尾 3. 全文不超过 180 字 4. 不要罗列参数不要写“非常优秀”“绝绝子”这类空泛词汇 5. 不能出现“最”“第一”“极致”等绝对化表述。 输出格式 标题一句不超过 20 字的吸引性标题。 正文三段每段不超过 60 字段间空一行。 结尾互动一个问题引导评论区留言。 示例仅参考风格不要直接搬运内容 标题通勤路上有它一天的温水都被安排明白了 正文 每天早上出门前把热水装进杯子晚上加班回来打开温度还烫嘴。以前用的杯子保温半天就凉这支 24 小时下来依旧很能打。 重量比想象中轻塞进书包侧袋几乎感觉不到存在磨砂质感的莫兰迪色也很衬手随手一放就很出片。 最近连着背了一周最明显的变化是喝水这件小事竟然变勤快了。 结尾互动你们的通勤水杯一般是什么颜色的如果你拿这一版和第一版对比会发现模型生成的文案几乎可以直接发布有场景感、有细节、有互动引导同时没有踩绝对的广告法红线。整套迭代过程其实只多花了两分钟但产出质量完全不在一个层次。我建议你第一次写提示词时按照这个流程走先写一版最省事的然后看输出找缺陷再逐个补要素。不要一开始就追求完美因为只有看到模型“跑偏”的样子你才知道自己到底漏了什么关键信息。补要素的过程其实就是训练你对提示词敏感度的过程。4. 常见问题与排查技巧实录4.1 角色设定失效因为你只贴标签没定义性格写提示词时我经常看到“你是资深营销专家”“你是顶级文案”这种角色设定。这种写法的确比没有角色强但它非常不稳定。有时候模型会用专家口吻分析框架有时候又会跳出角色变成通用助手甚至直接无视身份。问题通常出在你只给了角色头衔没给角色性格和表达方式。模型接到的信息只是“专家”两个字它不知道这位专家是学院派还是实战派是犀利毒舌还是温和耐心。我现在的做法是在角色后面紧跟一句对这个角色的能力侧写比如“你是一位深耕消费品行业 8 年的独立顾问风格务实不喜欢空话和黑话给建议时习惯先用一句话说结论再展开理由”。角色有了具体行为特征模型就更容易持续待在角色里。另一个提升角色稳定性的技巧是让模型在执行任务时“说人话”。你可以在角色之后加一句“请始终保持以这个身份作答不要提及你是 AI”。有些模型天然倾向承认自己是 AI一旦它进入这种反思状态角色扮演就会断线。明确禁止它会破坏氛围可以在很大程度上避免这种出戏。4.2 输出格式跑偏原因往往藏在“负面清单”里很多人都有这种遭遇明明说了“请用表格输出”模型却给了一堆文字说了“每个要点不超过 30 字”它非要写成 300 字。只要你跟它较劲就会发现光靠“要什么”不够你还得告诉它“不要什么”。输出格式类崩溃处理方式很简单在约束里加大负面清单。负面清单要写具体行为而不是写抽象感受。比如“不要啰嗦”太模糊模型不知道什么叫啰嗦改成“不要在每个要点展开超过 2 句话”就清晰可执行。还比如“不要使用营销黑话”如果你不加负面清单模型大概率会给你来一段“赋能、沉淀、抓手”。这些指令本身并不复杂但它们解决的不是“模型不会”而是“模型不知道该按你的标准收敛”。负面清单还有一个隐藏好处它能顺带充当质量过滤器。比如写文案时控制“不要出现绝对化用语”等于主动规避合规风险写分析报告时写明“不要用‘我觉得’开头要基于数据说话”等于把主观臆断排除在外。越早把这类规则写进去越少需要你后期返工。4.3 内容太干、车轱辘话来回说试试“举一个例子再动笔”我接手过很多别人的半成品提示词最常见的问题是任务描述写得很清楚、也很长但生成内容依然干巴巴。比如“请介绍一下智能家居的发展趋势”模型会给你列出一、二、三、四每一段都是概括性判断读完找不到一个有价值的细节。这其实是模型的“懒汉模式”当它不知道你要多深、多具体时就会用最宏观的语句糊弄过去。破局思路是加“示例”和“要求具体化”。先给模型一个标准让它知道“什么叫写得好”。比如你可以告诉它“每一段必须包含一个真实可感知的场景比如用户回到家灯自动亮起、空调提前调好温度”再让它“针对发展趋势中的至少三点各举一个应用案例”。有了具体样板模型输出的抽象概括会大幅减少。我在跟团队协作时经常强调一个原则想要高质量输出先展示低质量样本。什么意思你可以在提示词末尾加一句“补充请先分析现有回答的不足再重新生成一版”。模型不仅善于模仿还善于自我审视。当它先意识到自己刚才的回答太泛再动笔的时候输出会明显更有细节。这个技巧很多人不知道但真的屡试不爽。4.4 一张排查表快速定位提示词哪里出了问题有时候说不清楚哪里不对我建议用这张速查表对照一下。它覆盖了我遇到过的绝大多数提示词失效场景现象优先排查方向常见解法回答很泛、像什么都没说背景缺失模型缺少约束语境补充设定、受众、目标和限制条件风格不符合预期只给了形容词没给示例加入一至两个风格符合的示范文本输出结构乱没指定输出格式明确“分几段”“每段写什么”“用什么分隔符”脱离角色只贴标签没定义行为特征补上角色的性格、语气、原则并禁止承认自己是 AI内容雷同、没有亮点任务太宽泛没有明确差异化要求加负面清单明确“不要写哪些内容”字数控制失效约束写得太隐晦改成“全文不超过 160 字每段不超过 60 字”逻辑前后矛盾告知了多条互相冲突的要求检查角色、约束、背景之间是否有冲突一次对下次不对提示词随机参数过高降低生成随机性或固定随机种子这张表不用死记你只要形成一种条件反射出问题先想六要素里缺了什么大概率能解决八成问题。如果补完要素还是不行就进一步检查是不是要素之间相互矛盾。举个例子你要求“既简洁又详尽”这就是一个矛盾指令模型无论如何都会摇摆。像我实践中经常看到的“不要太长但要有细节”其实也应该翻译成更精确的“全文 150 字以内但要给出至少一个具体场景”。把矛盾翻译成明确边界模型的表现会立刻改观。5. 进阶心法从“会写一句”到“稳定复现”5.1 示例一给输出立刻稳少样本示范的威力前面反复提“示例”这里专门展开。少样本示例的意思是与其用形容词描述期望不如直接在提示词里放一两组“输入样例加期望输出样例”让模型照着用。它对模型的约束力通常远远大于你写三行描述。为什么因为抽象描述可能对应很多种解释但具体示例是唯一确定的模型最擅长的事情之一就是模式模仿给它一个高质量样例它会自动提取其中的结构、语气、详略安排。举一个我常用的写法。假设我要模型帮我把口语化描述改写成工作日志我会在提示词里放这样一组输入今天和研发聊了一下确认了新版首页的改版方案下周开始动工预计两周完成。 输出今日应产品需求与研发团队对齐新版首页改版方案明确上线节点与联调分工。项目于下周一正式启动开发周期预计两周。只给这一组示例模型立刻明白要把口语改成书面语要把人称和模糊表达转化成项目术语要保留时间点。这个理解能力比你写“请将口语改成正式书面语不要有废话注意时间信息”要可靠得多。不要只给一个示例对于风格波动比较大的任务给两个不同角度的示例效果比一个更稳。5.2 复杂任务别硬塞把问题拆成几步走很多人写提示词恨不得一个任务里塞下所有诉求比如“帮我分析这个项目的风险给出解决方案再写一封给老板的汇报邮件建议提到成本和时间线”。单次生成很难同时把三件事都做到位模型会拆了东墙补西墙最后每个部分都在及格线以下。这时候应该把任务链路拆开先说分析风险只让模型输出三条关键风险每条带一个理由再基于风险列表让模型给出两条应对方案并注明所需成本和时间最后把前面的结论放进一个固定模板生成给老板的邮件。每一步的输入来自上一步的输出提示词反而更短但每个环节质量都可控。这就像做饭你不会把菜没洗、没切就直接丢锅里炖工序分开结果才稳定。这种“拆多步走”的方式还有一个额外的好处你可以在中间环节插入人工判断。比如模型分析出的风险里有一条明显不符合实际项目情况你可以直接删掉再进行下一步生成避免错误一路传导。大模型当前的能力还做不到一次完成高难度的多阶段任务把复杂任务分步化、流程化是提升稳定性的核心手段。5.3 把提示词当代码维护版本、测试、复用提示词写多了以后我发现它跟代码是一样的要版本化要测试要复用。我在本地维护了一个提示词库每个提示词文件包含四部分用途说明、完整模板、效果示例、修订记录。每次改完一版我不会直接覆盖而是保存成 v1、v2、v3并记录这一版解决什么问题、带来什么新问题。看起来有点笨重但长期积累下来这套提示词库的价值远超我的想象。为什么要刻意识别提示词是“会写”还是“能复用”因为一次性写好的提示词换一个场景、换一个目标往往就不灵了。如果你把提示词拆成模块比如“文案语气模块”“格式控制模块”“角色定义模块”下次遇到新任务时就可以像拼积木一样组装。复用本身不是目的目的是减少重复调试、提高输出质量的稳定性。内部版本化管理还能帮你判断到底是哪一次改动让结果突然变好或变坏。如果直接在当前版本上小改你很难判断提升来自哪一句版本分开保存后你很容易总结出规律。比如我后来发现“输出格式单独成段”这条改动让格式遵守率提高了很多而“角色描述从 10 个字扩到 50 个字”这个改动明显让文案风格更鲜明。没有版本对比这类经验很难沉淀下来。最后分享一个我最近养成的习惯。每次写提示词前我会先问自己三个问题模型知道我是谁吗模型知道我想要什么吗模型知道什么叫“合格”吗如果这三个问题里有一个答案模糊我就先不动手生成而是把模糊的部分补清楚。做了一段时间以后我明显感觉自己写提示词的速度变快了因为我已经不需要反复试错来试探模型的理解边界而是习惯在提问之前就把需求想透。这个习惯也是我想推荐给每个还在跟提示词较劲的人起点很低但收益远比想象中持久。