Skip to content

Prompt Engineering 指南

最后更新:2026-08-12· 18 分钟阅读

🚀 快速通道

  • ChatGPT 国内版:点击直达↗
  • 稳定镜像站:打开镜像↗
  • 官方 ChatGPT:chatgpt.com ↗

Prompt Engineering 指南

更新时间: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 设计

  1. 边界清晰:能做什么、不能做什么、不确定怎么说。
  2. 格式可解析:JSON key、枚举、表格列名写死。
  3. 拒绝策略:资料外不编造;敏感转人工。
  4. 与 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
  1. 改 prompt → bump 版本
  2. 跑 golden set(自动 + spot check)
  3. 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。

相关内容