提示词其实是一个"接口"
提示词常被当成"一段文本" ✔,于是改起来随意、测起来困难 ✔。
**把它当接口看** ✔:有输入契约、输出契约、版本与兼容性 ✔ —— 很多混乱自然消失 ✔。
一、输入契约(模板的"参数表")
```
变量名 | 类型 | 是否必填 | 约束 | 缺失时的行为
doc string 必填 ≤ 20000 字 截断并标注
lang enum 可选 zh/en 默认 zh
```
**要点**:
二、输出契约(模板承诺产出什么)
**输出契约要与"校验"一致** ✗→✔:模板说"必须给引用",校验就得查引用 ✔ —— 两边不一致等于没有契约 ✔。
三、版本与兼容性
四、接口化的三个好处
1. **可测**(输入契约固定 → 可以构造用例 ✔ —— 见边界用例库 ✔);
2. **可复用**(同一模板被多处调用 ✔ —— 见提示词库 ✔);
3. **可替换**(换模型/换实现,只要契约不变,下游不受影响 ✔)。
五、一份最小契约文档
```
模板名 / 版本 / 负责人
输入:变量表(类型、必填、约束、缺失行为)
输出:格式、必含字段、内容约束
变更历史:日期 / 变更类型(兼容 / 破坏)/ 影响面
```
一条判据
> 一个新同事能否**只读契约**就正确调用这个模板 ✔(不问作者 ✔),并知道输出该怎么校验 ✔?
> 不能,说明提示词还只是一段文本,不是接口 ✗。