同一个问题问大模型,回答时好时坏,差别通常在提示词。提示词工程(prompt engineering)就是设计并持续优化发给模型的文字输入,让它在你的应用目标上稳定地产出高质量回答。这篇讲清三件事:模型到底怎么读你的提示、为什么输出不稳定、一条好提示怎么搭结构——最后给出可以直接套用的八条最佳实践。
提示词工程是什么
提示词工程是为给定的应用目标和模型,设计并优化文本输入(提示),以获得一致且高质量的输出(补全)的过程 [1]。它天然分两步:先针对模型和目标设计初版提示,再迭代打磨,不断提升回答质量 [1]。
生成式 AI 能根据用户请求创作文本、图像、音频、代码等内容,底层是 OpenAI 的 GPT 系列这类用自然语言和代码训练出来的大语言模型 [1]。交互方式刻意做得简单:你发一段提示,模型回一段补全,不满意就在多轮对话里继续改 [1]。正因为简单,提示成了生成式 AI 应用最主要的「编程接口」——写好它,就是写好应用的第一行代码。
模型是怎么读你的提示的
三个概念解释了模型大部分「出乎意料」的表现。
分词(tokenization):文本先被切成模型能处理的小单元——token。不同模型、甚至同一模型的不同版本,对同一段提示的切法都可能不同;模型是用 token 而不是原始文字训练的,所以切法直接影响回答质量 [1]。想建立直觉,可以把提示贴进 OpenAI Tokenizer 这类工具,看看空格和标点是怎么变成 token 的 [1]。
基础模型(base LLM):只做一件事——预测序列里的下一个 token。它并不理解词的含义,只是看到了一个可以续写的统计规律 [1]。
指令微调模型(instruction-tuned LLM):在基础模型上,用带明确指令的输入输出对做微调,配合基于人类反馈的强化学习(RLHF)等技术,让模型学会遵循指令、从反馈中改进 [1]。效果立竿见影:给总结任务配一句系统指令「用面向二年级学生的方式总结内容,结果保持一段、3 到 5 个要点」,输出就直接变成了目标受众能用的样子 [1]。
为什么提示需要精心设计
当前的大模型有三个特点,不花功夫设计提示就很难拿到稳定的输出 [1]:
- 回答是随机的。同一个提示,换模型、换版本、甚至同一个模型不同时间再问,答案都可能不同。好的提示就像护栏,能压低这种波动;
- 模型会编造。训练数据再大也有限,超出范围的内容模型可能一本正经地胡说。让模型给出引用或推理过程,有助于识别和缓解编造;
- 能力在变。新一代模型能力更强,但也带来新的怪癖和成本权衡,提示技巧能帮你在不同模型之间平滑迁移。
编造(fabrication)值得一试:向三家服务商问同一个虚构的题目「生成一场 2076 年火星战争的教案」,OpenAI 的 GPT-35、Azure OpenAI 的 GPT-35、Hugging Face 上的 LLama-2 都产出了足以让不知情读者信以为真的教案 [1]。元提示(metaprompting)、温度配置等技巧能在一定程度上减少编造,新的提示架构还会把工具调用整合进提示流程来进一步缓解 [1]。
一条提示的三层结构
最基础的提示就是一段没有上下文的文字,Completion API 直接把它续写完 [1]。真正的应用用 Chat Completion API 把提示搭成一组消息:用户和助手的输入输出对,加上一条设定助手行为或人设的系统消息 [1]:
response = client.responses.create(
model="gpt-5-mini",
input=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
{"role": "user", "content": "Where was it played?"}
]
)指令提示把任务说得更细,细节越多输出越可控:「写一段描述南北战争的文字」返回一段话;加上「提供关键日期和事件及其意义」就多出一份大事记;再要求「3 个要点……以 JSON 文件格式返回」,输出就变成可以直接校验的结构化 JSON [1]。
主要内容(primary content)模式把输入拆成两部分:指令(做什么)和相关内容(影响怎么做)[1]。支撑内容(supporting content)再叠加一层影响输出的上下文,比如格式要求、主题分类、参数设置 [1]。拿课程目录总结举例:指令说「总结 2023 年秋季课程目录」,示例给出想要的输出格式,支撑内容则圈出最值得优先的 5 个标签 [1]。
最值得先学的三个技巧
示例:给模型看零个、一个或几个目标输出的样子。零样本必须写明指令,比如「翻译成西班牙语」;给了一个示例后任务就能被推断出来,示例越多推断越准,而且不用额外加指令 [1]。
线索(cue):替模型把输出开头写好。提示结尾加「我们了解到木星」,模型接出一段陈述句;改成「我们学到的 3 个要点:」,模型直接输出编号列表 [1]。
模板:把验证过的提示存成配方反复使用,保证体验一致;复杂的模板带占位符,可以从用户输入、系统上下文、外部数据源填充,用程序批量生成提示 [1]。Prompts For Edu 这类领域提示库是这条路的终点形态:为特定受众优化好的模板集合 [1]。
八条最佳实践
OpenAI 和 Azure OpenAI 的实践者推荐:评估最新模型;用分隔符把指令和上下文分开;指令要具体清晰;描述要充分、多用示例;用线索帮模型起步;必要时反复强调——在主要内容前后都放指令;注意信息的呈现顺序,近因效应会让靠后的内容权重更高;给模型一条「退路」——任务做不了时让它按固定话术回答,能减少编造 [1]。没有哪条保证生效:提示词设计始终是试错的过程,把有效的东西记下来,攒成自己的提示库 [1]。
本文改编自 Microsoft 开源课程《Generative AI for Beginners》第 4 课[1],原文以 MIT 许可证发布。
来源
- 1Prompt Engineering Fundamentals | Generative AI for BeginnersMicrosoft generative-ai-for-beginners (MIT)
引用本页: 提示词工程入门. TellWorld, https://www.tellworld.net/zh/practice/practice-prompt-engineering-basics. 更新于 2026-11-14