Prompt Engineering——怎么让 AI 听懂你的话

Prompt Engineering——怎么让 AI 听懂你的话
、底层原理LLM 是怎么理解你的1.1 一个类比假设你是一个外国人刚学会中文 3000 个常用词但不懂语法不懂逻辑。我问你苹果后面通常跟什么词你会说可能是很好吃、“手机”、“熟了”、“掉下来了”……你并不知道苹果是什么——你不知道它是一种水果不知道它长在树上不知道它和梨的区别。你只是见过太多文本中苹果后面跟着的词选了概率最高的那些。这就是 LLM 做的事。它不知道苹果是什么。它不知道好吃是什么意思。它只是基于训练数据中见过的数万亿个文本片段计算出了苹果后面最可能出现的词是什么。上一篇已经讲清楚了LLM 的本质是 Token 预测。它不是理解你的问题而是在计算——基于当前看到的所有 Token下一个 Token 最可能是什么。这个底层原理是 Prompt Engineering 一切技巧的根基。1.2 几个关键定义在深入讲提示词工程前先明确几个核心概念概念 定义 为什么你要关心这个Token LLM 处理的基本单位。一个汉字、一个英文单词、一个标点都可能是一个 Token。 这是大模型的计价单位。你每次调用 API是按 Token 付费的。你做 AI 产品时说的控制成本控制的就是这个东西。上下文Context LLM 当前能看到的全部 Token。包括你输入的话、历史对话、系统指令、上传的文件内容等。 上下文窗口是有容量上限的。如果你的 System Prompt 写得很长对话进行了很多轮模型生成了很长的回答——早期出现的指令的注意力权重会逐渐衰减。指令跟随 LLM 根据你的指令执行任务的能力。这不是天生的是训练出来的。 你在提示中给出的任务格式、指令风格、输出要求越接近模型在训练阶段见过的数据它的预测就越准确执行效果就越好。注意力Attention LLM 在处理上下文时给不同 Token 分配关注权重的机制。离当前位置越远的 Token注意力越弱。 关键指令放后面比放前面更有效。不是写在 System Prompt 的开头就完了最重要的约束放在靠近输出的位置。1.3 上下文到底包含什么上下文这个词在 PE 的讨论中经常出现但它具体包含什么很多人并不清楚。对于一个 LLM 来说上下文就是它当前能看到的全部 Token。具体包括来源 说明系统提示词 System Prompt “你是产品经理助手需要输出”历史对话记录 前几轮你和它的所有对话用户当前输入 你刚发出去的那条消息模型自己刚刚生成的回答 它正在写的内容也在上下文中你上传的文件 上传后被读取并注入到上下文的内容RAG 检索的结果 被召回后注入到上下文的文本片段工具/API 调用的返回值 函数执行结果或者联网搜索内容被注入到上下文供进一步推理所有这些内容都在同一个上下文窗口中竞争注意力。为什么这对 PE 重要上下文窗口是有容量上限的。如果你的 System Prompt 写得很长对话进行了很多轮模型生成了很长的回答——早期出现的指令的注意力权重会逐渐衰减。这就是为什么同一个指令放在对话开头和放在对话末尾效果不一样。放在末尾更有效因为它离当前 Token 最近。这也解释了为什么在长对话中核心约束需要适时重复——不是 AI 记不住而是注意力被稀释了。1.4 指令跟随是怎么来的模型不是天生就会听从指令。它的指令跟随能力是训练出来的经历了三个阶段第一阶段预训练在海量文本互联网上几乎所有公开文本中学习语言模式。这个阶段结束后模型知道语法正确是什么样的但它不知道回答问题这个范式。第二阶段SFT监督微调用大量指令→回答的配对数据进行微调。这个阶段结束后模型开始理解当用户给出一段指令我应该输出一个回答这个模式。但到这个阶段为止模型的回答质量还很随机——它知道要回答但不知道什么样的回答是好的。第三阶段RLHF/DPO对齐让人类对模型的回答进行评分好/不好模型根据反馈调整自己的行为。这个阶段结束后模型学会了什么样的回答是人类偏好的。所以 PE 的本质是什么PE 是在利用模型的训练分布。你在提示中给出的任务格式、指令风格、输出要求越接近模型在训练阶段见过的数据它的预测就越准确执行效果就越好。反之如果你的指令格式是训练数据中极少出现的模型的输出就会不稳定——因为它没见过这种模式下一个 Token的概率分布是模糊的。1.5 注意力机制对 PE 的约束Transformer 的注意力机制有一个特性距离越远注意力越弱。这意味着关键指令放后面比放前面更有效不是写在 System Prompt 的开头就完了最重要的约束放在靠近输出的位置长上下文中需要适时重复核心指令在关键节点再强调一次比只在开头写一次更有效分阶段引导优于一次性写完不要把所有内容塞进一条长 Prompt分阶段输入每个阶段的关键指令都在当阶段的最新位置1.6 底层原理带来的 PE 关键启示原理 启示LLM 是 Token 预测机不是理解你 你输入的每个 Token 都在影响输出方向用词不是风格问题是精度问题指令跟随来自训练数据分布 让指令格式接近模型见过的数据模式效果更稳定上下文窗口有容量上限注意力会稀释 关键指令放后面长对话中适时重复思维链有效的本质 中间推理步骤提供了引导路径让后续的 Token 预测在更确定的方向上生成二、核心实践怎么写好一条 Prompt2.1 任务描述——说清楚要做什么这是 PE 最基础也最核心的能力。一个清晰的任务描述包含三个要素做什么明确的任务不是模糊的方向给谁看输出的受众用什么视角立场、角色、分析角度❌ 描述不清帮我分析一下某某产品✅ 描述清楚写一份某某产品的竞品分析报告给产品团队内部使用。从 PM 角度分析功能、定价、目标用户、差异化优势。这不是把话说清楚那么简单。这是在为模型提供精确的 Token 上下文缩小概率分布的范围。你把受众限定为产品团队内部模型就自动排除了对外宣传的口吻你限定了PM 角度模型就自动调整了分析框架。2.2 达标标准——定义什么样算好任务描述让 AI 知道往哪个方向走达标标准让 AI 知道走到什么程度算够了。没有达标标准时AI 的输出质量完全不确定——它可能很详细可能很敷衍取决于当前的概率采样。有了达标标准AI 在生成过程中会自行校准。常见的达标标准维度字数范围500-800 字输出格式Markdown 表格展示关键数据文字说明结论信息要求每个观点必须有数据或案例支撑边界约束只分析公开信息不推测未公开的数据输出深度给出结论的同时说明原因不做没有依据的判断任务描述 达标标准 完整 Prompt。 掌握了这两个PE 80% 的价值就到位了。2.3 思维链Chain of Thought什么是思维链思维链是在 Prompt 中明确要求模型一步一步思考而不是跳过推理步骤直接给出答案。直接问无思维链这个功能要不要做→ 可能直接回答要或不要缺乏依据思维链有思维链这个功能要不要做请按以下步骤分析用户需求是否真实开发成本如何竞品分析综合判断→ 每一步输出中间分析最后给出结论思维链为什么有效回到 Token 预测的机制来理解当模型被问到这个功能要不要做时它只有一个 Token 要预测——“要或不要”。这两个 Token 的概率可能非常接近比如 51% vs 49%模型容易选错或者输出一个模棱两可的回答。但当你在 Prompt 中铺设了先分析需求→再评估成本→再对比竞品→最后判断这条路径时模型在每个步骤上的 Token 预测都变得更加确定——因为每个步骤的输出都是基于前一步的结果每一步的概率分布都在收窄。思维链不是在教模型推理而是在为模型铺设一条概率最确定的路径。思维链的两种形态形态 怎么做 适用场景手动思维链 在 Prompt 中写明步骤 需要控制分析框架、需要可解释性模型内置思维链 打开模型的思考模式 只关心结果准确不关心分析框架两种方式可以叠加使用——在手动思维链中打开模型的思考模式效果会更好。2.4 System Prompt 的编写要点System Prompt 是给一个会自主执行多个步骤的 Agent 看的不是给单次问答用的。它的关注点不是让这次回答更好而是让 Agent 在无人干预的多次执行中保持稳定。一个好的 System Prompt 覆盖三个层次层次 要回答的问题角色层 你是谁你能做什么规则层 遇到各种情况怎么处理约束层 什么不能做❌ 空洞的 System Prompt你是一个好的数据分析助手认真分析数据给出有用的结论。✅ 可执行的 System Prompt你是一个数据分析助手。规则收到数据后先确认数据的基本信息行数、列名、数据类型如果数据量过大先做摘要再分析发现异常值、缺失值等数据质量问题在结论中标注每个结论必须有数据支撑不凭空推测输出顺序先总结整体情况再展开具体问题每条规则对应 Agent 在执行中可能遇到的一个具体场景而不是空泛的描述。2.5 Tool Description 的描述技巧Agent 能够调用工具但它决定是否调用、怎么调用完全基于你对工具的文字描述。工具描述的本质也是一段 Prompt❌ 差的描述名称search描述搜索功能参数queryAgent 看到这个描述不知道什么时候该用它不知道怎么写搜索词✅ 好的描述名称web_search描述搜索互联网获取实时信息。适用于查询最新数据、验证不确定的事实。参数query搜索关键词格式为核心实体 问题Agent 读到好的描述能准确判断这个场景该不该用搜索、关键词怎么写。2.6 输出格式的提示词设计控制格式的关键是说明原因❌ 只要格式输出 JSON✅ 说明原因 格式输出 JSON 格式因为后续需要程序解析。字段name, price, score给原因后模型的输出更稳定——因为它理解了为什么要这个格式而不仅仅是要我做什么。2.7 Guardrails 的 Prompt 层面表达Guardrails 是在 Prompt 层面给 Agent 划定行为边界让它清楚什么事能做、什么事不能做“只读取文件不修改、不删除、不创建新文件”“涉及用户隐私数据时用代号代替真实姓名”“如果在执行中发现违反上述规则的情况立即停止并报告”Guardrails 放在 System Prompt 的末尾作为最后的约束。三、交互式引导——PE 不是一次性的事一个现实无论你的 Prompt 写得多好第一轮输出很少是终点。原因不是你的 Prompt 不够好而是你的需求在对话中才会逐渐清晰AI 第一次的理解可能有偏差有些细节需要来回碰撞才能确定PE 的完整能力 写好第一轮 引导后续轮次。两种用户的行为差异普通用户 有 PE 意识的用户第一轮描述不清 → AI 输出不理想 第一轮写好任务标准“重来写得好一点” “第三段缺少数据支撑补充一下”“再改改” “压缩到 800 字以内保持原有结构”多次无效轮次后放弃 每轮都在收窄差距核心思路后续引导不需要复杂的套路核心就是指出偏差 给出方向❌ 模糊反馈再改改还是不太好✅ 有效反馈第三段的结论没有数据支撑补充一下数据来源整体篇幅太长了压缩到 800 字以内分析深度不够增加对竞品的对比AI 不会自己知道你满不满意。 它不会读心。你满意或不满意都需要通过反馈传递给 AI。第一轮 Prompt 决定了起点后续的引导决定了终点。四、PE 的两大应用场景在讲具体场景之前先明确一个区分普通用户的 AI PE 和 Agent 时代的高阶 PE。普通用户的 AI PE Agent 时代的高阶 PE使用场景 用户和 AI 单次问答 Agent 自主执行多轮任务使用者 所有 AI 用户 高阶用户不一定是开发者目标 让这次回答更好 让 Agent 在多次执行中保持稳定复杂度 低 中到高关键要素 任务描述 达标标准 System Prompt Tool Description Output Format Guardrails现在 AI 工具的加持下人人都可以定义自己的 Agent。普通用户和高阶用户的区别不在于会不会写代码而在于对 PE 的理解和应用深度。场景一使用别人的 Agent场景你在用 ChatGPT、Claude、Kimi 等产品完成一个具体任务核心清晰的任务描述 明确的达标标准技巧说清楚目标受众和背景指定输出结构和格式不满意时给出具体修改方向场景二搭建自己的智能体场景你在开发一个供自己或他人反复使用的 Agent核心System Prompt Tool Description Output Format Guardrails技巧System Prompt 覆盖角色、规则、约束三层Tool Description 让 Agent 准确判断何时使用Guardrails 划定行为边界五、总结Prompt Engineering 的核心不复杂理解原理LLM 是 Token 预测机不是理解你。你的每个词都在影响概率分布写好第一轮任务描述 达标标准撑起 80% 的价值