约束与指令清晰度是什么
把要求写成可验收的约束,是提高输出稳定性的第一步:数量、长度、格式、禁止项都要具体到能被检查。负面指令(不要写 X)的遵守率普遍低于正面要求,能改就改成「只输出 Y」。约束条数也存在收益递减,超过五六条后遵守率开始下降。稳态做法是分层:把最关键的三条放在提示最前面,其余约束交给后处理程序校验,提示词与程序校验互为补充。
基本信息
| 可验收原则 | 数字与格式要具体:不超过 300 字、输出 3 条 |
|---|---|
| 正面化改写 | 不要做 X 改为只输出 Y |
| 优先级 | 约束冲突时按编号优先执行 |
| 自查环节 | 要求模型输出后先自查约束符合性再定稿 |
| 条数上限 | 建议不超过 5-6 条 |
| 兜底手段 | 程序侧做正则与 schema 校验 |
典型使用场景
- 对外文案:限定字数、语气与禁用词,降低审核返工
- 客服回复:约束必须包含解决步骤且不得承诺赔偿
- 结构化抽取:约束字段集合与取值格式
- 多语言输出:规定目标语言与专有名词保留方式
- 合规场景:要求不出现具体价格、人名等敏感要素
带优先级的约束清单
带优先级的约束清单
写作约束(冲突时编号小者优先):
1. 全文不超过 300 字;
2. 不出现具体价格数字;
3. 尽量使用短句;
4. 输出为三行,每行一个要点。
完成后自查一遍是否满足全部约束,未满足则修改后再输出。
# 只有被违反后果最重的约束才进入提示;其余交给程序校验
# 自查环节对格式类约束收益最明显,对内容类约束收益有限约束写法对照
| 弱写法 | 问题 | 改法 |
|---|---|---|
| 尽量简短 | 没有可验收标准 | 不超过 200 字 |
| 不要出现价格 | 负面约束遵守率低 | 只输出描述性文字,金额单独放入指定字段 |
| 格式规范一点 | 标准模糊 | 输出三行,每行一个要点,行首加序号 |
| 写得专业一些 | 无法判定 | 使用第三人称,去掉口语词与感叹号 |
约束互相冲突又不设优先级时,模型会随机牺牲其中一项,表现为同一输入反复出现不同缺陷。写约束清单时先自己检查是否互斥。
把格式类约束交给程序校验比反复调提示词更划算:JSON schema 与正则能拦住绝大多数格式问题,提示词只需保证语义正确。