# 用 API 原生结构约束替代提示词校验，Claude 输出解析成功率从 65% 跳到 90%+

> 原标题：Moved from prompt-based output validation to schema-enforced execution — the reliability numbers are significant

- 来源：r/LocalLLaMA
- 发布时间：2026-05-21T02:27:00.000Z
- AX AI 日报：https://ai-daily.ax0x.ai/items/24663
- 原文：https://www.reddit.com/r/LocalLLaMA/comments/1tj6zcc/moved_from_promptbased_output_validation_to/

## 摘要

一位 Reddit 用户对比了两种让 Claude 稳定输出结构化数据的方法。靠提示词描述格式再事后用正则或 JSON 解析（方案 A），首次解析成功率只有 65%–70%；换成直接调用 tool_use 功能，用强类型 schema、枚举值约束和分步校验（方案 B），成功率拉到 90%–95% 以上。方案 B 的原理是让 API 在模型生成前就卡死输...

## 推荐理由

我会先打个折：数据来自 Reddit 个人测试，样本量和具体任务都没披露，不能当正式基准看。但 hook 很清晰——从提示词正则校验换成 schema 强制输出，首轮解析率从 65–70% 拉到 90–95%+，说明让模型按类型 schema 直接吐结果比事后用正则捞靠谱得多。这点先别太激动，正文没交代测试条件，但方向对工程选型有参考价值，所以给 featured 低档。

## 锐评

这条分享了一个很实际的工程经验：想让模型稳定吐 JSON，别光在提示词里写“请输出 JSON”，而是直接用 API 的 tool_use 功能，在生成前就把字段类型、枚举值这些约束锁死。作者在 Claude 上对比了两套方案，靠提示词描述格式再事后解析重试，首次成功率只有 65%–70%；换成强类型 schema 加分步校验，直接拉到 90%–95% 以上。这个提升幅度说明，把结构校验从“事后补救”挪到“事前卡死”，能省掉大量调试时间。

代价是前期设计 schema 的工作量会变大，但作者也提醒别把 schema 写得太复杂，过度设计反而会让模型输出跑偏。给字符串字段加枚举约束是个性价比很高的做法。

不过这条信息来自 Reddit 个人测试，正文没披露具体任务类型、样本量和模型版本，也没说方案 B 的延迟和 token 消耗增加了多少。如果是真的，这个思路对做结构化提取、表单填充、API 参数生成的场景挺省钱，但换到其他任务上能不能复现还不好说。
