Skip to content

提示工程(Prompt Engineering):怎么跟大模型「说人话」它才听得懂

一、背景

用过 ChatGPT、豆包、Copilot 的朋友肯定有这种感觉:同样一个问题,换种问法,答案质量能差一个档次。比如你写「帮我写代码」,它给你一段泛泛的示例;你改成「用 Vue3 + TypeScript,写一个带防抖的搜索输入框,要 Composition API」,它就能直接给出可粘贴的代码。再比如做 RAG 项目时,提示里加一句「只根据检索到的资料回答,不知道就说不知道」,胡编乱造的概率会明显下降。

这些差别,本质上都是 提示工程(Prompt Engineering) 在起作用:大模型不会读心,它主要根据你给的 文字指令 + 上下文 来补全;你把任务、格式、约束、示例说清楚,它就更可能稳定地产出你要的东西。提示工程不是「玄学咒语」,而是一套 可复用的沟通模板,对做 AI 应用、写 Agent、调 RAG 都特别实用。

二、核心概念和核心原理(详细解答+通俗解释)

这部分不搞公式堆砌,先把「提示工程到底在调什么」讲透,再结合日常开发场景,保证看完能直接改自己项目里的 System Prompt。

(一)核心概念(先通俗,再详细)

  • **1. 提示(Prompt)——发给模型的「任务说明书」**通俗解释:就是你输入的那段话,可以只有一句用户问题,也可以是「角色设定 + 规则 + 例子 + 当前问题」组合在一起。模型看到的是一整段文本 token序列,它倾向于 延续这段文本里已经建立的语气、格式和约束。详细解答:在自回归 LLM 里,Prompt 是条件信息,影响模型对下一个 token 的分布估计。System / User / Assistant 等多段消息(聊天 API)本质上会被拼接成模型可读的格式;System 段常用来放稳定规则,User 段放具体请求。提示工程的目标,是在 不微调模型 的前提下,用文本把行为「约束」到业务需要的区间。

  • 2. 提示工程——用结构化表达换稳定输出通俗解释:像给同事派活:要说清 做什么、输出长什么样、不能做什么、最好举个小例子。对模型也一样:越模糊,它越「自由发挥」;越结构化,越可测、可上线。详细解答:常见技巧包括:角色扮演(你是资深后端…)、分步指令(先列提纲再写正文)、Few-shot(给 1~3 个输入输出样例)、输出格式(JSON/Markdown 字段名固定)、否定约束(禁止编造 URL)、自检(先检查是否缺信息再回答)。这些都是在 压缩模型的有效自由度,提高一致性和可解析性。

(二)核心原理(通俗拆解,一步一步讲清楚)

  1. 第一步:模型在「猜下一个词」,提示在缩小猜测范围通俗解释:没有约束时,模型会选「训练语料里最常见、最像聊天」的那种说法;你明确「输出 JSON,字段 id/name」,它就更容易往 合法 JSON 的形态靠。详细解答:从概率上看,Prompt 把高概率质量集中在你期望的模式上;温度(temperature) 低时更「抠字面」,高时更发散——工程上常对 要可解析的结构化输出 降温度。

  2. **第二步:上下文里的例子,是最强的「行为克隆」**通俗解释:你给两个「问法→答法」的样例,第三个问题它往往会 照着同一风格抄。这就是 Few-shot。详细解答:In-context learning 不更新权重,但在前向计算里,注意力会把 示例中的模式 当作强提示;示例要选 和线上分布接近 的,否则容易学到错误套路。

  3. 第三步:长提示要省 Token、把关键约束放前面或重复通俗解释:窗口有限时,废话太多会挤掉检索内容;硬规则(安全、禁止幻觉)宜简短醒目。详细解答:与「上下文窗口」文章呼应:总长度超过有效利用区间时,中间部分有时被「遗忘」得更厉害——重要约束可 开头结尾各出现一次(视模型与产品实践而定)。

三、补充进阶知识点(易懂不晦涩,适配新手进阶)

  • 1. System Prompt 与业务版本管理通俗解释:上线应用要把 System Prompt 当配置:谁改了、改了啥、回滚到哪版,最好有 Git 或配置中心记录。简单补充:可按环境(测试/生产)分版本;A/B 不同提示对比 准确率、用户差评率

  • **2. 链式提示(分解任务)**通俗解释:复杂任务拆成「提取实体 → 调用工具 → 汇总答案」,每步单独 Prompt,比一大段「一次性搞定」更稳。简单补充:对应 Agent、工作流编排;失败时可 只重跑某一步

  • 3. 和 RAG / Function Calling 的配合通俗解释:RAG 负责「给材料」,提示负责「怎么用材料」;工具调用要在提示里写清 何时调、参数从哪来。简单补充:与专栏里 RAG、MCP 文章串联阅读,一套完整应用往往是 检索 + 提示 + 工具 三者一起调。

  • 4. 和之前知识点的关联提示工程不改变模型参数,但高度依赖 上下文窗口 能装多少检索内容与示例;Embedding 决定检索片段是否贴题,检索不贴时再好的提示也救不回来。

四、文章知识总结

  1. 背景:同一模型,问法不同效果差很多;提示工程是 用自然语言做「软编程」,提升稳定性与可维护性。
  2. 核心概念:Prompt 是任务条件;提示工程是用 角色、格式、示例、约束 把输出拉到业务区间。
  3. 核心原理:自回归模型在 Prompt 条件下预测 token;结构化 + Few-shot + 温度 是最常用的工程杠杆。
  4. 进阶:Prompt 要版本化;复杂任务宜 分步;与 RAG、工具调用 分工明确
  5. 核心逻辑:记住一句——把模型当「特别字面」的同事:任务越像工单,答案越像交付物。

总结:提示工程是 LLM 应用里 性价比最高的优化之一,不训练模型也能明显提升体验。把它和 RAG、量化、上下文窗口放在一起看,就形成「找得到、装得下、说得清」的完整链路。