最小订单查询规则
{
"type": "object",
"properties": {
"order_id": { "type": "string", "minLength": 1 }
},
"required": ["order_id"],
"additionalProperties": false
}
模型可能返回 {"order_id":42}:这是合法 JSON,却不符合上面的字符串约束;也可能返回额外字段 "admin":true,不能因为它来自模型就信任。先做语法检查,再用支持 JSON Schema 的验证器检查类型和字段。本站 JSON 工具目前只做语法层,不会声称它验证了 Schema。
Schema 通过仍不够
即使 order_id 是合法字符串,还要检查当前用户是否有权查看该订单、工具是否允许在当前会话使用、调用频率是否合理。如果工具能发邮件或修改数据,必须考虑确认、幂等和审计。模型生成的参数应被视为外部输入,而不是可信内部指令。
错误应该返回给谁
缺少订单号时,直接请用户补充信息;类型不对时,向模型返回可机器理解的校验错误或在应用层拒绝。不要把数据库内部异常和完整对象原样显示给最终用户。追踪记录保留调用标识、校验阶段和错误代码即可。
先验证再执行,比执行失败后从日志里猜参数问题更便宜,也更容易阻止越权读取和重复写入。
参考:JSON Schema 对象与必填字段。Agent 调用实验中有相同订单号的失败路径。