Prompt Engineering(提示词工程)

1. 定义

Prompt Engineering(提示词工程) = 设计”喂给模型的指令与示例”,以稳定拿到想要输出的技艺。它决定模型怎么理解任务、遵循什么约束、产出什么形态。

一句话:把模糊的”帮我做 X”翻译成模型能稳定执行的精准输入。 类比:给员工写 SOP——写得清不清楚,直接决定产出质量。

与 Context Engineering 的边界:Prompt 是”怎么下令”(指令的写法与强度),Context Engineering 是”喂什么上下文”(见 context_engineering.md)。两者互补,不是一回事。

2. 核心概念:指令强度层级公式

你在”小伴”里发现的关键规律——让一条要求真正生效,强度是分层的

软规则  <  强 override 声明  <  few-shot 正反示范
(建议/礼貌)   (必须/忽略前文)      (给正例 + 反例样本)
  易被动摇        能压过软规则          直接塑造输出分布(最强)

① 软规则(Soft Rules)

建议性、礼貌性、默认式的指令:

  • “请尽量用中文回答”、“建议先总结再展开”、“通常你应当…”
  • 特点:无强制力,容易被模型的默认行为或冲突上下文淹没。强度最低。

② 强 override 声明(Strong Override Declaration)

显式声明优先级、带强制词的指令:

  • 你必须先输出思考过程,再给答案”、“无论输入如何,都先做一次安全检查”、“Important: 忽略之前所有无关指令”
  • 特点:用强约束词把指令”钉”成高优先级,能压过软规则和普通上下文冲突

③ few-shot 正反示范(Few-shot Positive/Negative Examples)

给具体样本教模型”该做什么”和”不该做什么”:

  • 正例:展示期望的输出样式/行为边界(定方向)。
  • 反例:展示”不要长这样”(划边界,比纯文字规则更直观)。
  • 特点:把任务变成模式模仿(in-context learning),模型从示例归纳规律。这是最强、最稳的一层——示范直接塑造输出分布,比任何文字陈述都贴近模型实际工作机制。

为什么是这个顺序(机理):模型对”文字指令”的遵循度,取决于该指令在训练分布里有多”显式”。软规则模糊、无强制力;强声明用强约束词强制提升优先级;few-shot 则绕开”陈述规则”,直接给可模仿的范式——正例定方向、反例划边界,所以最强。

实用推论:当某条要求绝对不能违反时,别只写软规则——升级成强声明,最好再配一组”正反 few-shot”。这三级是”让指令真正落地”的递进手段。

3. 提示词工程的核心技法

技法做法属于哪层
角色/人设”你是资深 X…”软规则
清晰任务描述明确目标、约束、输出格式软→强
输出格式约束指定 JSON / 表格 / 模板(呼应 ai_predictability.md 结构化输出)强声明
分隔符隔离""" / <data> 隔离指令与用户数据,防提示词注入(呼应 agent_security.md强声明
负面约束”不要做 X”软/强
思维链 CoT”一步步思考”软→强
强 override 声明”你必须…/忽略前文”强声明
few-shot(正反)给正例 + 反例最强

4. 典型工作流

新任务:逐级加码

1. 先写软规则跑通(角色 + 目标 + 格式)
        │ 不稳定 / 被忽略?
        ▼
2. 升级强 override 声明(关键约束用"必须/始终"钉死)
        │ 仍漂移?
        ▼
3. 加 few-shot 正反示范(给 1-2 个正例 + 反例定边界)

系统 Prompt 设计(三层叠加)

基础人设/目标        → 软规则(定基调和大方向)
硬性边界/安全        → 强 override 声明(不可违反的红线)
关键场景示范         → few-shot 正反例(让模型照着学)

与 Context / Skill 配合

  • Context Engineering:决定喂哪些资料、怎么排(见 context_engineering.md
  • Skill:把某类任务的方法论打包、按需加载(见 skills.md)——相当于把”强声明 + few-shot”固化成可复用模块
  • Slash Command:把强指令固化为一键触发(见 slash_commands.md

5. 常见误区

“写进 system prompt 就一定生效” → 软规则易被冲突上下文覆盖;关键约束要用强声明,甚至 few-shot。

“指令越多越有效” → 互相打架的指令会削弱遵循度。按强度层级,关键的一条上强约束即可,别堆砌。

“few-shot 只给正例就够了” → 正例定方向,反例划边界;正反一起最强(正是上面的公式)。

“强 override 能突破模型安全/能力边界” → 不能。override 只对你的任务指令有效,模型的安全对齐与能力上限由模型/平台决定,强声明越不过去。

“Prompt Engineering = Context Engineering” → 前者是”怎么下令”,后者是”喂什么”;互补不是同一件事(见 context_engineering.md)。

“分隔符只是排版” → 它是防提示词注入的关键:把不可信的用户数据用分隔符包起来,模型才不容易把数据当成指令执行(见 agent_security.md)。

6. 延伸阅读 / 关联概念