别让生成式参考文档发布没有来源的速率限制
生成式 API 文档会在生产环境出问题:模型插入了 OpenAPI 文件从未记录的速率限制、超时或重试规则。更长的 prompt 解决不了这类错误——空的描述照样引诱出流畅的政策语言。有效的控制手段是构建门(build gate):提取"政策形状"的声明、要求每条声明有引用的来源路径、无来源的政策文本不予发布。之后剩余的每个承诺都由人类对照真实产品决策负责,而不是对照一个可信的补全。
为什么空字段会变成编造的政策
参考文档生成器看到空 description 时,会用听起来像模像样的操作语言把句子补完。存量 OpenAPI 文件常缺延迟、配额、保留期说明,于是模型补上"看起来像真实平台"的整数。审查者漏掉这些发明,因为附近的参数表与 schema 类型、必填标志、示例载荷仍然一致。不一致在之后才暴露——支持人员引用该页,而工程部门在事故里无法为这个数字辩护。
政策声明是与错误类型、过期示例不同的失败模式。打错类型的整数容易对照 schema 抓,而"重试几次"这样的句子不是 schema 对象。生成的故障排查文本尤其危险:它把规范确实拥有的状态码映射,与规范从未声明的恢复建议混在同一段里。这两层要当作不同的发布权限,否则模型会把它们揉进一段话。
什么模型可以起草,什么必须人类负责
在任何模型运行前放一张决策表,放在 OpenAPI 文件旁边而不是聊天 prompt 里。下表是提案(面向公开参考页,非生产审计记录):
| 声明类别 | 授权模型起草的来源 | 人类负责的部分 |
|---|---|---|
| 参数名、类型、必填 | paths.*.parameters 或 component schemas | 字段在产品里为什么存在 |
| 枚举成员与默认字面量 | enum、default 与锁定 fixture | 默认值不会变的承诺 |
| HTTP 状态键与响应 schema | responses 条目带 $ref 目标 | 重试、超时、配额政策 |
| 故障排查建议 | 规范持有的状态码映射 | 恢复步骤(规范从未声明) |
实践建议
- 决策表进仓库、随 OpenAPI 文件走版本控制,而不是塞进 chat prompt;
- 构建门做三件事:提取政策形状声明(限流/超时/重试/配额)→ 要求每条声明给出引用来源路径 → 无来源即不发布;
- 人工评审聚焦"政策形状"句子:这些是最容易被生成器补全、也最难事后在事故里辩护的部分。
来源:Stop Generated Reference Pages From Publishing Unsourced Rate Limits - DEV Community