抽取失败的回传修复循环
程序校验失败后,不要重新抽取,而是把校验错误信息连同上一版输出一起回传,让模型只修出错的部分。修复比重新生成更稳定,因为其余字段已经正确,不需要再赌一次采样。循环必须有纪律:明确的错误描述、只修错误的指令、次数上限与降级路径。
基本信息
| 输入 | 校验错误要具体到字段与期望形态 |
|---|---|
| 策略 | 修复轮可降低采样随机性;连续失败 2 次转人工或丢弃 |
| 指令 | 只修复错误字段,其余字段原样保留 |
| 记录 | 失败样本并入回归集,用于改进提示 |
典型使用场景
- 字段类型不符:金额被写成字符串,回传错误后只修该字段
- 枚举越界:状态字段取值不在允许集合内
- 格式不合规:日期写成中文格式,需要转成标准格式
- 结构缺字段:JSON 少了一个必填键,补上即可
- 批量管道:把可修复的样本拦在入库之前,减少人工介入
修复轮模板
修复轮模板
上一次输出未通过校验,错误如下:
- 字段 amount 应为数字,实际为 "1,280.00元"
- 字段 status 取值不在允许集合内(open/closed/pending)
请只修复上述错误,其余字段保持不变,
重新输出完整 JSON,不要添加解释文字。
<last_output>
……
</last_output>
# 重试纪律
# 1) 每次回传必须带具体字段与期望形态
# 2) 连续失败 2 次即转人工或标记丢弃,不要无限重试
# 3) 失败样本并入回归集,用于改进提示与校验规则修复循环要素读法
| 要素 | 做法 | 失控后的表现 |
|---|---|---|
| 错误描述 | 具体到字段名与期望形态 | 只回传「格式错误」,模型自由发挥改动其他字段 |
| 修复范围 | 只修错误字段,其余原样保留 | 每次重试都重写全文,引入新的错误 |
| 次数上限 | 连续 2 次失败即降级 | 在不可修复样本上反复消耗配额 |
| 降级路径 | 转人工或标记丢弃并告警 | 失败样本静默丢失,缺失率异常升高无人知 |
| 失败样本回流 | 并入回归集 | 同类问题反复出现,改进没有依据 |
回传时把上一版输出原文一并给模型,比让它重新生成更省成本也更稳定。修复轮通常可以把采样随机性调低,让输出更贴近期望形态。
修复失败率本身是个有价值的指标:某字段修复失败率持续偏高,通常说明提示里对该字段的描述不够清晰,或者上游数据本身就缺少这个信息。