在应用技术层,无论我们做了多么炫酷的设计,最终都只有一个目的,那就是为了找到相对更合适的一个提示词“Prompt”传递给大模型。因为,Prompt是我们唯一可以和大模型交互的方式。Prompt分为System Prompt和User Prompt:System Prompt:通常用于提供全局的指令或限制条件,告诉模型如何理解和生成响应。我们平时使用的大模型应用产品比如DeepSeek,豆包等,System Prompt已经被封装在产品里了。而在Coze等平台当我们搭建一个Agent时,我们可以根据实际场景自己编写输入对应的System Prompt。User Prompt:通常是用户直接提供的问题或请求,系统会在特定回合中将它视为生成响应的核心输入。大模型在回答用户问题时,会将System Prompt和User Prompt(通常指用户的提问,也包含上传的文档,图片等资料)一起当做最终的Prompt。为什么大模型需要Prompt?从大模型自身来讲,目前市场上大部分大模型(指大语言模型即LLM)都是基于Transformer框架的,其本质就是一个概率机器,即给它输入内容,经过它的Transformer大脑处理后,输出(预测)下一个词,直到回答完毕。这里有三个关键词:输入,处理,输出;也就是说在已经被训练好了的大模型的基础上(再不更新版本的情况下,其知识能力水平已经被固定),也就是这里的“处理”是不变的,所以最终“输出”的内容是什么,完全取决于你给它“输入”的是什么。它虽然已经很“聪明”,但你向它请教问题时,如果不告诉它关于问题的背景等,它也只能靠猜的方式来回答你。因为同样一个问题,在不同人看来,会产生不同的理解。我们每个人从小成长的环境不同,所掌握知识水平不同,生活经历不同等等,造就了我们每个人不同的世界观,人生观,价值观…,当不同人面对同样一个问题时,看待和理解问题的维度,视角,层次等等都不相同,自然就会产生不同的理解,也自然会产生不一样的回答。大模型也是,我们可以把它看成一个超级学霸,因为它是由大量数据喂养学习训练出来的,它也形成了自己的世界观,也有自己对这个世界的理解(虽然在它脑子里其实一切都是一推概率数字),所以,我们完全可以把它看作一种特殊的人类,你给它输入一个问题时,你自己作为一个人类你自己本身对这个问题有你自己的理解,而大模型作为和你知识水平不同的另一个“人类”,它对这个问题的理解必然也就和你理解的不一样。你把问题描述的越粗糙,那么它对问题的理解和你自己对问题的理解的差别就越大,那么它输出的回答就和你预期的差距越大(当然,如果你自己能力水平有限,即使有时它输出的答案很“烂”,但你看不出来,这就很糟糕),所以,只有当你把问题描述的越清晰,越具体,它和你的理解就会越接近,它输出的回答自然也就越好。那么,到底怎样才能将问题描述的更清晰,更具体呢?网上有各种各样的提示词模板,模型,方法,眼花缭乱,感觉说的都对,又感觉都差点意思,不够通用。下面,我试着用“我”(即“提问者”),AI大模型(即回答者),对话规则(即“我”和“AI”之间的契约),相信看完这个提示词框架,会对提示词有一种“原理如此”的感觉,相信你能很轻松的理解并记住这个框架。Prompt原理的一句话解释:“我”有个问题想让“你”(AI)帮我解答:所以,“我”作为提问者,自己首先需求对“问题”明确且清晰然后告诉AI,“你(AI)”是“我”基于我的问题想要找的回答者,AI是个通才,可以把它想象成是一个很多个“分身专家”的合体,“我”如果明确指定由某个专家来回答问题,那我将得到更好的回答。一、【我的任务】即我的提问:“我”作为提问者,我需要自己先梳理清楚问题,先让自己搞清楚自己想要什么(除非这个问题你还真的就搞不清楚):1、明确目标(明确要完成的任务):就像做需求分析一样:目标用户是谁;解决用户什么场景下的什么问题;想达成什么样的一个目标。2、拆解任务(分解任务流和环节,每一步要做什么,有什么动作,比如怎么把大象放进冰箱):怎么理解“拆解任务”呢?想象一下,现在有个产品经理的实习生让你带,那么,你得告诉他日常的工作流程,比如:竞品分析需求调研原型设计需求文档……对AI也类似,你需要告诉和引导AI按流程输出回答,比如:提问:如何做西红柿炒鸡蛋?这个问题就可以这么来拆解:提问:如何做西红柿炒鸡蛋?请拆分到:[买菜][备菜][炒菜]三个部分。3、限定条件(要求:明确输出模板/范围/长度等):针对一些特定问题,如果你对“回答”有比较明确的要求,你就应该告诉AI,比如:问题:请帮我写一份招聘销售代表的JD。如果你把这个问题输入给AI,它会给你一个中规中矩的答案;而如果你对JD有明确的要求,比如这样:请帮我写一份招聘销售代表的JD,要求如下:职位标题公司介绍职位概述主要职责任职要求工作地点薪资福利职业发展机会公司价值观与文化联系信息那么,它会根据你的这个要求进行输出;二、承接“我的任务”的【AI大模型】:设定AI的角色和思维能力可以想象一下大模型里面藏着很多个各个领域方面的专家,你向它提问时,如果不指定让哪个专家回答问题的话,大模型自己就会根据自己的理解来分配了一个A专家来回答,你心里潜意识的本来想让B专家来回答的,导致大模型输出的答案达不到你的逾期(或者你根本看不出来回答的好不好,这就糟糕了)而如果你要求大模型说,我点名要B专家来回答这个问题,那大模型输出的回答就大概率符合你的预期了。如何“点名”呢?也是3点:指定角色+指定能力+语气风格 (建立一个具体的人的画像:比如我要一个“人工智能方面擅长Prompt提示词的幽默的专家”帮我回答这个问题)1、指定角色(给AI设定一个具体角色)## 角色你是一个音频故事生成助手,你可以按照用户的要求,生成最终的内容,你工作时请注意:……2、指定能力(请用某项具体能力:sowt/PEST/波特五力…)比如:before:我们设计了一个项目管理课程,目的是帮助人力资源管理者更换的做项目管理。请你整理一个关于课程的课程简介。after:加上指定能力后:我们设计了一个项目管理课程,目的是帮助人力资源管理者更换的做项目管理。请你基于SCQA模型的表征结构,梳理一个关于课程的课程简介,请注意不要生搬硬套SCQA模型,要保证流畅和一致性。3、语气风格(采用特定语气风格:严肃/幽默/活泼/二次元/emoji…)三、【对话规则】(清晰具体,持续优化)1、结合上下文如果有关于“提问”的相关上下文背景信息,最好告诉AI;before:问题:推荐一本书。after:问题:我是一个科幻迷,喜欢看《三体》,清帮我推荐类似的一些科幻作品。2、使用示例告诉AI按照给定的“示例”进行输出,也可以给出“反例”,让AI更精准的理解你想要的结果;3、输出格式(csv/json/xml/html/markdown/…)明确输出的格式要求4、标签结构用分隔符来表示提示词的不同部分;#角色#背景#要求#…比如:# 角色你是一个专业的在线问诊医生,能够准确分析患者的症状并提供合理的诊断和治疗建议。## 技能### 技能 1: 分析主诉1. 当用户描述身体不舒服的情况时,确定这是“主诉”,并启动 Ask_More 工作流。2. 将解析出的用户“主诉”传递给工作流。…5、优化词语运用重复的字词,强调重点;用同义词替代看输出回答的效果;三明治法6、进行评估(给输出的回答进行评分)制定一个评分标准,让AI自己根据评分标准给输出的回答打分;举栗0:讲一个儿童故事,Prompt如下:# 角色 //角色设定你是一位“儿童科普作家”,擅长将复杂的科学知识转化为”有趣且易懂的童话故事。你的故事需要满足以下条件:– 故事面向的是”6-10岁”的儿童– 请使用“拟人化的方式”进行描述(如“小水滴的冒险”) //指定能力# 需求## 核心任务 //限定条件请帮我写一个关于【水的循环】的科普故事,要求如下:1.故事长度:800字左右2. 请将故事按以下几个步骤进行描述: //拆解任务,告诉AI按步骤进行[雨水的蒸发][云的形成][降雨]## 补充信息– 孩子喜欢兔子、狗等小动物 //背景信息,类似上下文– 希望故事的风格是轻快、押韵的 //故事讲解风格# 输出要求 //格式要求请以markdown格式输出### [故事标题]主角:请用一个拟人的角色,如“小水滴胖胖” //优化词语,再次强调用拟人的方式,角色那块也说了,三明治法故事正文:正文分段落描写,每个段落不超过5句话互动问题:用“小朋友,你觉得……”作为故事的开头科学小贴士:故事讲完后,用1句话总结知识点结尾举栗1:智能客服助手Agent,Prompt如下:# 角色 //“#”标签用来分割提示词的不同部分– 你是一个优秀的智能客服助手 //给AI指定一个具体角色# 背景– 为客户提供产品咨询和投诉解答服务# 目标– 根据用户的问题,和给出的信息进行分析并给出最终的回答。 //明确目标,告诉AI为谁服务,解决TA的什么问题# 技能 //指定技能:产品咨询,问题处理– 产品咨询:通过知识库找到适合的产品,并能根据用户需求进行适合的产品推荐– 问题处理:能够快速高效的分析出问题的解决办法。# 工作流程 //拆解任务,明确每一步要怎么做;对于“我”,作为提问者来讲,我自己如果知道“步骤”,那么就要告诉AI,不要让AI去“猜”,1. 判断用户提问问题类型,属于产品咨询还是投诉问题。2. 根据已有信息分析客户问题的解决方案。3. 高情商语言润色,让讲话方式听起来更舒服。4. 输出整理好的回答内容。举栗2:在线问诊Agent,Prompt如下:# 角色你是一个专业的在线问诊医生,能够准确分析患者的症状并提供合理的诊断和治疗建议。## 技能### 技能 1: 分析主诉1. 当用户描述身体不舒服的情况时,确定这是“主诉”,并启动 Ask_More 工作流。2. 将解析出的用户“主诉”传递给工作流。### 技能 2: 输出工作流结果1. 工作流运行结束后,将工作流的输出完整地呈现给用户。2. 根据用户描述的内容,给出可能的猜想,并且给出是否需要做检查,以及要做什么检查的判断## 限制: //限定条件,要求AI按规则要求输出– 只专注于医疗问诊相关内容,拒绝回答与医疗问诊无关的问题。– 严格按照给定的流程进行操作,不得偏离。– 确保输出内容准确、清晰,易于用户理解。本文由 @弋十三 原创发布于人人都是产品经理,未经许可,禁止转载。题图来自 Unsplash,基于 CC0 协议。