面向开发者的 AI 提示词技巧
大多数开发者在使用 LLM API 几周后都会发现同样的问题:模型不是瓶颈,提示词才是。模糊的指令会产生不一致的输出。不一致的输出会破坏生产系统。本文介绍了实用的提示词工程最佳实践,这些实践能让 LLM 响应在实际应用中变得可预测、可解析且可靠。
核心要点
- 将提示词视为生产代码——使其明确、结构化且可测试,而非对话式的。
- 使用精确的模式定义输出格式,并在代码中验证响应后再使用。
- 对于模糊的任务使用少样本示例,并有意识地管理上下文以避免稀释信号。
- 根据模型类型匹配提示词策略,像测试代码变更一样针对真实输入测试提示词变更。
将提示词视为代码,而非对话
开发者最大的错误是像在聊天界面中输入一样编写提示词。在生产环境中,你的提示词是系统的一部分。它需要明确、尽可能确定性,并且可测试。
这意味着:
- 在顶部清晰地陈述任务
- 将指令与输入数据分离
- 精确定义输出应该是什么样子
使用 """ 或 ### 等分隔符将指令与传入的内容分开。这可以减少歧义并使提示词更易于维护。
Summarize the support ticket below in one sentence.
Ticket: """
{ticket_text}
"""
明确定义输出格式
要求模型”返回 JSON”是不够的。对于 LLM 中的结构化输出,你需要展示期望的精确模式——或者更好的做法是在 API 层面强制执行。
大多数现代 API 都支持受约束的输出模式。OpenAI’s Structured Outputs、Anthropic’s Structured Outputs 以及 Gemini’s structured output mode 中的类似功能都允许你定义模型必须遵循的模式。请使用它们。
当无法在 API 层面强制执行模式时,在提示词中展示一个示例:
Return your response in this exact format:
{
"summary": "<one sentence>",
"severity": "low | medium | high",
"tags": ["<tag1>", "<tag2>"]
}
然后在使用之前在代码中验证输出。不要假设模型遵循了指令——要验证它。
当任务模糊时使用示例
零样本提示词对于直接的任务效果很好。当输出格式或推理模式不明显时,添加一两个示例。少样本提示是最可靠的提示词工程最佳实践之一,因为它向模型展示”正确”的样子,而不仅仅是描述它。
保持示例的真实性。通用占位符的教学效果不如从实际领域中提取的真实输入和输出。
Discover how at OpenReplay.com.
上下文工程与措辞同样重要
AI 系统的上下文工程意味着有意识地决定包含哪些信息、放在哪里以及传递多少信息。更多的上下文并不总是更好。不相关的上下文会稀释信号并浪费 token。
将最重要的指令放在最前面。如果你正在构建多轮系统,总结早期的对话轮次而不是传递完整历史。优先考虑直接影响当前任务的上下文。
提示词因模型类型而异
通用模型如 GPT-4o 或 Claude 对详细的指令和示例响应良好。推理型模型如 o3 设计用于内部解决问题——过于规定性的提示词可能会干扰该过程。对于推理模型,清楚地陈述目标和约束,然后让模型工作。
将你的提示词方法与你使用的模型相匹配。适用于一个模型的方法不一定适用于另一个。
针对真实输入测试提示词
在三个精心挑选的示例上有效的提示词可能在第四个示例上失败。像对待代码变更一样对待提示词变更:针对具有代表性的真实输入集进行测试,检查边缘情况,并跟踪回归。
在生产环境中记录输入和输出。当出现问题时,你将拥有数据来诊断问题是在提示词、上下文还是模型行为中。
结论
面向开发者的 AI 提示词不是寻找魔法短语。它是关于编写清晰的指令、强制执行输出结构、有意识地管理上下文,以及像测试系统其他部分一样进行测试。掌握这些基础知识,模型就会成为可靠的组件而不是不可预测的组件。
常见问题
零样本提示在没有示例的情况下给模型一个任务。少样本提示在提示词中包含一个或多个输入-输出示例,以便模型可以推断预期的模式。当任务格式或推理风格模糊且模型需要正确输出的具体参考时,少样本效果更好。
在可用时使用 API 层面的模式强制执行,例如 OpenAI 的带 JSON Schema 的 response_format、Anthropic 的结构化输出或 Gemini 的结构化输出模式。当这不可行时,在提示词中包含精确的 JSON 模式,并在将每个响应传递到下游之前以编程方式验证。永远不要在生产环境中未经验证就信任原始模型输出。
不应该。包含不相关的上下文会稀释重要信息并浪费 token。有意识地决定传入什么。优先考虑直接影响当前任务的上下文,将最关键的指令放在最前面,并在多轮系统中总结早期的对话轮次而不是包含完整历史。
是的。通用模型如 GPT-4o 和 Claude 对详细的指令和示例响应良好。推理模型如 o3 在你清楚地陈述目标和约束而不过度指定步骤时表现更好。始终针对你计划在生产环境中使用的特定模型测试你的提示词。
Understand every bug
Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.