我刚开始接触提示词的时候,总以为写得越长越具体就越好。后来发现,有些提示词换个场景就完全失效,有些却能反复用。这种差别让我开始琢磨“通用提示词”到底指什么。它不像专用提示词那样绑死在一个任务上,更像一套可以随身携带的工具箱。我把它理解成一种介于模板和自由发挥之间的表达方式。它不要求你把所有细节写死,而是留出一些空间让模型自己判断。
1.1 通用提示词的定义与基本特征
我眼里通用提示词就是一段能跨任务、跨领域使用的指令。它不会写“帮我写一篇关于2024年新能源汽车销量的分析报告”,而是写“请以分析师的口吻,根据我提供的资料,输出一份结构清晰的报告”。这种写法把具体内容抽掉了,留下的是框架和规则。特征嘛,我总结了几条。一条是任务无关性,它不绑定某个具体问题。另一条是结构稳定性,不管换什么内容,它的骨架不变。还有一条是参数可替换,比如把“分析师”换成“老师”或者“产品经理”,它照样能用。
我自己试过把同一段通用提示词丢给模型处理不同事情。一次让它整理会议纪要,一次让它润色邮件,一次让它分析数据趋势。每次只需要改几个关键词,模型就能给出像样的结果。这种体验让我觉得通用提示词像是一把瑞士军刀。它不是最专业的工具,但胜在什么都能对付一下。遇到特别复杂的专业任务,它可能不如专用提示词精准。不过在日常使用中,它的便利性太明显了。
1.2 通用提示词与专用提示词的差异
专用提示词给我的感觉像是一把钥匙开一把锁。你要写清楚行业、角色、输出格式、甚至字数限制。比如“请用Python写一个爬取某网站评论的脚本,要求使用requests和BeautifulSoup,输出带注释的代码”。这种提示词非常具体,换一个网站或者换一种语言,它就得大改。通用提示词不一样。它更像一把万能钥匙,虽然不一定能打开最复杂的锁,但能应付大多数常见门锁。我写通用提示词的时候,会刻意留出变量位置。比如“请根据{输入内容},以{角色}的身份,完成{任务类型},输出格式为{格式}”。这样换一下大括号里的东西,就能用在很多地方。
从使用成本上看,专用提示词前期投入大,后期复用难。通用提示词前期设计要动脑子,一旦成型,后面几乎不用怎么改。我做过一个对比。写十条专用提示词花了大概两小时,每条只能解决一个问题。写一条通用提示词花了二十分钟,然后改改参数就解决了八个问题。这个时间账让我更倾向于先攒通用提示词。专用提示词在精度上确实有优势。比如法律文书或者医疗诊断,通用提示词就不太敢用。那种场景容错率太低,必须用专用提示词把边界卡死。
1.3 通用提示词的价值边界与适用场景
通用提示词不是万能的。我踩过坑。有一次用通用提示词让模型做数学证明,结果它绕来绕去就是不给严谨步骤。后来换成专用提示词,明确要求“每一步都写出依据”,才勉强能用。这件事让我明白,通用提示词适合那些容错率高、任务边界模糊、需要快速迭代的场景。比如日常写作辅助、头脑风暴、信息摘要、简单分类。这些任务本身没有唯一正确答案,模型发挥空间大,通用提示词正好能派上用场。
换个角度看,通用提示词的价值在于降低重复劳动。我平时要处理很多类似的文本整理工作。如果每次都用专用提示词,光写指令就要花不少时间。通用提示词让我一次设计,多次受益。它还能帮我保持输出风格的一致性。比如我要求“用口语化、第一人称、段落长短交错”的通用提示词,不管处理什么内容,产出都带着我的个人印记。这种可控性挺重要的。适用场景上,我觉得内容创作、学习辅助、轻量级数据分析、多轮对话开场白,都是通用提示词的主场。高精度计算、专业法律意见、医疗建议这些,还是交给专用提示词或者人类专家更稳妥。
我写通用提示词有个习惯,先不管它好不好看,先把几个空填明白。角色是谁,要干什么,手里有什么材料,不能碰什么,最后交出什么东西。这五个位置填完,提示词的基本骨架就立住了。刚开始我总觉得少写一个没关系,模型能猜。后来发现,猜出来的东西和我心里想的经常不是一回事。尤其是上下文和约束这两块,省掉之后模型就像脱缰的野马,跑得挺欢,方向全错。
2.1 角色、任务、上下文、约束与输出格式
角色这东西,我以前觉得是装样子。写“你是一个资深编辑”和写“你是一个助手”,出来的东西能差多少?试多了才发现,角色决定了模型调用哪一批语言习惯和判断标准。写“你是一个喜欢用短句的科技博主”,它就不会突然给你来一段学术腔。我的做法是,角色不用堆砌头衔,但要带上一个关键特征。比如“你是一个擅长把复杂概念讲给外行听的老师”,比“你是一个教育专家”更管用。角色还影响语气和用词,这个在通用提示词里特别值钱,因为通用提示词经常换内容,角色是少数能固定下来的东西。
任务是提示词的心脏。我一般用动词开头,比如“总结”“改写”“分析”“列出”。动词后面跟一个宾语范围。“总结这段文字的核心观点”就比“处理这段文字”清楚得多。任务描述里我很少写“请帮我”,直接说“完成什么”更干净。上下文是很多人容易漏掉的部分。它包括输入内容本身,也包括背景信息。比如“这是一封客户投诉邮件,公司去年的退货政策是……”上下文给得够,模型就不容易瞎编。约束是告诉模型什么不能做。“不要用专业术语”“不要超过三句话”“不要添加原文没有的数据”。约束写得好,能省掉后面大量修改时间。
输出格式是我吃过亏的地方。以前只写“输出一份报告”,结果模型有时给表格,有时给段落,有时给编号列表。后来我学乖了,直接指定“用Markdown格式,一级标题三个,每个标题下不超过两百字”。格式定死之后,结果稳定多了。这五个要素不是每次都要写满。简单任务可以只写角色和任务。复杂任务五个全上,效果最稳。我自己的习惯是,通用提示词里至少保留角色、任务和输出格式这三样,上下文和约束看情况加。
2.2 可复用性、可迁移性与可控性设计原则
可复用性是我设计通用提示词时第一个盯住的指标。判断标准很简单,换个内容还能不能用。我写完之后会做一个小测试,拿同一段提示词去处理三个完全不同的输入。如果有一个输入让模型犯迷糊,我就知道哪个位置的表述太窄了。比如我写过“请分析以下产品的优缺点”,换到分析一篇文章就不太顺。改成“请从优势和不足两个角度分析以下内容”,迁移能力立刻上来了。可复用性的秘诀是,把具体名词换成类别名词。“新能源汽车”换成“产品”,“小说”换成“文本”。
可迁移性比可复用性再高一档。可复用是换内容不换领域,可迁移是连领域一起换。我有一条通用提示词,最早是用来整理访谈记录的。后来我把它搬到竞品分析、读书笔记、会议纪要上,只需要改一下角色和输出格式的细节。这种迁移能力靠的是抽象层次够高,但又不能高到空洞。抽象过头就变成“请处理以下内容”,模型只能自由发挥。我的经验是,任务动词保持具体,任务对象保持抽象。“总结”是具体动词,“内容”是抽象对象。这个组合迁移起来最顺。
可控性是我后来才重视的。早期我追求模型给我惊喜,后来发现惊喜往往伴随着惊吓。可控性意味着模型不会突然跑偏、不会擅自加戏、不会忘记约束。提升可控性的办法有两个。一个是把约束写成正面指令。“只使用我提供的信息”比“不要编造”更管用。另一个是给出一个输出示例。通用提示词里放一个短例子,模型会照着葫芦画瓢。这个例子不需要多完美,它起的是锚定作用。可复用、可迁移、可控,这三个原则有时候会互相打架。可复用性要求抽象,可控性要求具体。我的平衡点是,框架抽象,边界具体。任务和角色可以抽象,约束和格式必须具体。
2.3 避免歧义、冗余与过度限定的方法
歧义是通用提示词最隐蔽的敌人。我自己读自己的提示词觉得意思很清楚,模型理解出来完全变味。最常见的是代词歧义。“把它整理一下”里的“它”指什么?如果上文有多个对象,模型就靠猜。我的做法是,通用提示词里尽量不用代词,或者把代词换成明确的类别词。还有一种是动词歧义。“分析”这个词在不同人眼里差别很大。有人觉得分析就是拆解结构,有人觉得分析是找原因。我后来会在动词后面加一个括号说明,比如“分析(拆解成几个组成部分)”。这个括号不长,但能省掉一轮返工。
冗余是另一个坑。我刚开始写提示词的时候,总觉得多写点没坏处。结果写了一大段,里面有三句话在说同一件事。模型不傻,它会被这些重复信息干扰。有一次我写“请用简洁的语言,不要啰嗦,保持简短,控制字数”,模型反而不知道怎么简了。后来我学会一个办法,写完提示词之后,逐句问自己,删掉这句会不会影响结果。如果不会,就删。通用提示词本来就要反复用,每多一句废话,就多一次浪费。我现在的习惯是,初稿写长,定稿砍掉至少三分之一。
过度限定是新手最容易犯的毛病,我自己也栽过。写了一大堆约束,把模型的活动空间压没了。比如“不要用第一人称,不要用被动语态,不要用长句,不要用比喻,不要用列数字”。这些约束单看都有道理,合在一起,模型写出来的东西干巴巴的,像机器人念说明书。过度限定还会导致模型忽略部分约束。它记不住那么多“不要”,干脆挑几个遵守,剩下的当没看见。我的解决办法是,约束分优先级。最重要的两三条写死在提示词里,次要的放到后续对话中补充。通用提示词不需要一次把所有规则定完。它要的是能跑起来,跑得稳,后面再慢慢调。歧义、冗余、过度限定,这三个毛病有个共同解药,就是先写一版,跑十次,看哪里出问题,再改。通用提示词不是一次成型的,它是在使用中磨出来的。
我手头攒了十几个通用提示词模板,大多数都是从具体任务里扒出来的。一开始我写提示词都是一次性用完就扔,后来发现同一个结构反复出现。总结类任务老是那几句话,分析类任务换汤不换药。我就想,能不能把不变的部分固定下来,变的部分留成空位。这个思路跟做填空题差不多,模板就是那道题,空位就是我要填的答案。通用提示词模板的好处很明显,省时间,少犯错,还能保证不同任务之间的输出质量不会忽高忽低。我建模板的习惯是先从实际需求出发,不为了建模板而建模板。哪个任务我一周要做三次以上,就值得为它做一个模板。
3.1 通用提示词模板的基础结构
我大多数模板长一个样,骨架就五句话。你是一个{{角色}}。请对以下{{输入类型}}执行{{任务}}。背景信息:{{上下文}}。约束:{{约束}}。输出格式:{{格式}}。这五句话的顺序我一般不动,因为模型对位置有偏好,把角色放在最前面,它进入状态最快。任务放在第二句,紧跟着角色,模型能立刻知道要干什么。上下文和约束放在中间,是为了给模型足够的信息量,又不至于让它忽略后面的格式要求。输出格式我习惯放在最后,这样模型在生成时会自然把格式当成收尾指令。
有些任务比较轻,比如改个错别字或者换个说法,我就不用满配模板。那种情况我会用简版结构:你是一个{{角色}}。请{{任务}}以下内容,输出为{{格式}}。简版模板只保留三个槽位,跑起来更快,消耗的token也少。我判断用满配还是简版的标准很简单,任务有没有歧义。有歧义就上满配,把上下文和约束写清楚。没歧义就用简版,别让多余的信息干扰模型。两个版本我都存在备忘录里,用的时候复制粘贴,改几个词就能用。
模板的基础结构还有一个隐藏要点,就是槽位之间的衔接词。我很少用“然后”“接着”这类连接词,直接用冒号和换行。模板里每个槽位独立成行,模型能清楚识别边界。比如“背景信息:”后面跟内容,“约束:”后面跟内容。这种分行写法比写成一整段更稳定。我试过把模板压缩成一段话,模型有时候会把约束当成上下文的一部分,执行起来就偏了。分行之后,模型对每个部分的角色认识更清晰。这个细节不起眼,但对我这种经常复用模板的人来说,省了不少调试时间。
3.2 面向总结、生成、分析、对话的模板变体
总结类的模板我用的频率最高。骨架是:你是一个擅长提炼要点的{{角色}}。请总结以下{{内容类型}},提取{{数量}}个核心观点。输出格式为{{格式}}。这个模板的妙处在于“数量”这个槽位。我填3,模型就给三个观点,填5就给五个。不填的话模型容易自由发挥,有时给两个,有时给八个。我还会在约束里加一句“每个观点不超过{{字数}}字”,这样输出更整齐。总结类模板我很少加复杂上下文,因为总结任务本身就依赖输入内容,上下文给多了反而会让模型分心。大多数时候我只改角色和数量,其余不动。
生成类模板跟总结类正好相反,它特别依赖上下文。我的生成类模板是:你是一个{{角色}}。请根据以下背景信息{{背景}},生成{{内容类型}}。要求{{约束}}。输出格式为{{格式}}。背景信息这个槽位我通常会填得比较满,因为生成任务没有现成素材,全靠模型自己发挥。不给背景,模型就给你写通用套话。约束槽位我会写两三条硬性要求,比如“不要出现具体品牌名”“每段不超过四句话”。生成类模板还有一个变体是改写,把“生成”换成“改写”,背景信息换成“原文”,其余结构一样。改写任务我用的约束更多,因为要保留原意又不能照抄。
分析类模板需要明确的切入角度。我的模板是:你是一个{{角色}}。请从{{角度}}分析以下{{内容}}。指出{{要点}}。输出格式为{{格式}}。角度这个槽位决定了分析的方向。填“优缺点”就得到利弊分析,填“因果关系”就得到原因和结果梳理。要点槽位我一般写“三个关键发现”或者“两个改进建议”。分析类模板我经常配合一个短示例使用。比如在模板末尾加一行“示例输出:一、……二、……”,模型看到示例会更容易对齐格式。对话类模板跟前面三个都不一样,它要预留多轮交互的空间。我的对话类模板是:你是一个{{角色}}。请与用户进行{{目标}}的对话。上下文:{{上下文}}。约束:{{约束}}。输出格式:{{格式}}。对话类模板的上下文槽位我会写清楚对话的背景和已有进展。约束里我一定加一条“每次回复不超过{{字数}}字”,不然模型容易长篇大论,把对话变成独白。
3.3 模板参数化、变量占位与快速复用技巧
参数化这件事我是从Excel表格里学来的。模板里所有会变的地方都写成{{变量名}},用双花括号包起来。这样一眼就能看出哪些需要替换。我常用的变量名有{{角色}}、{{任务}}、{{输入内容}}、{{输出格式}}、{{约束}}、{{数量}}。变量名我用中文,因为我的模板都是中文的,英文变量名还得切换输入法,麻烦。变量占位的好处是替换的时候不会漏。以前我直接改模板文字,改完经常忘记把某个示例值删掉,结果模型收到一个莫名其妙的词。用了双花括号之后,我搜索“{{”就能找到所有待填项,一个都不会漏。
快速复用我靠两个工具。一个是我自己建的一个纯文本文件,里面按场景分了几个区,总结区、生成区、分析区、对话区。每个区下面放三到五个模板。用的时候打开文件,找到对应模板,复制出来,把变量替换掉。另一个工具是文本扩展软件,我给每个模板设一个缩写。比如输入“zzzj”就自动展开成总结类模板的完整结构。这个办法特别适合高频任务,一天用十几次的那种。我还会在模板文件里加一行注释,写清楚这个模板适合什么任务、不适合什么任务。注释不复制到提示词里,它只是给我自己看的。比如“这个模板不要用于创意写作,模型会太拘谨”。
模板嵌套是我最近在试的一个技巧。有些复杂任务需要先总结再分析,我就写一个主模板,里面调用两个子模板。主模板的结构是:你是一个{{角色}}。请先执行{{子模板A}},再执行{{子模板B}}。输出格式为{{格式}}。子模板A和B分别是我之前存好的总结模板和分析模板。嵌套的好处是不用把两个模板的完整内容都写一遍,只引用名字就行。坏处是模型可能不理解“子模板”是什么意思。我的解决办法是把子模板的完整内容直接粘贴进去,嵌套只在我的模板文件里体现。在发给模型的最终提示词里,它看到的是展开后的完整版。模板文件里保持嵌套结构,是为了方便我管理和修改。一个子模板改了,所有引用它的主模板都跟着更新,省了逐个修改的麻烦。
我把自己用过的通用提示词翻了一遍,挑出四类最有代表性的例子。每一类我都跑过至少二十次以上,有些是反复调整过的,有些是第一次就效果不错。我把这些例子拆开来看,从输入到输出中间发生了什么,哪里卡住了,怎么改的。这些经验比模板本身更值钱,因为模板只是骨架,填什么肉进去才是关键。
4.1 信息整理与摘要类通用提示词示例
上个月我帮一个做市场调研的朋友整理用户访谈记录。他手头有十七份访谈文档,每份三四千字,格式乱七八糟,有些是语音转文字,有些是手打笔记。他让我用AI先过一遍,提炼出每份访谈的核心观点。我用的提示词是这样的:你是一个擅长提炼访谈要点的分析师。请总结以下访谈记录,提取4个核心观点。每个观点不超过30字。输出格式为编号列表加一句原话引用。背景信息:这是一份关于年轻人咖啡消费习惯的访谈,受访者年龄在22到30岁之间。约束:不要添加访谈中没有提到的内容。这个提示词我跑第一遍的时候,模型给了四个观点,每个都挺准。但原话引用出了问题,模型自己编了几句听起来像受访者说的话,实际上文档里没有。我就在约束里加了一句“引用必须逐字来自原文,用引号标注”。再跑一遍就对了。
后来我遇到另一个场景,不是访谈,是一堆竞品分析报告。七八份PDF,每份都有二三十页。这次任务不一样,不是提炼单篇要点,而是跨文档整理。我换了提示词:你是一个竞争情报整理专家。请阅读以下多份报告,整理出三个维度的信息:产品功能对比、定价策略差异、市场反馈共性。每个维度下列出三到五条发现,每条标明来源文档编号。输出格式为表格。这个提示词的好处是逼着模型做归类,不让它把文档挨个总结一遍。表格格式也让信息一目了然。我朋友拿到结果之后说,比他自己看完再手写整理快了至少两倍。不过表格里偶尔会出现来源标错的情况,我在使用前会抽查几条,发现错误就手动改。这个提示词我后来加了“来源编号只填数字,不填文档标题”,因为模型有时候会把标题写进去,表格就撑得很难看。
摘要类提示词有一个共性问题,就是数量控制。你不说几个观点,模型就自由发挥。我试过同一个文档跑三次,一次给三个观点,一次给六个,还有一次给了一段话没有分点。从那以后我养成了一个习惯,凡是摘要类任务,必写数字。数字写多少有讲究。太少了会漏重点,太多了会稀释。我的经验是,一千字以内的内容给三个,一到三千字给四到五个,三千字以上给五到七个。这个数字不是固定的,你可以根据实际需要调整。但一定要写,不写就等于把控制权完全交给模型。
4.2 内容创作与改写类通用提示词示例
内容创作类我踩过的坑最多。最开始我写提示词特别简单:请写一篇关于XX的文章。出来的东西能看,但没有灵魂,全是套话。后来我加角色,加背景,加约束,效果慢慢好起来。有一个例子我印象很深,帮一个做户外装备的品牌写产品详情页。我用的提示词是:你是一个有五年经验的户外装备文案撰写者。请根据以下产品信息,写一段产品详情页文案。背景信息:这是一款轻量化登山杖,重量180克,碳纤维材质,三节折叠,适合中短途徒步。目标用户是25到35岁的城市上班族,周末喜欢去郊区爬山。约束:不要用“极致”“颠覆”“革命性”这类词。语气像朋友推荐,不要像推销。每段不超过三句话。输出格式为三段式:痛点引入、产品特点、使用场景。第一版出来之后,痛点引入那段写的是“你是否曾经在爬山时感到疲惫”,太老套了。我改成“上周六我背着包走了十二公里,最后三公里全靠手里那根棍子撑着”,把第一人称加进去,马上就不一样了。改写类任务我也做得不少。有一次客户给了一篇两千字的品牌故事,想让我改成八百字的版本,发在公众号上。我用的提示词是:你是一个公众号编辑。请将以下原文改写成800字左右的版本。背景信息:原文是品牌官方故事,语气偏正式。目标平台是微信公众号,读者是普通消费者。约束:保留原文所有关键信息点。删除重复表述和过度修饰。每段不超过四句话。输出格式为通顺的短文,不要分小标题。这个任务我跑了三遍。第一遍字数超了,到了一千一。我在约束里加了“严格控制在750到850字之间”。第二遍字数对了,但把原文里一个重要的时间节点删掉了。我又在约束里加了一句“品牌创立年份和创始人姓名必须保留”。第三遍才满意。
改写和生成有一个本质区别。生成是从零开始,模型需要更多背景信息才能写出有血有肉的东西。改写是在现有素材上动刀,模型需要的是明确的保留项和删除项。我一开始没分清,用改写提示词去生成,出来的东西空洞。后来我把两类提示词分开存,生成类模板里背景信息槽位填得特别满,改写类模板里约束槽位会写清楚哪些必须留、哪些可以删。生成类我通常会加一句“写完后自己检查一遍,确保没有编造事实”。这个自我检查的指令对生成类任务特别有用,模型会在输出前跑一遍逻辑,减少胡说的概率。改写类我不加这句,因为原文就是事实来源,模型只需要忠实于原文就行。
4.3 推理分析与决策支持类通用提示词示例
分析类提示词我主要用在两个地方。一个是产品决策,一个是用户反馈归类。先讲产品决策的例子。我们团队之前纠结要不要做一个新功能,需要评估利弊。我写了这样的提示词:你是一个有产品经验的顾问。请从用户价值、开发成本、竞争差异三个角度分析以下功能提案。背景信息:功能是让用户可以把收藏内容导出为PDF。目标用户是重度使用者,占比大约15%。开发资源有限,如果做这个功能,另一个功能就要推迟。约束:每个角度给出两个支持理由和两个反对理由。最后给一个倾向性建议,并说明理由。输出格式为四段,前三段分别对应三个角度,最后一段是建议。输出结果挺靠谱的。用户价值那段提到重度用户有整理需求,开发成本那段估算了大概需要两周,竞争差异那段说竞品都没有这个功能。最后建议是先做一个简易版,验证需求再决定要不要完整开发。这个建议我们后来采纳了,花三天做了个最小可用版本,上线两周有一千多人用了导出功能。这个例子说明分析类提示词的关键是角度要具体。你说“请分析这个功能”,模型给你的东西很泛。你说“从用户价值、开发成本、竞争差异三个角度”,它就有了明确的思考路径。
用户反馈归类是另一种分析任务。我们产品每个月收到两三百条反馈,以前是人工一条条看,费时费力。我写了一个提示词让AI先过一遍:你是一个用户研究员。请将以下用户反馈按主题归类。背景信息:这是某工具类App的用户反馈,来源包括应用商店评论和客服记录。约束:每一条反馈只能归入一个主题。主题数量控制在五到八个。每个主题下列出三条代表性反馈原文。最后按提及频次从高到低排列主题。输出格式为编号列表。这个提示词跑出来的结果帮我们发现了几个之前忽略的问题。有一条关于“导出文件格式错乱”的反馈,人工看的时候被埋在几十条反馈里没注意到,AI归类之后发现这个主题下有十一条类似反馈,我们才意识到问题不小。分析类提示词有一个技巧我经常用,就是在末尾加一句“如果你发现信息不足以做出判断,请直接说明缺少什么信息”。这句话能防止模型硬编答案。有一次我让它分析一个数据表格,表格里缺了几列关键数据,它就回复说“缺少用户留存率数据,无法判断功能粘性”。这个回复比瞎编一个分析有价值得多。
4.4 多轮交互与角色扮演类通用提示词示例
多轮交互我第一次用是模拟面试。我帮一个学弟准备产品经理面试,写了一个提示词:你是一个互联网公司的产品总监,正在面试一个产品经理候选人。请围绕用户需求分析、功能优先级、数据驱动决策三个方向轮流提问。每次只问一个问题,等我回答后再问下一个。背景信息:候选人有两年B端产品经验,正在转C端。约束:每次提问后,对我的回答给一句简短反馈,再问下一个问题。总共问六个问题。不要一次列出所有问题。输出格式为对话形式,你的提问用“面试官:”开头。这个提示词跑起来效果很好。学弟说前两轮有点紧张,第三轮开始进入状态。面试官角色问的问题挺尖锐的,比如“你说要做用户调研,预算只有五千块,你怎么花”。学弟回答完之后,模型还给了一句反馈“方向对,但缺少优先级排序”,然后接着问下一个。六个问题跑完,学弟说比他自己对着镜子练有用多了。这个提示词我后来改进了一下,加了一个“难度递增”的约束,让前两个问题简单些,后面越来越难。这样更接近真实面试的节奏。
角色扮演我还用在另一个场景,模拟客户投诉处理。我们客服团队新人比较多,我写了一个提示词让他们练手:你是一个情绪激动的客户,他购买的产品出现了故障,已经联系过客服两次但没有解决。请以这个身份和客服对话。背景信息:产品是智能门锁,故障是指纹识别不灵敏。客户已经等待了三天,很不耐烦。约束:第一轮表现出明显不满,如果客服的回复有同理心且给出了具体解决方案,情绪逐渐缓和。如果客服只是说套话,情绪升级。每次回复不超过100字。输出格式为“客户:”开头的对话。这个提示词的关键在情绪变化的条件设置。我一开始没写“如果客服……情绪就……”,模型要么一直很凶,要么突然就不生气了,不真实。加了条件之后,情绪变化有了依据,练习效果好了很多。新人练了几轮之后说,面对真实投诉时心里有底了,知道先安抚情绪再给方案。
多轮交互类提示词有一个容易忽略的点,就是轮次控制。你不说几轮,模型可能聊到第十轮还在聊。我一般在约束里写“总共对话不超过X轮”或者“当我输入‘结束’时,对话终止”。还有一个技巧是给每一轮设定目标。比如模拟面试的提示词里,我给六个问题分别对应了考察方向。这样每一轮都有明确目的,不会跑偏。角色扮演类我还加过一条“不要跳出角色”,因为有一次模型在对话中间突然说“作为一个AI,我无法真正感受情绪”,把学弟吓了一跳。加了这条约束之后就没再出现过。这些细节看起来小,但在实际使用中影响很大。
上一章我把四类通用提示词的实战例子拆开讲了。那些例子都停在一个具体场景里,访谈总结、产品文案、功能分析、模拟面试。用顺手之后我开始琢磨,这套骨架能不能往外挪一挪。挪到医疗、法律、编程、教育、商业,甚至挪到图像生成和智能体协作。这一章就是我挪的过程,有些挪得顺,有些挪得费劲,我把费劲的地方也写出来。
5.1 从通用提示词到领域提示词的扩展大纲
我管这个动作叫搭大纲。通用提示词里角色、任务、上下文、约束、输出格式这五个格子是固定的。要把它变成领域提示词,就在这五个格子里做加法。比如通用摘要提示词是“总结以下内容,提取五个要点”。到了医疗领域,角色换成“你是一个有十年临床经验的医生”,任务换成“总结这份病历的核心诊断信息”,上下文加上“患者年龄、病史、用药情况”,约束加上“不要给出治疗建议,只做信息整理”,输出格式换成“按SOAP格式”。这个加法不能乱加。我一般先列一个领域关键词表,把该领域常用的术语、流程、合规要求写下来,再往格子里塞。这样做出来的领域提示词,比拿通用提示词硬套要准得多。
我扩展过一个法律合同的摘要提示词。通用摘要提示词跑合同,出来的东西全是“本合同约定了双方的权利和义务”这种废话。我加了法律领域的扩展大纲。角色改为“你是一个有五年经验的法务”,任务改为“提取合同中的关键条款,包括违约责任、付款条件、保密义务、终止条件”。上下文加上“这是甲乙方签署的采购合同,适用中国法律”。约束加上“引用条款原文,不要改写,不要解释法律含义”。输出格式改为“分条款列出,每条包含条款编号和原文摘要”。改完之后,模型输出的东西法务同事看了说能用,至少省了初筛的时间。这个例子让我明白,领域扩展的关键是把该领域的黑话和规矩写进去。模型不知道你们行业的潜规则,你得告诉它。
还有一个扩展方向是行业模板库。我认识一个做跨境电商的朋友,他给每类产品都建了一个提示词扩展大纲。卖服装的,角色是“你是一个有五年经验的服装买手”,任务里要加“面料成分、尺码建议、搭配方案”。卖电子产品的,角色换成“你是一个数码测评师”,任务里要加“参数对比、续航测试、散热表现”。他把这些大纲存成表格,用的时候直接调。我试过他的方法,给一个蓝牙耳机写详情页,调出来的提纲比我临时想的要全。领域扩展这件事,做一次能管很久。
5.2 写作、编程、教育、商业等场景迁移
写作场景我迁移得最多。通用创作提示词是“写一篇关于XX的文章”。迁移到小红书,我加“你是一个小红书博主,语气活泼,多用emoji,每段不超过两行,结尾加五个标签”。迁移到公众号,我加“你是一个公众号主编,语气理性,有数据支撑,每段不超过四句话,开头要抓人”。迁移到论文,我加“你是一个学术研究者,语气严谨,引用规范,避免口语化,每个论点要有文献支撑”。同一个通用骨架,换了场景参数,输出风格完全不一样。我试过用同一篇产品介绍,分别套这三个场景的提示词,出来的东西像三个不同的人写的。写作迁移的难点是语气和格式的颗粒度。你得把活泼拆成“多用感叹号和emoji,每段不超过两行”,把严谨拆成“不用第一人称,每个数据都要有来源”。拆得越细,迁移越顺。
编程场景迁移我主要用在代码解释和调试上。通用提示词是“解释以下代码”。迁移到Python,我加“解释每一行代码的作用,指出可能的性能问题”。迁移到JavaScript,我加“解释异步逻辑,指出可能的内存泄漏”。迁移到SQL,我加“解释查询逻辑,指出可能的索引失效”。调试场景更有意思。通用调试提示词是“找出以下代码的错误”。迁移到前端,我加“注意跨域问题和事件绑定”。迁移到后端,我加“注意并发和事务”。我帮一个朋友排查过一个React组件不更新的问题。用的提示词是“你是一个有五年经验的前端工程师。请分析以下React代码,找出为什么状态更新后组件没有重新渲染。背景信息:使用了useState和useEffect。约束:列出三种可能原因,每种给出验证方法。输出格式为编号列表。”模型给出的三种原因里,第二种是“依赖数组缺少变量”,正好是问题所在。编程迁移的核心是把技术栈的特有陷阱写进约束里。
教育场景迁移我给孩子和成人都试过。通用解释提示词是“解释以下概念”。迁移到给小学生讲,我加“用比喻,不要用专业术语,每句话不超过15个字”。迁移到给大学生讲,我加“先给定义,再给例子,末尾给常见误区”。迁移到给职场人讲,我加“直接给应用场景和操作步骤,跳过理论”。我给我侄子解释“什么是算法”,用的提示词是“你是一个小学老师,用做菜的步骤来解释算法,不要提代码”。他听完说“就是先放油再放菜最后放盐呗”。这个理解虽然不精确,但方向对了。教育迁移的要点是匹配认知水平。你给小学生讲微积分,再怎么拆也没用。得先判断受众的认知阶段,再调整提示词里的语言复杂度。
商业场景迁移我做过市场分析和运营方案。通用分析提示词是“分析以下数据”。迁移到市场分析,我加“从市场规模、增长率、竞争格局、用户画像四个维度分析”。迁移到运营方案,我加“从拉新、促活、留存、转化四个环节给出具体动作”。迁移到财务预测,我加“基于历史数据,给出三种情景下的收入预测,注明假设条件”。我帮一个创业朋友做过竞品分析,用的提示词加上了“重点看定价策略和获客渠道,输出SWOT表格”。他说比他花钱买的报告还实用。商业迁移的关键是框架。每个商业场景都有成熟的框架,你把框架名字写进提示词,模型就会照着框架来思考。
5.3 多模态、工具调用与智能体协作的扩展方向
多模态是我最近在摸索的方向。文本提示词扩展到图像生成,结构还是那五个要素,但参数变了。给Midjourney写提示词,角色变成“你是一个专业摄影师”,任务变成“生成一张产品图”,上下文变成“背景是纯白,光线是柔光”,约束变成“不要出现文字,不要出现人手”,输出格式变成“英文关键词,用逗号分隔”。我试过用通用提示词骨架来写图像提示词。通用骨架里的输出格式在文本里是“分点列表”,在图像里就变成了“长宽比、风格、镜头、光线”这些参数。我做过一个实验,把同一段产品描述分别给文本模型和图像模型,文本模型输出的是卖点文案,图像模型输出的是产品场景图。两个模型用的是同一套骨架,只是填充的内容不同。多模态扩展还有一个方向是音频和视频。给音频生成写提示词,要加“语速、音调、情绪、背景音”。给视频生成写提示词,要加“镜头运动、转场、时长、分辨率”。这些参数看起来多,但逻辑和文本提示词一样,都是把模糊需求拆成可执行的指令。
工具调用是另一个扩展方向。通用提示词只能让模型输出文本,加上工具调用之后,模型可以查天气、算数学、搜网页、发邮件。我写过一个查天气的提示词:“你是一个天气助手。当用户问天气时,调用天气API,参数是城市名和日期。如果API返回失败,告诉用户暂时无法获取,不要编造数据。输出格式为‘城市+日期+温度+天气状况’。”这个提示词跑起来之后,模型不再瞎编温度了,它会真的去调接口。工具调用扩展的关键是写清楚“什么时候调、调什么、参数怎么填、失败怎么办”。我踩过一个坑,没写失败处理,结果API超时的时候模型自己编了一个“晴,25度”。后来加上“如果失败,回复‘查询失败,请稍后再试’”,就稳了。
智能体协作是我觉得最有意思的方向。一个通用提示词只能定义一个角色。要完成复杂任务,得让多个角色配合。我搭过一个简单的智能体团队:一个“规划者”提示词负责拆解任务,一个“执行者”提示词负责写内容,一个“审核者”提示词负责挑毛病。规划者输出任务清单,执行者逐条完成,审核者给出修改意见,执行者再改。这三个提示词都是从通用骨架扩展来的。规划者的约束是“把任务拆成不超过五步,每步有明确产出”。执行者的约束是“严格按照规划者的步骤来,不要跳步”。审核者的约束是“只挑事实错误和逻辑漏洞,不评价文风”。这个团队跑下来,做出来的方案比我一个人写初稿再改要快。智能体协作的扩展要点是接口设计。角色之间怎么传递信息,格式要统一。我一开始没规定格式,规划者输出的是自然语言,执行者看不懂,就乱做。后来规定规划者输出“步骤编号+任务描述+输出格式”,执行者就能接上了。
这些扩展方向我都在摸索,有些跑通了,有些还在试。通用提示词的价值在于它的可扩展性。你把骨架搭好,换领域、换场景、换模态、换工具,它都能撑住。每次扩展都会遇到新问题。我的习惯是每扩展一次,就把新加的约束和参数记下来,慢慢攒成一个扩展大纲库。下次遇到类似领域,直接翻出来改改就能用。这个库越厚,我搭新提示词的速度就越快。
前五章我搭了一套通用提示词的骨架,又把它拆开迁到了各种场景里。写到这里有个问题一直绕不过去:我怎么知道一个提示词写得好不好?我早期犯过一个错,花两个小时打磨一个提示词,自认为结构工整、约束严密,跑出来一看,输出全是套话。当时没有评估意识,凭感觉判断“差不多能用”。差不多是最危险的状态。这一章我把自己踩过的坑和后来摸索出来的评估、调试、迭代方法写出来。
6.1 通用提示词的效果评估指标
我最开始评估提示词只有一个标准:读起来顺不顺。这个标准太主观了。同一段输出,我早上看觉得还行,下午看觉得不行。后来我逼自己建了一套简单的打分表。第一项是准确率,输出的事实有没有错,数字对不对,引用是否真实。这一项是底线,错了直接零分。第二项是完整度,我要求模型输出的内容有没有遗漏关键信息。第三项是格式合规,我规定的输出格式模型有没有照做,该分点的有没有分点,该用表格的有没有用表格。第四项是冗余度,输出里有多少是废话。我统计过一批摘要任务,模型输出了1200字,人工精简后剩600字,冗余度就是50%。第五项是一致性,同一个提示词跑十次,输出的结构、风格、详略程度是不是稳定的。我做过一个测试,同一段产品文案提示词跑了五次,三次输出正常,两次跑偏到竞品分析去了。一致性只有60%,说明提示词里有歧义。
这五项指标我按权重算了一个总分。准确率占40%,完整度和格式各占20%,冗余度和一致性各占10%。不是精确的数学,但比“感觉还行”靠谱多了。我用这个打分表测过自己写的二十多个通用提示词,平均分只有68分。大部分丢分在冗余度和一致性上。这说明我早期写的提示词,能跑出东西,但不够精明。打分表逼着我承认哪些提示词是凑合用的,哪些是真能复用的。
评估指标还有一个维度是时间成本。我记录过两组数据。用通用摘要提示词处理一份3000字的材料,第一次输出能用,总耗时3分钟。用一个未经优化的提示词,第一次输出不能用,改了三轮,总耗时15分钟。时间差是五倍。我把这个账算清楚之后,就不再心疼花时间改提示词了。评估这件事,省下来的时间就是收益。我现在每周会挑两三个常用提示词做一次打分,分数低的就进优化清单。这个习惯帮我淘汰了一批看着还行、实际拖后腿的提示词。
6.2 常见失败模式与调试优化策略
我总结了自己遇到的失败模式,大概有六种。第一种是角色漂移。我明明写了“你是一个专业编辑”,模型跑着跑着开始用客服语气说话。第二种是约束失守。我写了“不要出现具体价格”,输出里还是带了价格。第三种是格式混乱。要求用表格,输出的是段落。第四种是信息遗漏。要求提取五个要点,只给了三个。第五种是过度发挥。要求总结,模型自己加了一段评论。第六种是幻觉。模型编了一个不存在的数据来源。这六种里面,幻觉和约束失守是最要命的,其他四种是烦人但能忍。
调试策略我试过很多,留下来的有三条。第一条是拆解定位。输出不对的时候,我会把提示词拆成五个要素逐个排查。角色写清楚了吗?任务具体吗?上下文给够了吗?约束明确吗?格式可执行吗?我遇到过一个案例,模型总是输出太长的内容,我加了“控制在500字以内”,还是超。排查发现是任务描述里写了“详细说明”,模型把“详细”理解成了“越长越好”。我把“详细说明”改成“列出三条核心结论,每条一句话”,问题就解决了。拆解定位能帮我找到是哪个要素在打架。
第二条是负面约束转正面。我早期爱写“不要写废话”“不要用专业术语”。模型对“不要”的理解很差,越说不要越容易触发。后来我改成正面描述。“不要写废话”改成“每句话包含一个具体信息点”。“不要用专业术语”改成“用日常对话中的词汇”。转换之后,约束的执行率明显提高。我读过一个研究,说模型处理肯定指令比处理否定指令要稳。我自己跑下来的感觉也是这样。
第三条是少样本示范。提示词里给一两个输入输出的例子,比用文字描述约束要管用。我做一个合同条款提取的提示词,前面用文字写了“提取关键条款”,模型总是漏掉附件的条款。后来我在提示词里加了一个例子:输入是一小段合同,输出是一句话摘要。加了这一个例子之后,模型输出的完整度从70%提到了90%。例子不用多,一两个就够,但得选得准。我一般选那种边界情况,比如一个容易漏掉的条款类型。
还有一个调试技巧是控制变量。我改提示词的时候,一次只改一个地方。改完跑五次,看输出有没有变好。如果同时改三处,输出变好了,我不知道是哪一处起的作用。这个习惯是我从写代码里带过来的,用在提示词上一样管用。慢是慢一点,但每次改进都清楚原因,攒下来的经验是实的。
6.3 通用提示词库建设与持续迭代机制
我一开始把提示词存在备忘录里,后来存到飞书文档,再后来建了一个表格。表格有六列:提示词名称、适用场景、完整内容、评分、修改记录、最后使用日期。这个表格现在有一百多条。我用的是最简单的分类,按功能分成摘要类、创作类、分析类、对话类、工具类五组。每组里的提示词按评分排序,高分的放前面。找的时候直接从表格里搜关键词,比重写一个快得多。
光有表格不够,还得有版本管理。我有一个摘要提示词改过七版。第一版是“总结以下内容”,第二版加了角色,第三版加了字数限制,第四版改了输出格式,第五版加了术语表,第六版加了负面约束转正面的修改,第七版加了少样本例子。每一版我都保留,标上版本号和修改日期。为什么要保留旧版?因为有些场景旧版反而更适用。比如给内部同事看的快速摘要,用第三版就够了,不需要第七版那么精细。版本管理让我能按场景选版本,不用每次都从最新版改起。
迭代机制我定了两个触发条件。一个是使用频率,一个提示词连续两周没被用过,我就把它归档。用得少的提示词要么场景太窄,要么效果不好。另一个是评分下降,同一个提示词评分从85掉到70,我就把它拉出来重新调试。评分下降通常有两种原因:模型更新了,或者使用场景变了。我遇到过一次,模型升级之后,我原来的输出格式约束失效了。排查了半天,发现是模型对格式指令的理解方式变了。我调整了格式描述的措辞,分数就回来了。
我还建了一个失败案例库。每次遇到失败模式,我就把输入、输出、我期望的输出、失败类型记下来。这个库现在有六十多个案例。我写新提示词的时候会翻一遍,看看有没有类似的坑。有一次我要写一个数据分析的提示词,翻到之前一个案例,模型把相关性当成了因果性。我就在新提示词里加了“区分相关性和因果性,不要做因果推断”的约束。这一条约束帮我省了一轮调试。失败案例库比成功案例库更有用,因为成功的原因往往相似,失败的原因各有各的不同。
持续迭代这件事,我的节奏是每周花一个小时。前半小时跑一遍常用提示词的评分,后半小时优化分数最低的那一个。一个月下来能优化四个提示词,一年就是四十八个。这个节奏不快,但能持续。我见过有人追求一次性把提示词库建完美,结果建了三个月就停了。迭代的关键是频率稳定,不是单次强度大。我现在这一百多条提示词,大部分都是每周一小时慢慢攒出来的。这个库越好用,我搭新提示词的起点就越高,花的时间就越少。这是一个正循环。