1. 为什么“会写提示词”正在变成一项硬技能
我大概是从两年前开始系统性地整理自己的提示词库的。起因很简单:同一个模型,同一个问题,我写出来的答案跟别人写出来的答案,质量差距大到像是两个不同的产品。后来我花了不少时间复盘,发现问题几乎全部出在“怎么问”上,而不是“模型行不行”。
AI提示词,说白了就是你跟大模型对话时输入的那段文字指令。它可以是简单的一句话,也可以是一套包含角色设定、任务拆解、输出格式、约束条件的结构化文本。它的核心作用只有一个:把模型脑子里那些泛化的、模糊的、平均化的知识,精准地引导到你需要的那个具体方向上。
这件事能解决什么问题?我举几个实际场景你就明白了。你想让AI帮你写一段清理C盘垃圾的操作步骤,如果你只说“帮我清理C盘”,它大概率会给你一段泛泛的“打开磁盘清理工具、删除临时文件”之类的通用回答,甚至可能编出一些不存在的菜单路径。但如果你把系统版本、当前磁盘占用情况、你已尝试过的方法、你希望它输出什么格式都写清楚,它给出的东西直接就能用。再比如你想让AI帮你分析一只股票的财报数据,你不给它限定分析框架和数据来源,它就会开始“瞎编”——这是很多人踩过的坑。
这套东西适合谁?我的判断是:只要你在日常工作里会用到大模型,不管你是写代码的、做运营的、搞财务的、还是单纯想用AI帮自己处理生活琐事的,都值得花时间把提示词这件事搞明白。它不是什么玄学,也不是只有技术背景的人才能掌握的东西。它更像是一门“把需求说清楚”的手艺,只不过你的沟通对象换成了一个理解力很强但需要明确边界的系统。
接下来我会从设计思路、核心细节、实操过程、常见问题几个层面,把我自己积累的经验完整地拆一遍。文章会比较长,但每一段都是我实际用过、踩过坑之后沉淀下来的东西。
2. 提示词的整体设计思路与方案选型
2.1 先搞清楚“提示词工程”到底在工程什么
很多人一上来就去找“AI提示词大全”,想直接抄一套模板用。这个思路不能说错,但效率很低。因为提示词的本质不是模板,而是信息传递的结构。你抄来的模板,换一个模型、换一个任务场景,效果可能完全不一样。
我自己总结下来,一条高质量的提示词,本质上在解决四个层面的信息传递问题:
- 角色层:你希望模型以什么身份来回答?是资深程序员、财务分析师、还是耐心的客服?角色设定会直接影响模型调用哪部分知识、用什么语气、关注哪些细节。
- 任务层:你具体要它做什么?是生成、分析、改写、翻译、还是做决策建议?任务描述越具体,模型的输出越聚焦。
- 约束层:有什么限制条件?字数、格式、语言风格、不能出现的内容、必须包含的要素。这一层是防止模型“跑偏”和“瞎编”的关键。
- 示例层:如果你能给出一两个输入输出的样例,模型的理解准确率会大幅提升。这在做结构化输出(比如JSON、表格)时尤其明显。
这四个层面不是每一条提示词都必须全部包含,但你在写的时候脑子里要有这个框架。缺了角色层,输出可能太泛;缺了约束层,输出可能太长或者格式不对;缺了示例层,模型可能在格式上反复出错。
2.2 不同任务场景下的提示词策略差异
我把自己常用的提示词按任务类型分了几类,每一类的设计重点完全不同:
| 任务类型 | 设计重点 | 典型场景 |
|---|---|---|
| 生成类 | 角色设定+输出格式+风格约束 | 写文案、写代码、写短剧脚本 |
| 分析类 | 分析框架+数据边界+防瞎编约束 | 股票分析、财报解读、数据洞察 |
| 操作类 | 步骤拆解+环境说明+验证方法 | 清理C盘、配置环境、排查故障 |
| 转换类 | 输入格式+输出格式+转换规则 | 翻译、格式转换、代码重构 |
| 创意类 | 风格描述+参考示例+自由度控制 | 漫剧分镜、猫娘角色对话、故事创作 |
拿“AI做小程序提示词描述”这个场景来说,它属于典型的生成类+操作类混合任务。你不能只说“帮我写一个小程序”,你得告诉它:小程序的功能是什么、目标用户是谁、用什么技术栈、需要哪些页面、每个页面的交互逻辑是什么、数据存储方案是什么。这些信息给得越全,它生成的代码框架就越接近可用状态。
再拿“AI股票分析提示词”来说,这属于分析类任务,最核心的约束是防止模型编造数据。我的做法是在提示词里明确写:“只基于我提供的数据进行分析,如果数据不足以支撑某个结论,直接说明数据不足,不要自行补充假设数据。”这一句话就能把瞎编的概率降下来一大半。
2.3 为什么我不推荐“万能提示词模板”
市面上流传着很多所谓的“万能模板”,格式大概是“你是一个XX专家,请帮我XX,要求XX”。这种模板在简单任务上确实能用,但遇到复杂任务就会暴露问题。
原因在于,复杂任务往往需要多轮交互和上下文管理。你不可能用一条提示词就让模型完成一个完整的项目分析,你需要把任务拆成多个步骤,每一步的输出作为下一步的输入。这时候,固定模板反而会限制你的灵活性。
我的建议是:把模板当作起点,而不是终点。你先用模板跑一遍,看输出哪里不对,然后针对性地调整角色描述、补充约束条件、增加示例。迭代两三轮之后,你就有了一套针对自己常用场景的定制化提示词。
3. 核心细节解析与实操要点
3.1 角色设定的写法与常见误区
角色设定是提示词里最容易写、也最容易写错的部分。很多人写角色就是一句“你是一个专业的XX”,这其实信息量很低。有效的角色设定应该包含三个要素:专业身份、经验水平、行为风格。
举个例子,对比下面两种写法:
写法A:你是一个程序员,帮我写一个Python脚本。
写法B:你是一个有十年经验的Python后端工程师,擅长写简洁、可维护的脚本,习惯用标准库解决问题而不是引入第三方依赖。现在我需要一个脚本,功能是扫描指定目录下所有超过100MB的文件并输出列表。
写法B的输出质量明显更高,因为它限定了经验水平(十年)、行为风格(简洁、优先标准库)、以及具体的任务边界。
常见误区有几个:一是角色设定太宽泛,比如“你是一个助手”,这等于没设;二是角色设定与任务不匹配,比如让一个“创意文案专家”去写数据库查询语句;三是角色设定过于冗长,写了三百字还没进入正题,模型反而会抓不住重点。
我的经验是,角色设定控制在两三句话以内,把最关键的身份特征和行为约束说清楚就够了。
3.2 任务描述的颗粒度控制
任务描述的颗粒度,直接决定了模型输出的可用性。太粗,输出太泛;太细,模型可能被限制死,失去发挥空间。
我通常用“目标+范围+排除项”的结构来控制颗粒度:
- 目标:你最终要得到什么?一份报告、一段代码、一个方案、还是一个决策建议?
- 范围:这个任务涉及哪些方面?比如做竞品分析,范围可能是“只分析国内市场、只关注近两年的产品动态”。
- 排除项:明确不要什么。比如“不要给出泛泛的建议,不要重复我已经知道的信息,不要编造数据”。
拿“如何写提示词让AI帮我清理C盘垃圾”这个具体需求来说,我会这样写任务描述:
我的Windows 11系统C盘剩余空间不足10GB,已经用过系统自带的磁盘清理工具,效果不明显。请给我一套分步骤的清理方案,要求:每一步都说明具体操作路径和预期释放空间大小;优先处理安全无风险的项目;对于有风险的操作要明确标注风险等级和备份建议;不要推荐第三方付费软件。
这段描述里,目标(清理方案)、范围(Windows 11、已用过自带工具)、排除项(不推荐付费软件)都很清晰,模型输出的东西基本可以直接照着做。
3.3 输出格式约束的实操技巧
输出格式约束是很多人忽略的一环,但它对实际使用体验的影响非常大。你让模型输出一段文字,它可能给你一大段;你让它输出表格,它可能给你一个格式混乱的文本。明确格式约束,能省掉大量后期整理的时间。
我常用的格式约束方式有几种:
- 指定结构:比如“用Markdown表格输出,包含三列:问题、原因、解决方案”。
- 指定长度:比如“每个要点不超过50字”、“总字数控制在800字以内”。
- 指定语言风格:比如“用口语化的中文,不要用专业术语”、“用正式的技术文档风格”。
- 指定代码格式:比如“代码块标注语言类型”、“关键行添加注释”。
有一个小技巧:如果你需要模型输出结构化数据(比如JSON),最好在提示词里给一个输出示例。这比任何文字描述都管用。模型看到示例之后,格式准确率能到95%以上。
3.4 防止AI瞎编的约束写法
“防止AI瞎编的提示词”是热搜里的高频需求,我自己也在这上面踩过不少坑。模型瞎编的表现形式主要有几种:编造不存在的数据、编造不存在的API或函数、编造不存在的文献引用、在信息不足时强行给出确定结论。
我的应对策略是在提示词里加入三层约束:
第一层是数据来源约束:“只基于我提供的数据进行分析,不要引入外部数据。”
第二层是不确定性声明约束:“如果信息不足以支撑结论,直接说明‘数据不足,无法判断’,不要给出推测性结论。”
第三层是验证要求约束:“对于你给出的每一个关键结论,说明它的依据是什么。”
这三层约束加进去之后,模型瞎编的概率会显著下降。但要注意,约束太多也会让模型变得过于保守,该给建议的时候不给。所以要根据任务类型调整约束强度:分析类任务约束要严,创意类任务约束可以松。
4. 实操过程与核心环节实现
4.1 从零开始写一条完整提示词的流程
我拿一个具体例子来演示完整的提示词编写流程。假设我需要AI帮我写一套“AI短剧整套提示词”,用于生成短剧的分集大纲和台词。
第一步:明确任务边界。我要的是一套可复用的提示词模板,不是直接生成某一部短剧的内容。这套模板需要覆盖:角色设定、世界观构建、分集大纲生成、台词生成、冲突设计。
第二步:拆解子任务。整套提示词需要分成几个模块:一个总控提示词(设定整体风格和规则),一个分集大纲生成提示词,一个台词生成提示词,一个冲突优化提示词。
第三步:为每个子任务写初版提示词。以分集大纲生成为例,初版可能是这样的:
你是一个短剧编剧,擅长写快节奏、强冲突的都市短剧。请根据我提供的角色设定和故事背景,生成一集短剧的大纲,包含:开场钩子、主要冲突、转折点、结尾悬念。每集时长控制在2分钟左右。
第四步:测试并迭代。跑一遍之后,我发现输出的大纲节奏偏慢,冲突不够密集。于是我在提示词里补充约束:“每30秒必须有一个小冲突或信息反转”、“开场前5秒必须出现核心矛盾”。再跑一遍,效果明显改善。
第五步:固化模板。把迭代后的提示词保存下来,标注适用场景和注意事项,下次直接调用。
这个流程看起来简单,但每一步都有细节。比如第三步写初版的时候,不要追求一次到位,先跑通再优化。第四步测试的时候,要记录每次修改对应的输出变化,这样才能知道哪个约束起了作用。
4.2 参数选择与计算过程实录
提示词里涉及参数的地方,我举两个实际例子来说明计算过程。
例子一:清理C盘的空间预估。我在提示词里要求模型给出每一步的预期释放空间。模型给出的估算逻辑是这样的:Windows临时文件夹通常占用2-8GB,系统更新缓存通常占用3-10GB,休眠文件大小约等于内存容量的40%-75%。我的机器是16GB内存,休眠文件大约6-12GB。这些数字不是模型编的,而是基于系统常见配置的统计范围。我在提示词里补充了“我的内存是16GB”,模型就能给出更准确的估算。
例子二:短剧台词的字数控制。短剧一集2分钟,正常语速大约每分钟200-250字,所以一集台词总量在400-500字左右。如果一集有3个场景,每个场景大约130-170字。我在提示词里写“每集台词总量控制在450字左右,每个场景不超过150字”,模型输出的台词长度就非常稳定。
这两个例子的共同点是:你给模型的计算依据越明确,它的输出就越精确。你不给依据,它就只能按“平均情况”来估,误差自然大。
4.3 多轮交互中的上下文管理
复杂任务往往需要多轮对话。比如你先让模型生成短剧的角色设定,然后基于角色设定生成大纲,再基于大纲生成台词。每一轮都需要把上一轮的输出作为下一轮的输入。
这里有一个关键技巧:在每一轮的开头,用一句话总结上一轮的核心结论。比如:“基于上一轮确定的三个角色(张总、小李、神秘人)和故事背景(公司内斗),现在请生成第一集大纲。”这样做的好处是,即使对话很长,模型也不会“忘记”前面的设定。
另外,如果对话轮次太多,模型可能会开始“漂移”——输出的风格和设定逐渐偏离最初的要求。我的做法是每隔几轮就重新粘贴一次核心设定,或者在提示词里加一句“请始终保持与最初设定一致”。
4.4 提示词库的整理与复用
我自己的提示词库是按“场景+任务类型”来组织的。每个提示词文件包含几个部分:适用场景说明、提示词正文、使用注意事项、迭代记录。
举个例子,我的“代码生成”类提示词库里有一条是专门用来生成Python数据处理脚本的。提示词正文大概是这样:
# 提示词正文示例(实际使用时是自然语言,不是代码) 你是一个有八年经验的Python数据工程师,擅长用pandas和numpy处理结构化数据。 任务:根据我提供的需求描述,生成一个完整的数据处理脚本。 约束: - 使用标准库和pandas/numpy,不引入其他第三方库 - 每个函数添加docstring - 关键步骤添加行内注释 - 输出格式为可直接运行的.py文件内容 - 如果需求中有不明确的地方,先列出需要确认的问题,不要自行假设这条提示词我用了大半年,迭代了四五次,现在基本能覆盖80%的日常数据处理需求。迭代记录里我标注了每次修改的原因,比如“第三次迭代增加了‘不自行假设’的约束,因为之前模型经常在需求不明确时自己编逻辑”。
5. 常见问题与排查技巧实录
5.1 模型输出太泛、没有针对性怎么办
这是最常见的问题。模型给了一堆正确的废话,看起来什么都说了,实际上什么都没说。排查思路如下:
| 可能原因 | 排查方法 | 解决方案 |
|---|---|---|
| 任务描述太宽泛 | 检查提示词里有没有具体的范围限定 | 补充“只针对XX场景”、“只考虑XX因素” |
| 缺少角色设定 | 检查有没有告诉模型以什么身份回答 | 添加专业身份和经验水平描述 |
| 缺少排除项 | 检查有没有说“不要什么” | 明确列出不需要的内容类型 |
| 缺少示例 | 检查有没有给输入输出样例 | 添加一两个具体示例 |
我自己的经验是,输出太泛的时候,九成以上的原因是任务描述不够具体。你让模型“分析一下这个问题”,它只能给你一个泛化的分析框架。你让它“基于我提供的三组数据,分析A因素对B指标的影响,并给出至少两个可能的原因”,它就能给出具体得多的内容。
5.2 模型编造数据或事实怎么排查
模型编造内容的表现形式很多,排查的时候要分情况处理。
如果是数据编造,比如你问它某公司2024年的营收,它给了一个具体数字但你没提供数据来源,那它大概率是编的。解决方案是在提示词里加一句:“对于所有数据,必须注明来源。如果我没有提供数据来源,直接说明‘无数据来源,无法提供’。”
如果是操作步骤编造,比如它告诉你“打开设置-高级选项-系统优化-磁盘清理”,但你的系统里根本没有这个路径,那就是编的。解决方案是要求它“只使用Windows 11标准功能,不要编造不存在的菜单路径。如果不确定路径,说明‘请以实际系统为准’。”
如果是引用编造,比如它给了一篇论文的标题和作者,但你查不到,那也是编的。解决方案是“不要提供具体的文献引用,除非我明确要求并且提供了文献列表。”
5.3 提示词越写越长但效果没提升
这是一个很典型的误区。很多人觉得提示词写得越长越详细,效果就越好。实际上,提示词的质量取决于信息密度,而不是字数。
我见过有人写了两千字的提示词,里面一半是重复的约束和冗余的描述。模型处理长提示词的时候,注意力是会被分散的。关键信息淹没在大量文字里,效果反而下降。
我的建议是:每一条约束都要有明确的理由。如果你写了一句“请用专业的语言回答”,但你的任务其实是给小白看的教程,那这句话就是有害的。写完之后通读一遍,把那些“写了也行不写也行”的句子删掉,只保留真正影响输出的内容。
5.4 不同模型对同一提示词的反应差异
同一个提示词,在不同模型上的表现可能差别很大。这跟模型的训练数据、对齐策略、上下文窗口大小都有关系。
我的应对方式是:为常用模型分别维护提示词版本。比如我常用的两个模型,一个对角色设定很敏感,另一个对输出格式约束更敏感。同样的任务,我在第一个模型上会花更多篇幅写角色描述,在第二个模型上会花更多篇幅写格式要求。
另外,上下文窗口大小也很关键。有些模型支持很长的上下文,你可以把大量背景信息一次性塞进去;有些模型上下文较短,你就需要把信息压缩,只保留最核心的部分。
5.5 常见问题速查表
| 问题现象 | 最可能的原因 | 快速修复 |
|---|---|---|
| 输出太短 | 缺少长度约束 | 加“不少于XX字”或“详细展开每个要点” |
| 输出太长 | 缺少长度上限 | 加“总字数控制在XX以内” |
| 格式混乱 | 缺少格式示例 | 给一个输出样例 |
| 内容跑偏 | 缺少范围限定 | 加“只讨论XX,不要涉及XX” |
| 编造数据 | 缺少来源约束 | 加“只基于我提供的数据” |
| 语气不对 | 缺少风格描述 | 加“用口语化/正式/幽默的风格” |
| 重复啰嗦 | 缺少去重约束 | 加“不要重复我已经说过的内容” |
| 不敢下结论 | 约束过严 | 放宽不确定性约束,允许合理推测 |
6. 进阶技巧:从“能用”到“好用”的几个关键跃迁
6.1 用“思维链”引导模型分步推理
对于复杂任务,直接让模型给答案,它可能会跳步或者逻辑不连贯。我的做法是在提示词里要求它“先列出推理步骤,再给出结论”。比如做股票分析的时候,我会写:“请按以下步骤分析:第一步,列出关键财务指标;第二步,对比行业平均水平;第三步,分析变化趋势;第四步,给出综合判断。每一步都要有数据支撑。”
这个技巧在分析类任务上效果特别明显。模型被强制分步之后,逻辑漏洞会少很多,你也能清楚地看到它的推理过程,方便判断哪些结论可信、哪些需要进一步验证。
6.2 用“反向提示”排除不想要的输出
反向提示就是明确告诉模型“不要做什么”。这在创意类任务里特别有用。比如写短剧台词的时候,我会加一句:“不要写过于文艺的台词,不要用书面语,不要出现超过20个字的长句。”这几条约束一加,输出的台词立刻就有了短剧那种快节奏、口语化的感觉。
反向提示的关键是具体。你说“不要写得太差”,模型不知道什么叫“差”。你说“不要用‘然而’、‘因此’、‘综上所述’这类连接词”,模型就知道该怎么做了。
6.3 用“角色扮演+场景模拟”提升输出质量
这个技巧适合需要特定语气或特定知识背景的任务。比如你要生成“AI猫娘提示词”,你可以这样写:“你现在扮演一个猫娘角色,性格活泼、有点傲娇、说话带‘喵’字尾。你的知识范围包括日常聊天、简单的情感建议、以及一些轻松的话题。当遇到你不确定的问题时,用猫娘的语气说‘这个喵不太清楚呢’。”
这种角色扮演+场景模拟的写法,能让模型的输出风格高度一致,特别适合需要人设稳定的场景,比如虚拟角色对话、游戏NPC台词生成等。
6.4 提示词的版本管理与迭代记录
我强烈建议每个经常使用的提示词都做版本管理。我的做法是用一个简单的表格记录每次修改:
| 版本 | 修改内容 | 修改原因 | 效果变化 |
|---|---|---|---|
| v1.0 | 初版 | - | 输出偏泛 |
| v1.1 | 增加角色经验描述 | 提升专业性 | 输出更具体 |
| v1.2 | 增加输出格式示例 | 解决格式混乱 | 格式准确率提升 |
| v1.3 | 增加防瞎编约束 | 解决数据编造 | 编造率下降 |
这个习惯看起来麻烦,但长期来看非常值得。因为提示词的优化是一个持续的过程,没有记录的话,你很容易重复踩同一个坑。
7. 我个人的一些实操体会
写了这么多,最后分享几个我在实际使用中体会最深的点。
第一个体会是:提示词的质量上限,取决于你对任务本身的理解深度。如果你自己都不清楚要什么,模型更不可能知道。所以写提示词之前,先花几分钟把需求想清楚,比急着敲键盘有用得多。
第二个体会是:不要追求“一次完美”。我见过很多人写提示词的时候反复修改,迟迟不肯发给模型测试。其实最快的优化方式就是先跑一遍,看输出哪里不对,然后针对性修改。迭代三轮的效果,远好于闭门造车写三小时。
第三个体会是:建立自己的提示词库,比收藏一百篇“提示词大全”有用。网上的模板可以参考,但真正好用的提示词一定是针对你自己的场景定制出来的。我现在的提示词库里大概有三十多条常用提示词,覆盖了代码生成、数据分析、文案写作、故障排查几个大类,每条都迭代过至少三次。
第四个体会是:模型在变,提示词也要跟着变。同一个模型隔几个月可能就有更新,行为模式会有变化。我每隔一段时间就会把常用提示词重新跑一遍,看看有没有需要调整的地方。这个习惯帮我避免了好几次“怎么突然不好用了”的困惑。
如果你刚开始接触提示词,我的建议是从一个具体的、你每天都会遇到的小任务开始。比如让AI帮你整理会议纪要、生成周报模板、或者写一段简单的数据处理脚本。先把这个场景的提示词打磨到好用,然后再扩展到其他场景。一个一个场景积累,比一次性学一堆技巧要扎实得多。