说个真实体验:同样一个模型,有人用它写出了一整套可落地的方案,有人来来去去只能得到一堆“正确的废话”。我有一段时间也在“废话”这一侧,总觉得模型听不懂人话。后来才意识到,问题根本不在模型,而在提示词本身——那不是一组随便组合的句子,而是一段需要设计的输入。提示词工程听起来玄乎,说白了就是搞清楚模型怎么“读”你的话,再把你的需求翻译成它最擅长处理的形式。
这篇文章不讲高深理论,我把平时自己在用的10个提示词实战技巧整理出来,附带一套可以直接改的模板库,适合所有正在跟大模型打交道的人,不管是写文案、做分析、写代码,还是试图让AI干点实际活计的朋友。我把底层机制放在前面说,是因为不搞懂这一点,后面所有技巧顶多算是碰运气;搞懂了,你会发现每条技巧都能自己生发出新变体。
1. 提示词底层逻辑:为什么同一个模型,在不同人手里是两个水平
1.1 模型不是“理解”你的话,而是在算注意力
大语言模型做的最核心的一件事,是预测下一个词。它会根据你给的所有文字,计算每个词跟其他词之间的关系,最终决定下一个最合适的词是什么。这个计算过程里有一环特别关键:注意力机制。
注意力机制决定了模型在生成下一个词的时候,会更“依赖”上下文中的哪些词、哪些句子。你写在提示词里的内容,从第一个字到最后一个字,不会被模型一视同仁地对待——前面和后面的内容,往往比中间的内容拿到更高的注意力权重;被重复提起的关键词,权重会更高;用明确指令写的句子,会比闲聊式背景信息更容易影响输出方向。
很多人把提示词工程当成“跟AI说话的艺术”,但本质上,它更像是在安排一场注意力分配。你把哪个信息放在了权重高的位置,模型输出的方向就往哪里偏。有一个类比我觉得很贴切:大型语言模型像一个拿到了一堆资料的高效率实习生,他理解能力没问题,但判断不了哪份资料更重要。你给他的资料里,重点信息藏得越深、说得越乱,他产出的东西就越容易被次要信息带偏。
1.2 上下文窗口:你的信息预算就这么多
模型一次性能处理的token是有限的,这被称为上下文窗口。窗口越大,你能塞进的信息越多,但这并不意味着塞得越多越好。当输入的文字非常长时,每一条信息能分到的注意力权重会被稀释,就像一锅水放太多盐,最后反而是咸味掩盖了你想突出的味道。
所以提示词工程的第一课,不是“把需求描述得越详细越好”,而是学习如何在有限的上下文里做信息分配。什么内容该放在最前面,什么内容该放在材料区,什么内容可以直接丢掉,这比堆砌大量形容词和背景说明重要得多。我在实际项目里经常做的一步,就是反复压缩提示词字数,同时确保核心约束一个不少。大多数情况下,删完一半字数之后,输出质量反而提升了。
1.3 从提示词工程到上下文工程:一个正在发生的认知升级
最近行业里有一个趋势挺明显——很多人开始意识到,提示词只是模型消费的上下文的一部分,真正决定输出质量的,是模型在生成那一刻看到的所有内容。系统提示词、用户消息、历史对话、外部检索出来的资料、工具返回的报错信息,这些合在一起才构成完整的上下文。
所以现在更准确的说法是上下文工程。提示词优化解决的是“这条指令怎么说”,上下文工程解决的是“模型这一轮生成的依据到底是什么”。做单一任务的时候,这两者差不太多;但一旦做多轮复杂任务,或者开始接入外部数据,你就必须切换到上下文的视角,把自己的工作重心从“雕琢一句话”变成“管理一段信息环境”。这也是本篇后面几个技巧的核心出发点。不要把自己局限在提示词的框里,模型消费的是你的整个输入,提示词只是其中影响权重最高的那部分。
2. 基础技巧1-5:把沟通意图讲清楚,模型才能不跑偏
2.1 目标前置:最重要的指令永远放在第一条
注意力机制决定了提示词开头的指令获得的权重最高。这一点直接影响提示词的结构设计:核心目标放最前面,背景材料和详细说明放中间,格式要求放后面。
反例是这样的:
我最近在一家互联网公司做运营,负责一个美食类公众号,粉丝大概5万,最近掉粉有点厉害,我想了很多办法都没效果,可能还是内容选题的问题,你能不能给我一些建议,比如什么样的选题方向比较好,要不要写探店,还是做菜谱教程,我挺纠结的,你帮我出出主意。
这句话信息量大不大?大。但模型需要从一堆背景信息中自己“猜”出你真正想要的是什么——你想要的是选题建议。实际效果基本是模型顺着“纠结”两个字把话题带跑,输出一堆泛泛的鸡汤建议。
正例是把目标放最前:
请为美食类公众号设计5个选题方向,目标群体是25-35岁的都市女性,方向需围绕“一人食”主题,要求每个方向配2个具体选题示例和1个标题参考。
两段话覆盖的信息量差不多,但输出的稳定性天差地别。写提示词跟写新闻稿的倒金字塔结构有点像:最重要的事放在第一句,然后才是补充信息。这个习惯一旦养成,你会发现模型的理解准确率有明显提升。
2.2 定义成功标准:告诉模型“做成什么样算是好”
我见过最多的问题提示词,是要求部分写得非常抽象——“请详细分析”“请深入解读”“请全面评估”。问题在于,“详细”“深入”“全面”这些词在模型那里没有可执行的边界。多详细算详细?写到什么程度算深入?模型不知道,它只能凭概率猜。
让模型知道任务完成的标准是什么,输出稳定性会好很多。试着把抽象形容词替换成可量化的要求:
| 抽象要求 | 可验证要求 |
|---|---|
| 详细分析 | 分析原因时列出5个关键因素,并按影响程度排序 |
| 深入解读 | 从背景、过程、影响、争议4个维度展开,每个维度不少于200字 |
| 全面评估 | 给出3个优点和3个风险,每个点用1句话概括观点,1句话补充论据 |
| 优化这篇文章 | 保留原意,将字数压缩到300字以内,删除所有形容词 |
这个技巧我几乎在每个项目里都用。核心逻辑是:模型非常擅长“朝着明确目标前进”,但非常不擅长“自己制定目标”。成功标准其实就是把你脑子里“什么算做好了”这个判断标准外显出来,写进提示词里。
2.3 角色设定:不是随便说一句“你是专家”就完了
角色设定确实有效,但前提是用法得当。如果你只写“你是资深的营销专家”,模型确实会切换到专家口吻,可输出的内容往往还是内容质量平平的套话。原因很简单:它训练数据里自称专家的内容太多了,光靠角色名无法筛选出高质量的那部分。
更有效的角色设定,是给角色加上具体的背景、立场、资源边界。比如:
你是一名在快消行业做了8年的电商渠道负责人,服务过3个年销售额过亿的品牌。你习惯用数据说话,不喜欢空泛的理论。现在公司给一个新锐零食品牌做电商增长方案,预算只有同行的一半,你只能在预算框架内给建议。
这个角色设定比“你是资深电商专家”强大得多。为什么?因为你在限定模型的采样范围。它不再是从所有和“专家”相关的语料里随机选一种口吻,而是被约束到具体的行业、年限、风格、条件里。这就像你请顾问,只说“请个专家来”和“请一位懂快消、做过电商、预算紧张期成长起来的操盘手来”,后者给的建议肯定更对症。
角色设定的信息量越大,输出越不跑偏。但注意这里有一个度,跟专家背景无关的冗余信息不要加,比如“你喜欢蓝色、平时喜欢跑步”这种内容,加了反而稀释注意力。
2.4 用负面约束划边界:告诉模型“不要做什么”
很多人在提示词里只写“要做什么”,不写“不要做什么”。但模型的指令遵循并不是无限容量的。你一次性给它20条要求,它执行的时候会顾此失彼;不如精简核心指令,把真正容易翻车的地方用“不要做”的形式明确排除掉。
负面约束要具体,不要泛泛而谈。“不要瞎编”对模型几乎没有约束力,因为它并不觉得自己在瞎编。更有效的写法:
- “不要引用没有在材料中出现过的数据。”
- “不要使用夸张的营销用语,如‘全网第一’‘史上最强’。”
- “不要提供超出我给定角色视角的建议。”
- “不要在每个段落最后加总结。”
我实测下来,负面约束对输出质量的影响有时候比正面指令还大。原因是模型在生成时会把你的提示词当作一种隐形的过滤器,你画出红线,它就会主动避开这些区域。但负面约束不能写太多,优先级最高的3-5条即可,写多了权重同样会被稀释。
另外说一个关键点:负面约束尽量写在提示词靠后的区域。正面目标开头定方向,负面边界收尾防越线,这个结构比较稳定。
2.5 把抽象动词换成可验证动作
“分析”“讨论”“解读”“评估”这些动词是提示词里的雷区。它们描述的是宏大的动作,但缺少可执行的细节。模型会把“分析”理解为“围绕这个主题写一些看法”,然后给你产出一篇万金油式的散文。
我把常用抽象动词整理成一套可以互换的表达,一直在自己的提示词库中使用:
| 不要写 | 可以换成 |
|---|---|
| 分析这个问题 | 列出3个主要原因,并为每个原因提供1个事实依据 |
| 总结这篇文章 | 用5个要点概括文章核心信息,每个要点不超过20字 |
| 比较这两个方案 | 从成本、周期、风险3个维度对比两个方案,最后推荐1个 |
| 提出建议 | 给出3条建议,每条附带适用场景和预期效果 |
| 评估风险 | 列出5个潜在风险,标注发生概率和影响程度 |
表面上看这只是换了个说法,实际是在改变模型的生成策略。“分析”让模型自由发挥,它会在概率空间里随机游走;“列出3个原因并按影响排序”则是一个明确的路径,模型每一步都知道自己在做什么。
这个方法也适用于日常生活里跟AI的交互。你把问题从“我该怎么办”改成“告诉我三种可能的方案,并分别说明代价和收益”,获得的答案价值完全不同。这不是表达习惯的区别,而是信息设计水平的区别。
3. 进阶技巧6-10:处理复杂任务与连续对话
3.1 先想后说:让模型走中间步骤再给答案
有时候你问一个复杂问题,模型直接给出答案,结果经常是错的或者像在糊弄。有一个技巧很实用:不让模型直接跳到最终答案,而是要求它先把思考过程拆解成几个中间步骤,再给出结论。
比如排查代码bug,你直接让它“找问题”,它的回答往往会泛泛指出几个潜在可疑点;但你这样写:
第一步,用简短的话说明这段代码的功能; 第二步,指出3个最可能导致bug的代码片段,并说明原因; 第三步,基于第二步的判断,给出修复方案; 第四步,说明修复后可能引入的新问题。
效果会有显著提升。这背后的逻辑是“思维链”的简化工程版:模型先处理一层任务,把中间结果保留在生成文本里,然后基于这些中间结果继续推导。中间步骤本身就成了上下文的一部分,相当于模型自己给自己做了二次提示词。
不要把这个技巧用在小任务上,比如问“杭州今天天气怎么样”,你不需要这些步骤。它适合中等以上复杂度、需要多维度考虑的任务。我个人的判断标准是:如果我自己回答这个问题需要想超过30秒,就用这个技巧。
3.2 少样本示例:一个例子顶十句解释
有时候你用文字怎么解释都说不清楚,这时直接给模型看例子。所谓少样本示例,是在提示词里放入2-3组输入输出的对照,让模型通过模仿来理解你的要求。
用改写句子来举例。如果你写“请把这句话改得更专业”,模型大概率会给你换上几个生僻词,反而更别扭;但如果你给一个对照:
输入:我们产品很好用。 输出:我们的产品可帮助用户在15分钟内完成数据报表制作,比传统方式节省约40%的时间。
再输入一句让它改写,它就会照着这个示例的句式、详略程度、数据使用习惯来输出。示例的作用,本质上是在告诉模型“我要的不是专业感,是这种结构和语气”。语言文字描述不清楚的地方,示例一次就能对齐。
使用示例时注意一个细节:示例质量必须高。模型会不自觉地模仿示例的风格甚至错误,你给它一个烂示例,它会学得更快。另一个细节是示例数量不必多,2-3个即可,多了会挤占提示词长度,而且收益边际递减。
3.3 大任务拆多轮:一次只让模型干一件事
在同一个提示词里要求模型完成太多事情,它是能完成的,但每一部分的完成度都会打折扣。这个问题在大任务上特别明显,比如“帮我写一份品牌年度营销方案,包含市场分析、人群洞察、渠道策略、内容计划、预算分配”。表面上模型都给了,实际上哪里都是蜻蜓点水。
我的做法是拆成多轮对话。以写方案为例,我会先用第一轮对话确认目标:“请结合品牌年度目标,把今年市场营销要解决的核心问题列成3个,并标注优先级。”模型给出这一点之后,我再基于这个结果追问:“针对优先级最高的问题,请给出主要目标人群的画像和核心需求。”每一轮都把上一轮的输出作为下一轮的输入,相当于你在带模型一步步接近目标。
这个方法之所以有效,是因为模型每个回复的处理深度是有限的。你把一个大问题拆成几个小问题依次处理,每个问题的输出都能拿到更充分的注意力。本质还是在做上下文工程:每一轮的输出都被保留到上下文里,成为下一轮更有针对性的提示词基础。
3.4 把事实材料变成提示词的真实主体
很多任务失败不是因为模型笨,而是因为它没有看见你掌握的材料。你的私域数据、公司内部文档、项目背景资料,只要不放进上下文,模型就只能“凭印象”回答,结果自然是编造的。
正确的做法是把材料直接写进提示词里。基本结构是:
材料区:将原始文件内容粘贴到提示词前半部分,并明确用分隔符号标记。 指令区:明确要求模型只能依据材料回答,不加入材料外的知识。 兜底句:如果材料中没有相关信息,请直接说明“材料中未找到相关信息”,不要自行推断。
比如:
背景材料: ——— (粘贴内容) ——— 请基于上述材料回答:…… 如果材料中没有相关信息,请直接说明,不要编造。
这里的“兜底句”是专业场景下的保命符。没有它,模型面对信息缺口时会自动调用训练数据补全,编出一个看起来可信但不一定存在的内容;有了它,模型会走“承认不知道”这条路。材料、指令、兜底,构成了一个可靠的事实问答结构。
3.5 主动重复:用多轮运行和对比来降低随机性
大语言模型的输出天然带有随机性,这不是bug,是特性。同一段提示词跑几次,结果可能不一样。很多人遇到这种情况就以为提示词写得不好,开始胡乱改,反而越改越差。
正确姿势是主动利用这种随机性。当你需要高质量方案时,不要只跑一次,跑三次甚至更多次,把几次结果放在一起对比,取长补短。你还可以在提示词里直接要求模型给出变体方案:“请输出2个具有不同侧重点的方案,一个偏稳健,一个偏激进,并说明各自适用场景。”
最极端但有效的做法是让模型扮演多个角色,对同一个问题给出不同视角的回答。比如做决策时,让它先以财务视角分析,再以用户视角分析,再以竞争对手视角分析。多视角内容放进同一个上下文之后,你可以要求它基于这些观点做综合判断,效果往往比单一提示词好得多。
说白了,抽卡策略就是在承认随机性的前提下,把随机性变成用于探索的工具。不要期待一次写对提示词,而是建立一套快速生成、对比、择优的迭代循环。
4. 模板库:可以直接套用改写的提示词结构
4.1 万能任务模板
这个模板是我最常用的基础结构,覆盖了提示词的核心要素:目标、背景、成功标准、输出格式、约束边界。做任何任务都可以先套这一版,再按需增删区块。
# 目标 【用一句话描述你希望模型完成的具体任务】 # 背景 【提供完成任务必需的材料,包括数据、原文、场景说明等】 # 成功标准 【用可验证的指标描述什么算合格,如:列出3个原因、每个要点不超过50字】 # 输出格式 【描述你希望输出的组织形式,如:用表格展示、每个方案附推荐理由、分点列出】 # 约束边界 【写2-3条负面约束,如:不要编造材料外的数据;不要使用夸张形容词】实际使用时,背景这个区块最容易被漏掉。很多人直接写目标、要格式就开始跑。你少给的每一个背景信息,模型都会用自己的猜测补上,猜错的方向就是跑偏的输出,然后你再回来返工。不如一开始多花30秒把背景写清楚。
4.2 角色专家模板
当你需要模型以特定身份给出建议时,不要只写“你是XX专家”,把专家的画像、立场、资源条件交代完整。模板如下:
你是【身份】,有【年限】经验,长期从事【行业/领域】相关工作。 你的风格是【风格描述,如:直接给结论、喜欢用数据支撑】。 当前你面临的处境是【资源、限制等情况】。 请基于以上身份,回答以下问题:【问题描述】。 注意:【可加一个关键的负面约束】。一个细节:角色模板不要写得太长,控制在100字以内足够。写太多的背景故事反而会喧宾夺主,把完成任务所需的目标信息淹没掉。角色的作用是限定方向,不是展示文笔。
4.3 内容改写模板
内容改写的难点在于“保留原意、改变风格”。模型很容易改着改着就添油加醋。改写的提示词应该锁定这几个变量:
请改写以下文本: 原文: ——— 【粘贴原文】 ——— 要求: 1. 保留所有关键信息,不变更事实和数据 2. 将风格调整为【目标风格,如:面向新手的科普风格、正式报告风格】 3. 改写后的字数控制在【具体数字】字以内 4. 不要添加原文不存在的信息这个模板不仅适用于公众号文章和邮件,写代码注释、改写周报、调整简历话术都适用。核心永远是“保留事实,调整表达”这八个字。
4.4 结构化分析模板
分析类任务最怕的是模型给你一篇散文。给它硬性结构,让它按结构走,输出的质量会稳定很多:
针对【主题】,请从以下5个维度进行分析: 1. 背景:【说明该主题产生的背景与原因】 2. 现状:【当前的主要表现,用事实或数据支持】 3. 问题:【指出3个主要问题,按严重程度排序】 4. 趋势:【未来可能的发展方向,不超过2条】 5. 建议:【针对上述问题给出具体建议,每条建议说明适用条件】 要求每个维度的回答不超过200字,不要泛泛而谈。这个模板我自己在写行业分析、写方案复盘、做竞品调研时经常用。它的优势是强制性——同一个分析维度,模型每次的输出结构不会有大的跑偏,方便你快速翻阅搜索结果、对比不同版本。
4.5 长文档摘要模板
摘要任务是很多人的刚需,但模型经常把摘要写成一堆信息点的堆砌,缺乏逻辑结构。这个模板专门优化信息结构:
以下是【文档类型】的内容,请生成摘要: ——— 【粘贴文档内容】 ——— 摘要要求: 1. 先用一句话概括全文核心观点 2. 再用一段话说明主要论点及其关系 3. 最后用列表列出关键信息,每条信息注明其在原文中的位置 4. 字数控制在全文长度的10%以内 5. 不能添加原文没有的信息里面最有用的要求是第3条——列出关键信息并注明位置。大部分摘要工具只给你压缩后的结果,你无法验证信息对不对、来源是哪。加上这个要求之后,摘要的可追溯性大大提升,后续你需要引用原文时,能快速定位。
4.6 多轮任务启动模板
大任务拆多轮时,第一轮发出去的提示词决定了后面所有轮次的走向。建议第一轮只做“目标对齐”,不要急着要输出成品。启动模板如下:
接下来我们要合作完成一项任务:【描述任务目标】。 第一轮,先做目标对齐: 1. 请复述你对任务目标的理解,如有不确定的地方请直接提出 2. 请列出你认为完成这项任务需要知道的3-5个关键信息 3. 请建议一个你觉得合理的执行步骤顺序 确认以上内容后,我们再逐轮推进,完成每一步后再进入下一步。这个模板的价值在于,它让任务的第一步变成了“建立共识”。模型把它的理解和疑问反馈给你,你及时纠正,后面的每一轮回溯成本都会大幅下降。就算你给的任务背景有疏漏,这一轮也能给你暴露出来。
5. 实测中的翻车现场与应对策略
5.1 模型一本正经地编造数据
我见过最让人头疼的问题,是模型在分析任务里自动生成一组看起来非常合理的数据——“据统计,65%的用户会在购买前查看至少3条评论”——实际上这个数字完全是它编的。模型不会标记“这是编的”,它只会用一种自信的口吻说出来。
应对方法我在3.4里说过,强调“只依据材料回答”加“不知道就直接说”。这里再补充一步操作建议:在任务完成后,专门追加一条指令:“请检查你的回答,标注哪些内容来自材料,哪些属于你的推测。”让模型自己做一次事实性自检,能在很大程度上暴露编造内容。
5.2 提示词写太全,效果反而变差
有一段时间我迷信“提示词写得越详细越好”,结果经常收到重点模糊、比例失调的回答。后来我意识到,指令遵循的容量是有限的,提示词越长,注意力越分散。
现在的做法是:把提示词分成两层。第一层是硬性约束层,只放目标、成功标准、边界红线,控制在5条以内;第二层是补充信息层,放在背景区块里,作为模型需要的材料。两层之间用明显的分隔标记分开,让模型知道“约束”和“背景”是两种不同性质的信息。
5.3 角色设定与目标冲突,模型进入“精神分裂”状态
有一次我给模型设定成“严格的风险官”角色,又要求它“给出大胆的创新方案”,它输出的内容逻辑混乱,先批判再让步再批判。问题出在角色指令与任务指令在打架。
这类冲突的解法很简单:写提示词时心里要有一个优先级表。角色设定的作用是为语言风格和视角定调,但任务指令决定输出内容的具体方向。当两者可能冲突时,在提示词里补一句“所有建议必须优先满足任务目标,角色视角仅作为分析维度的辅助”即可,模型的输出立刻恢复正常。一个对话任务,保持角色单一性也很重要,别让模型同时扮演两个立场冲突的角色。
5.4 模板不是万能药,用之前要做两件事
模板库的本质是给你一个架构,不是拿来直接复制。我每次用模板之前会做两件事:
第一,把模板里的占位符全部替换成具体内容,同时删掉不适用于当前场景的区块。比如改写任务不需要“背景”这个区块,删掉它比空着更有效。第二,正式交付前先做一次低成本的输出测试,跑一条真实数据,看输出结构是否符合预期。不合适就在这个阶段调整,而不是等整批内容生成完再返工。
模板真正的作用是让每个项目的起点高一点,而不是替你解决全部问题。要不要调参、怎么调,还是要你对着一批真实输出反复做对比才发现。
5.5 没有“一次到位”的提示词,只有“迭代出来”的提示词
说了这么多技巧,最想说的一句话是:别指望一次写出完美提示词。实际操作中,我基本遵循一条简单的迭代路径:第一版写得太长、太抽象,跑一次发现方向不对;接着压缩目标、加上成功标准,跑一次方向对了;再加上负面约束和格式要求,跑一次质量稳了;最后如果配额允许,再跑几次对比,选定最优输出。写提示词和调代码一样,早点接受“一定会返工”这个事实,心态反而稳了,效果也更好了。
写提示词这件事,归根到底是在训练自己更精确地表达需求。模板和技巧都是外挂,真正的壁垒是你对自己要做的事情有没有想清楚。你在提示词里写的每一个目标、每一条边界,都是在逼自己回答“我到底要什么”。这也是为什么很多人在整理提示词的过程中,发现自己原本的业务想法也在变得清晰。工具时代真正拉开差距的,或许从来不是工具本身,而是使用工具的人,对自己要做的事情想得有多清楚。