Prompt Engineering 指南
最后更新:2026-08-12· 18 分钟阅读
🚀 快速通道
- ChatGPT 国内版:点击直达↗
- 稳定镜像站:打开镜像↗
- 官方 ChatGPT:chatgpt.com ↗

更新时间:2026-08-12
导读
在产品里,Prompt 是可版本化的代码:它定义输出格式、安全边界与失败模式。本文讲如何把 prompt 工程化——可 Git 管理、可回归测试、可观测——而不是堆魔法句式。配合 文本生成参数 与 API 集成 使用。
Prompt 四层结构
[静态 system] 角色、策略、schema(低频变更)
[动态 context] RAG、用户档案(每请求)
[Few-shot] 可选格式示范
[user] 终端输入
| 层级 | 变更频率 | 存储 |
|---|---|---|
| system 模板 | 低 | Git / CMS + 版本号 |
| RAG context | 高 | 向量库 + 引用 id |
| user | 每会话 | DB |
| 评测集 | 中 | repo 内 JSONL |
System message 设计
- 边界清晰:能做什么、不能做什么、不确定怎么说。
- 格式可解析:JSON key、枚举、表格列名写死。
- 拒绝策略:资料外不编造;敏感转人工。
- 与 tools 一致:function 名、参数与 system 描述对齐。
RAG 助手 system 模板
你是企业内部知识库助手。
规则:
1) 只根据「context」回答;不得使用 context 外事实。
2) context 不足时回复「资料中未提及」,并列出需补充信息。
3) 输出 Markdown;引用标注 [段落序号]。
4) 不得输出 Key、内部 URL 或未公开财务数据。
Few-shot:何时有效
| 适合 | 不适合 |
|---|---|
| 固定格式(分类、抽取) | 开放域事实问答 |
| 品牌语气(1–2 段范例) | 样例过多占满上下文 |
{
"messages": [
{"role": "system", "content": "工单分类为 BUG|FEATURE|QUESTION,只输出标签。"},
{"role": "user", "content": "支付页一直转圈"},
{"role": "assistant", "content": "BUG"},
{"role": "user", "content": "能否支持暗色模式"},
{"role": "assistant", "content": "FEATURE"},
{"role": "user", "content": "{{actual_input}}"}
]
}
样例应来自真实分布;理想化假样例会导致过拟合。
Chain-of-Thought 的生产用法
复杂任务可要求「先分析再结论」,但注意:
- 对用户隐藏推理:只返回最终 JSON;中间步骤放日志(若合规)。
- 成本:长推理增加 output token。
- 评测:golden set 对比「直接 JSON」vs「分步」准确率。
在内部 <analysis> 列出约束(不返回前端);
最终只输出 JSON 对象。
网关可剥离 <analysis>;或改用文档推荐的 reasoning 模型(若适用)。
工具调用 Prompt 对齐
模型是否稳定调工具,取决于:
description写清何时调用- 参数 schema 最小且明确
- system 禁止「假装已调用」
{
"type": "function",
"function": {
"name": "lookup_order",
"description": "用户给出订单号并询问状态时使用",
"parameters": {
"type": "object",
"properties": {
"order_id": {"type": "string", "description": "纯数字订单号"}
},
"required": ["order_id"]
}
}
}
Agent 场景:Agents SDK、Responses API。
版本管理与发布流程
prompt_id: order_intent_v2
model: gpt-4o-mini
temperature: 0
changelog: "区分改地址与改手机号意图"
golden_set: tests/prompts/order_intent.jsonl
- 改 prompt → bump 版本
- 跑 golden set(自动 + spot check)
- Canary 5% → 全量
评测指标
| 任务 | 指标 |
|---|---|
| 分类 | 准确率、混淆矩阵 |
| JSON 抽取 | Schema 通过率、字段 F1 |
| 摘要 | 关键点覆盖(rubric) |
| 客服 | 幻觉率、转人工率 |
用业务 rubric,勿只看 BLEU。
防 Prompt 注入
用户输入可能与 system 冲突。缓解:
- system 声明忽略「泄露 system / 改规则」类指令
- 输入长度限制与模式检测
- 工具执行前服务端权限校验
- 密钥、连接串不进 prompt
ChatGPT 网页 vs API
| 网页 | API |
|---|---|
| 部分 system 不可见 | 完全控制 messages |
| 模型策略随产品更新 | 锁定 model + 参数 |
| 难批量回归 | CI 跑 golden set |
网页适合探索;定稿后迁入 API 并写评测。体验对话:本站 Chat(行为可能与 API 不完全一致)。
常见问题
把规则写进 user 可以吗?
部分接口允许;仍建议 system 角色便于网关统一管理与缓存。
prompt 越长越好吗?
否。冗长浪费 token、稀释重点、增加冲突指令。
换 model 要重测吗?
要。 格式遵循、工具、中文表现因 model 而异。
Assistants 的 instructions 等同 system 吗?
概念类似,但有文件与工具体系;且 API 可能迁移,见 Assistants 指南。
多语言 prompt 怎么管?
按 locale 维护 system;或单一 system 指定输出语言 + 术语表。
官方资源
下一步阅读
行动路径
今天:把生产 system 导出 Git 并加 prompt_id。明天:写 10 条 golden case + 自动校验脚本。本周:改 prompt 必须过 golden 回归,日志记录 model / temperature / prompt_id。
相关内容
ChatGPT / OpenAI 开发指南总览
2026 OpenAI 开发地图:ChatGPT 网页、Platform 控制台与 API 如何分工,以及从入门到生产化的阅读顺序。
OpenAI Platform 开发文档概览
platform.openai.com 控制台、文档导航、Playground、用量计费与组织管理——开发者如何高效找 API 信息。
OpenAI API 快速入门
从 Platform 账户、API Key 到第一条 OpenAI API 调用:Responses/Completions 示例、计费、限流与安全清单(2026 实操向)。
OpenAI ChatGPT API 开发指南
面向业务接入的 OpenAI API 架构、鉴权、流式输出、工具调用、限流重试与生产化清单。