为什么今天学这个
昨天跑通了 Function Calling 循环。今天处理循环里的下一处薄弱点:模型怎样知道参数该填什么。Tool Schema 用 JSON Schema 描述类型、必填项、枚举和范围;工具描述负责告诉模型何时该用、何时不该用。
让 Agent 的调用链可校验、可恢复、可审计。
昨天跑通了 Function Calling 循环。今天处理循环里的下一处薄弱点:模型怎样知道参数该填什么。Tool Schema 用 JSON Schema 描述类型、必填项、枚举和范围;工具描述负责告诉模型何时该用、何时不该用。
描述控制“选不选”,Schema 控制“申请单怎么填”,服务端控制“能不能真的做”。
完整原生 JS 校验代码、输入和预期输出见同日 Markdown。
增加 repeat 枚举,拒绝过去时间,并写 6 个测试输入。完成条件:3 个合法样本通过;缺字段、未知字段、非法时区分别给出清晰错误;模型不能指定别人的 userId。
Tool Schema 是模型与应用间的参数合同。用清晰描述控制何时调用,用 JSON Schema 收窄输入;服务端仍二次校验权限、业务状态和幂等。破坏性变更用版本化工具名发布。
按选择、结构、业务、安全、演进五层展开;测试同时覆盖合法输入、常见模型错误与恶意参数。
前者帮助选择工具,后者约束参数形状;都不替代服务端校验。
权限、数据库状态和当前时间是动态事实,需要代码判断。
发布新版本并行运行,用日志和回放集验证迁移后再下线旧版。
明天:服务端注册、超时和错误。把今天的 Schema 放进固定注册表,并练习安全失败。