如何编写高质量的Prompt,提升AI回答准确性?

摘要:0 序 没有完美的 Prompt,只有不断迭代的 AgentPrompt。 1 概述 : Prompt 工程 : 如何编写高质量的 Prompt ? Prompt 大纲 这是一套基于实际项目经验总结的系统化Prompt设计方法论。 通
0 序 没有完美的 Prompt,只有不断迭代的 Agent / Prompt。 1 概述 : Prompt 工程 : 如何编写高质量的 Prompt ? Prompt 大纲 这是一套基于实际项目经验总结的系统化Prompt设计方法论。 通用 Prompt 一个万能且好用的 Prompt 框架,应当考虑以下几点: Role(角色):给 AI 定义一个最匹配任务的角色,比如:“你是一位软件工程师”、“你是一位小学老师”、“你是一位销售”。 Context(背景/上下文):告诉 Agent 与任务相关的其它背景信息,以便更好地理解问题。在多轮交互中,背景指对话历史;在涉及专业知识时,背景可来自 RAG 提供的数据。 Goal/Task(目标/任务):明确告诉 Agent 我们希望它做什么,例如生成特定类型的文本、回答问题、完成对话等。 Audience(受众):说明用户与 Agent 的关系或用户特征,例如“这个问题是给 10 岁小朋友听的”、“你是用户的朋友”等。 Style(风格):指定答案的语言风格,如正式、口语化、幽默、严谨等。同时注意 Prompt 自身的表述风格也应与模型训练数据一致。 Constraint(指令约束):明确禁止模型执行的行为,强化关键限制。 Response Format(响应格式):规定期望的回复格式,如列表、JSON 等。 Example(示例):提供任务样例,利用模型的短期学习能力提升输出质量。 ⚠️ 注意:并非所有要素都必须使用,应根据具体任务灵活裁剪。 Agent Prompt 核心思想:将大模型(LLM)视为一个可独立执行任务的Agent,并为其提供一套清晰的标准作业流程(SOP)。 Prompt = 角色(Role) + 上下文(Context) + SOP(Workflow) + 边界(Boundary) + 回答约束(Constraints) + 示例(Examples) Agent Prompt 设计的6大核心原则 单一职责:一个Agent只做一件事,做好一件事。 职责分离:LLM擅长创造性生成,不擅长确定性决策。 显式优于隐式:状态、规则、示例都显示,明确告知优于期待模型推断。 结构化优于自然语言:使用表格、列表、代码块展示规则、要求、示例。 示例优于说明:边界case、输出格式都要有示例而非说明。 测试驱动优化:建立测试用例集、准确率baseline,根据错误case分析优化。 Role/指定模型所扮演的角色 通过设定角色,引导模型调整内容与风格。 明确专业领域:如意图识别专家、问题分类专员 单一职责原则:一个Agent只做一件事,复杂流程通过多个Agent协作完成 避免角色冲突:不要让同一个Agent同时扮演客服和销售等冲突角色 示例对比: Bad:请帮我写一份能够吸引大量粉丝点赞的青岛旅游攻略。 Good:你是一位小红书爆款文案写作大师,请帮我写一份青岛旅游攻略。 Bad:请帮我画一幅装着光的水晶瓶,要求图像清晰、华丽、有质感。 Good:你是一位专业的游戏原画大师,请帮我画一幅装着光的水晶瓶。 Context/上下文(背景) 状态显式传递:明确告知当前流程节点、循环次数、用户资格等关键状态 分层加载:只加载当前节点相关的上下文,避免Prompt过长导致注意力分散 结构化呈现:使用表格、列表等结构化方式组织上下文信息 Constraint/指令约束 在描述完期望行为后,可添加限制条件,明确“不希望模型做什么”。 使用【强语气词】(如“必须”、“严禁”)增强约束力。 每条【约束】应与【任务】高度相关,避免冗余。 若约束较多,建议用【列表形式】分点列出,保持逻辑清晰、上下文连贯。 过于复杂的 Prompt 可能导致模型忽略部分指令,因此应力求精炼。 Response Format/响应格式 规定期望的回复格式,如列表、JSON 等。 格式刚性约束:严格定义XML/JSON结构,强调必填字段和可选字段 字段语义化:使用中文描述(问题类型A)而非编号(类型1) Style/模仿模型训练语言风格 语言风格统一:明确称呼、语气、句式细节 使用官方、书面、礼貌、友善的语言撰写 Prompt。 语句应流畅、意图清晰、表达精简。 避免: 语法复杂、语义模糊、逻辑混乱; 歧义、语病、拼写或标点错误; 否定句(优先使用正面描述)。 Prompt 风格: 应尽量贴近大模型的高质量训练数据(通常为正式、严谨、简洁)。 例外:对于文生图模型,使用 tag 序列(如“赛博朋克, 高对比度, 4k高清”)效果优于自然语言,因其训练数据多为标签拼接。
阅读全文