让大模型稳定输出 JSON 是 Agent 工程的老大难。我试下来最稳的组合是:用原生 function calling(别让模型自由生成 JSON 字符串)+ 严格 schema + 温度设 0。
如果只能走自由生成(比如某些场景),用"JSON 模式"加固定的前后缀提示,能把成功率拉到九成以上:
请仅输出合法 JSON,不要包含任何解释、注释或 markdown 代码块标记。
输出必须严格符合以下结构:
{"action": "create" | "update" | "delete", "target": string, "params": object}
剩下的靠 zod 校验兜底。你们的稳定 JSON 方案是啥?