
讲一个我最近常拿来举例的场景你给一个能力很强但完全不了解行情的实习生布置任务只说一句“帮我写一篇行业文章”他大概率会交出一篇看起来什么都很对、但放在哪个行业都成立的东西。如果再多说一句“读者是有三五年经验的从业者观点要鲜明结尾给出可执行建议”他交出来的东西就有价值了。AI提示词就是这么回事——它不是沟通玄学而是给模型一份结构化的任务说明书。很多人问“提示词怎么写才有效”网上也有各种模板和咒语式话术。我的答案是与其背模板不如掌握一套可复用的框架。这篇文章聊的就是我自己一直在用的六要素框架外加两个完整案例分别是AI编程和公众号写作场景。不管你是用AI写代码、画图、做视频还是写文案这套框架都能套进去帮你把“碰运气式”的提示词变成“有套路”的提示词。1. 提示词为什么会失控你得先理解模型的“自由发挥”机制先说一个反直觉的结论**提示词写不好的根源往往不是你不会写而是你给的信息太少或太杂模型不知道你到底要什么。**在解释六要素之前我先带你换个角度理解AI模型是怎么“读”提示词的。1.1 把AI当成一个想象力过剩的实习生大语言模型接收你的提示词之后并不是在脑海里“理解你的意图”而是根据训练中学到的概率分布一个字一个字地预测最合适的下一个词。这个过程有点像“戴着镣铐的即兴创作”——你的提示词越明确镣铐就越多模型即兴发挥的空间就越小。我经常用“给实习生布置任务”来类比你说“写个方案”实习生交上来的东西五花八门因为他不知道方案给谁看、预算多少、周期多长、什么风格你说“写一份下季度新媒体运营方案预算两万重点做视频号给部门负责人看页数控制在五页以内”他即便没做过也知道朝哪个方向使劲。你说“把上季度数据贴进去再按上个月那版方案的格式排版”他就能交出基本能用的东西。提示词的最低标准就是让你这句话中包含的信息量达到“一个靠谱实习生能开工”的水平。“六要素框架”的本质就是把给实习生的口头交代整理成一张有条理的任务单。1.2 语言模型和绘画模型在处理提示词时的差异很多人其实同时用两种AIChatGPT这类语言模型以及Midjourney、Stable Diffusion这类绘画/视频模型。它们的机制不一样但“提示词要具体”这个结论是相通的。语言模型处理提示词时靠的是注意力机制——它在生成每一个词时会根据上下文里各个词的相似度分配“注意力权重”。写进提示词的每个词都在争夺模型的注意力资源。如果一段提示词里塞了大量无关的背景描述、修辞、情绪表达真正关键的任务指令反而会被稀释这就是为什么提示词“越长越乱”是真实存在的。绘画/视频模型走的路径不同文本提示词会先被编码成条件向量再引导扩散模型一步步去噪逐步生成图像。这类模型对“名词”和“具体特征”极其敏感——你写“a pelican riding a bicycle”它大概率能生成一只鸟和一辆车但“骑车”这个动作到底是跨坐在车上、单脚踩踏板还是站在后座模型会自己猜。猜对了算运气猜错了就是因为你的词不够精确。这也是“鹈鹕骑自行车”这个测试提示词在网上流行的原因——它考验的正是模型在少见组合下的想象力。组合越少见模型越容易自由发挥提示词里的细节就越值钱。1.3 反向约束的真相模型对“否定词”并不敏感还有一个常见的坑很多人把“不要”挂在嘴边——“不要出现繁体字”“不要写空话”“画面里不要有猫”。但模型在处理否定词时往往不如直接给正向指令有效。绘画模型特别明显。CLIP文本编码器对“不要”这类否定词的响应很弱你写“不要猫”和没写区别不大。**更有效的做法是告诉模型“要什么”而不是“不要什么”。**比如把“画面里不要有猫”改成“画面里只有狗”把“不要写空话”改成“每句话都要有具体数据或案例支撑”。这里补充一句像草莓这类语言模型虽然理论上理解“不要”但如果提示词里正负信息冲突模型经常会选择权重更高的那个方向。所以约束条件要表述成“必须做什么”而不是“禁止做什么”。理解了模型“怎么读提示词”再回头看那些“为什么我写的就是不好用”的问题答案就清晰了你给的提示词要么信息密度不够模型只能靠猜要么正负信息混杂模型不知道听谁的。六要素框架解决的正是这两个问题。2. 六要素框架拆解给AI的“任务说明书”应该包含哪些模块六要素框架不是我拍脑袋发明的而是这些年写提示词、看别人写提示词、再帮别人改提示词之后沉淀下来的一套最小有效结构。它只有六个模块角色、目标、背景、约束、格式、示例。2.1 六个要素分别解决什么问题角色Role——告诉模型“你是谁/你以什么身份回答问题”。注意这里的“身份”不是装饰而是在为输出内容做“风格采样”。当你写“你是资深数据工程师”时模型会优先往严谨、重视边界条件、懂工程规范的方向生成内容当你写“你是给小白讲解编程的博主”时模型会自动降低术语密度。同一件事角色不一样输出的可读性天差地别。目标Goal——一句话说清任务是什么。目标描述里最好包含一个可验收的动词“写一篇…”“设计一个…”“把…改写成…”“检查…中的错误”。一个提示词只放一个核心目标多个目标混在一起模型通常会优先完成“最显眼”的忽略次要的。背景Context——任务发生的场景、读者是谁、数据源是什么、已经做过哪些尝试。背景信息是模型最容易被低估的养分源。同样是“写一个Python脚本”说清“这个脚本要跑在Windows服务器上每天凌晨执行一次数据源是MySQL输出是CSV文件”和只说“写个Python脚本”得到的代码质量完全不同。约束Constraints——必须满足的硬性条件字数、风格、技术栈、禁用的依赖包、数据范围、合规要求。约束是提示词里质量保障系统。但这里有个原则**约束宁缺毋滥条条都要可执行。**写“语言要高级”就没有意义写“避免使用‘赋能’‘抓手’这类词”才是可执行的。格式Format——输出结果的组织方式标题结构、列表/表格/段落、是否要分级标题、代码要不要带注释、JSON字段名是什么。格式就是模型的交付模板模板越清楚模型越少自创结构。示例Example——给1-2个“输入→输出”的参考样例。这是few-shot的核心思路也是控制风格最直接的手段。你想让模型写出“半佛仙人”那种开头三句就抛金句的风格描述再多不如直接给它一段那风格的文字。2.2 六要素怎么组合使用三个关键组合六个要素不必每次全上但有几个组合是高频使用的“角色目标格式”是黄金三角——角色管风格目标管方向格式管交付物长相。凡是“从零写一段内容”的场景这三件套是起步的底座。“背景约束”是质量稳定器——背景给模型足够的上下文约束把输出限制在可验收范围内。凡是涉及专业领域或合规边界的场景这两条能显著减少模型“胡说八道”的概率。“示例”是风格加速器——当你对输出风格、语气有明确要求时一个好的示例顶过千字描述。写作、文案、翻译、代码风格统一全靠它。2.3 六要素速查表要素它在提示词里起什么作用推荐话术示例常见误区角色锁定视角、语气、专业深度“你是一名有五年经验的数据分析师”只写角色不写任务目标明确任务方向结果可验收“请基于以下销售数据输出月度分析报告”一个提示词塞多个并列任务背景提供上下文减少模型瞎猜“数据来自门店POS系统统计周期为2025年1月”背景和任务无关稀释权重约束划定边界控制质量下限“报告不超过800字不使用术语时需加解释”使用“不要…不要…”式否定描述格式约定交付结构省去二次整理“输出结构结论→原因分析→建议列表”不注明格式模型每次生成结构都不同示例锚定风格和逻辑范式“参考下面这个开头的方式重新写三版”示例和当前任务在主题上毫无关联2.4 六要素之外的隐藏要素迭代最后强调一句**提示词不是写出来的是改出来的。**再熟练的人第一版提示词也经常需要调整。正确的心态是把写提示词当成调试工程——先按六要素写一版跑一次看输出哪里不对再回到约束、格式、示例里做局部修改循环两三次之后通常就能得到满意的结果。接下来我用两个完整案例带你看看这套框架从0到1的实际落地过程。3. 完整案例一AI编程场景——让模型写一个靠谱的数据导出脚本先说好这个案例不是为了展示某段代码多厉害而是为了演示提示词结构如何直接影响代码质量。3.1 原始需求与第一版提示词假设我要写一个Python脚本完成以下任务从内部任务系统导出订单数据按部门权限过滤支持分页拉取和失败重试最终输出CSV文件运行日志记录到本地。大多数人第一版提示词会这么写帮我写一个Python脚本从内部系统导出订单数据要支持分页带权限过滤输出成CSV日志记录下来。这一版提示词有没有毛病从信息结构看“角色”缺失“背景”几乎为零“约束”只有“分页、权限过滤、日志”三个关键词“格式”未说明“示例”也没有。模型收到这样一个任务单基本就是“能力很强但两眼一抹黑的实习生”。实际跑一版输出大概率是一个能跑通小数据量的脚本但存在几个典型问题——接口的limit参数写死100不会自动翻页异常重试逻辑是空的“pass”日志没有时间戳和等级划分权限过滤写成注释而不是可配置的代码CSV文件名连日期都没带。功能“看起来都有”生产环境一用就露馅。3.2 用六要素重写提示词长这样我把同一需求用六要素框架重新组织角色你是一名有多年经验的Python自动化工程师擅长写生产环境可稳定运行的运维脚本。目标写一个Python脚本从内部任务系统API导出指定部门在指定时间范围内的订单数据保存为CSV文件。背景该内部系统是我所在公司的任务系统接口支持按时间范围查询每次最多返回1000条记录超过1000条需要按游标翻页。接口用Bearer Token鉴权请求参数包括department_id、start_time、end_time、cursor、limit。目标CSV表的字段固定为order_id、customer_name、amount、created_at、department_id。脚本将部署在一台Windows服务器上用计划任务每天凌晨2点执行。约束只使用Python标准库requests除外Token不能硬编码在代码里从环境变量读取翻页必须处理接口返回的has_more字段单次请求失败要重试3次每次间隔递增每条记录写入CSV前做空值和类型检查日志输出到logs/export.log带上时间戳和日志等级脚本结尾打印导出条数和耗时。格式代码包含函数拆分fetch_page、parse_record、write_csv、main关键函数写docstringmain入口用argparse接收department_id和date_range参数成败退出码用0/1表示。先给出完整代码再单独列出运行方式和环境变量说明。示例不需要给完整代码但可以参考下述空值处理思路如果amount为空填0并记一条warning日志而不是直接跳过该行。这个提示词明显长了不少但每一条都不是废话。角色把模型拉进“生产环境工程师”模式背景里把环境、鉴权方式、接口分页机制、部署平台全交代了这些是模型写出正确代码的“已知前提”约束里每条都是验收标准直接决定了代码的健壮性格式把交付物结构定死了。3.3 第二版输出为什么值得信任同样跑一版第二版输出的代码会有这几处明显变化对比项第一版第二版分页处理写死只取第一页按has_more循环游标推进鉴权方式Token直接写在代码里从环境变量读取异常处理空pass没有重试指数退避重试3次带日志字段校验直接写入CSV类型无判断空值填默认值类型错误丢弃并记日志日志简单print无时间戳logging模块时间戳等级输出到文件入口方式参数硬编码argparse接收参数退出码规范因为提示词里的约束写得具体代码的骨架和边界处理就会按约束来生长。**AI编程提示词的核心要领就是把“验收标准”写进提示词里。**你在提示词里考虑到的边界越多模型替你考虑到的边界就越多。最终生成的代码关键片段长这样def fetch_page(token, department_id, start_time, end_time, cursorNone): 拉取单个分页的订单数据。 :return: (records, has_more, next_cursor)分别对应记录列表、是否还有下一页、下一页游标。 headers {Authorization: fBearer {token}} params { department_id: department_id, start_time: start_time, end_time: end_time, limit: 1000 } if cursor: params[cursor] cursor last_exc None for attempt in range(3): try: resp requests.get(API_ENDPOINT, headersheaders, paramsparams, timeout10) resp.raise_for_status() data resp.json() return data[records], data[has_more], data.get(next_cursor) except (requests.RequestException, ValueError) as e: last_exc e wait_seconds 2 ** attempt logging.warning(分页请求失败第%s次重试等待%s秒: %s, attempt 1, wait_seconds, e) time.sleep(wait_seconds) raise RuntimeError(f请求连续失败三次终止导出: {last_exc})写这种提示词的建议是**所有你希望模型帮你处理的边界条件先用中文说一遍再说代码。**模型看懂了约束写出的代码才有边界处理模型看不懂约束它就只能凭训练数据的平均经验写一个“通用版”。4. 完整案例二公众号写作场景——让AI告别“正确的废话”第二个案例更贴近日常用AI生成公众号文章。这个场景最大的痛点倒不是“写不出来”而是写出来的东西全是正确的废话——结构标准、句式通顺但读完之后没有任何观点也没有任何记忆点。4.1 第一版典型的“废话生成器”假设我需要一篇关于“社区里的宠物烘焙店突然变多”的行业观察。很多人的第一版提示词是这样请写一篇关于社区宠物烘焙店越来越多现象的分析文章1500字左右。模型输出的文章通常长这样标题是“宠物烘焙店真的能赚钱吗”正文第一句是“随着人们生活水平的提高宠物相关消费需求持续增长”通篇处在“有人看好有人谨慎”的骑墙立场结尾是“未来还需要时间检验”。我把这类输出统称为**“AI优雅废话”**——每句话都对但没有一句话有价值。原因在于你只给了目标没有给角色、背景、约束模型只能用最安全、最平均的方式去写。4.2 六要素重写把“调性”拆成可执行的条件这次我这样设计提示词角色你是一名长期跟踪本地消费趋势的行业观察者写作风格偏犀利直接分析问题时习惯从微观细节切入不堆术语。目标写一篇1500字左右的公众号推文主题是“社区周边宠物烘焙店越开越多”给出明确判断这波开店潮的真实驱动力和未来分化方向。背景读者是社区周边的小微创业者他们想了解宠物烘焙店值不值得跟进。你已经观察到的细节包括这些门店大多开在宠物医院和宠物美容店附近主打“宠物生日蛋糕”和“手工宠物零食”客单价在50到200元之间复购依赖微信私域社群。不用编造额外数据。约束标题不得使用“真的能赚钱吗”“是风口还是陷阱”这类烂大街句式开头三句话内必须抛出一个具体场景或反常识结论每一段不超过4行不得使用“赋能”“抓手”“赛道”“深耕”等黑话词必须给出“什么条件下不建议做”的判断不能骑墙结尾给出可执行的决策清单。格式先给我3个备选标题用序号排列。然后输出正文正文用小标题分成4-5个部分。最后单独列出“给想入局者的三条建议”。示例文章开场可以参考这种写法“上个月我家楼下那家开了十年的水果店隔壁突然挂出了‘宠物蛋糕需提前两天预订’的招牌。我到店看了一眼价签一个六寸宠物蛋糕卖198。”这里的关键不是“描述风格”而是用约束把“废话”挡在门外——禁掉烂句式、禁掉黑话、强制开头给场景、强制给出不做的条件。这些约束本质上是**“逆向排除法”**你让模型把常见的废话路径堵死它就不得不往具体的、有信息量的方向走。再加一个示例的锚点风格就基本锁定了——因为模型对“示范样本”的模仿能力远超对“抽象风格描述”的理解能力。4.3 重写后的效果和结构拆解实际跑这一版输出质量会有明显的代际提升。文章开头可能直接写“小区门口的水果店旁边卖起了198元的宠物蛋糕”标题可能变成“宠物蛋糕198元一个谁在买单”。模型之所以能写出这种效果是因为提示词里每个要素都在起作用角色里的“犀利直接”“微观细节切入”把风格从“四平八稳”拉到“有立场”。背景里的门店位置、客单价、复购特征给了模型足够具体的素材模型引用这些细节时文章就有了真实感。约束里的禁词表和“不能骑墙”条件直接毙掉了最容易出废品的路径。格式里的“3个备选标题”“5个部分”“决策清单”让交付物一次性达到可排版的标准。示例锚定了开头的写法——场景先行结论后置。这套写法可以沿用到很多内容创作场景。比如热词里有人问“用扣子做一个自动生成公众号文章的能力提示词怎么设计”本质也是一样的思路**把六要素里的角色、目标、格式转成固定模板把背景和约束转成可替换的变量把示例维护成几个高质量范文库。**工作流跑出来的文章质量不取决于流程多复杂而取决于提示词模板的完成度。顺带说一句AI绘画/视频场景的提示词也符合这个逻辑——角色相当于“风格化描述”比如电影感、纪实感背景相当于主体和环境设定约束相当于负面提示词格式相当于镜头语言景别、机位、比例示例相当于参考图。万物相通。5. 实战中的三个高频误区以及那些容易被忽略的细节到第五个章节我不打算再讲框架而是把日常被问得最多、踩坑踩得最多的几个细节摊开说。5.1 误区一提示词越长越好忽略“信息密度”有一种常见操作是把提示词写到快一千字背景描述从头几年的行业趋势讲起恨不得把公司发展史都交代进去。结果是模型输出质量和长度完全不挂钩。问题出在“有效信息密度”。模型处理提示词时注意力是有限的资源。**和任务强相关的信息越集中模型越容易执行无关的背景越多关键信号越容易被稀释。**我的建议是背景要写但只写与任务直接相关的部分。比如让AI写宠物烘焙店文章那门店选址、客单价、复购模式是有用的背景但行业GDP增长这类宏大背景基本没用。5.2 误区二反复使用“不要XX”低估否定词失效的干扰前面说过模型对否定词的处理不是万无一失的。尤其绘画模型你写“没有猫”“不要猫”它经常当作没看见。更糟糕的是如果提示词里既写了“要一只狗”又写了“不要猫”模型生成时可能会在猫狗之间反复横跳最后给你一只像猫的狗。写约束的正确姿势是把禁止项改写成“替换项”。“不要空话”改成“每句话都要有事实或数据支撑”“不要出现低俗画面”改成“整体氛围保持干净、明亮”“不要使用繁体字”改成“统一使用简体中文”。正向表达既容易被模型理解也更容易被测试验证。5.3 误区三一次就想写好“迭代”才是提示词的日常我自己写提示词很少一次成型。以公众号文章为例第一版跑完以后如果发现段落太长我就加一条约束“每段不超过4行”如果发现语气太温吞我就加一句角色描述“你是一个说话不绕弯子的行业观察者”如果发现开头不够抓人我就换一个示例。**提示词工程真正的门槛不是“会不会写”而是“会不会根据输出反推修改点”。**模型每给出一次输出不只是最终结果也是你定位提示词问题的“健康报告”。所以我建议你养成一个习惯每次跑完提示词先问自己三个问题——输出哪里偏离了预期是漏了约束还是没说清格式是背景不足还是示例不对然后有针对性地改而不是整段推翻重写。5.4 回到“鹈鹕骑自行车”一个提示词测试里藏了哪些信息最后再回到网上那个流行的“鹈鹕骑自行车”提示词测试。如果你只写“鹈鹕骑车”模型生成的画面大概率漏洞百出——喙画错、脚蹼位置不对、自行车结构扭曲。但如果你把需求拆开它会变成这样一只白色的鹈鹕侧身骑在一辆复古自行车上双爪踩住脚踏板翅膀微微张开保持平衡细长的喙朝向前方背景是逆光的湖畔公路阳光透过羽毛缝隙形成光晕胶片质感侧面跟随视角。这是一个把六要素思想用进绘画提示词的例子。**主体鹈鹕、空间关系跨坐、踩踏板、翅膀平衡、细节喙的位置、环境湖畔、逆光、风格胶片、镜头侧面跟随**一目了然。模型拿到的信息越具体自由发挥的空间就越小成品率自然越高。这套逻辑对语言模型同样成立。好的提示词本质上是在显式地写出你头脑中的默认期望——你已经假设了模型的背景知识你不说清楚它就按平均值来你说清楚了它就能按你的标准来。我个人在实际操作中的体会是六要素框架最值钱的地方不在于“多了一个检查清单”而在于它逼我把模糊的需求翻译成明确的任务边界。写目标的时候我会想清楚到底要什么写约束的时候我会想清楚该怎么验收写示例的时候我会想清楚风格该长什么样。提示词最后变成什么样反而不重要重要的是这些思考本身已经让需求变清晰了。往后你写任何提示词都不妨先花一分钟问自己角色和目标有了吗背景给够了吗约束里有没有“不要XX”格式写明确了吗示例要不要加六句话问完水平自然上一个台阶。