用途:Schema Cleaner 用于把 JSON Schema 规范化为不同 LLM 提供商可接受的子集,解决工具调用(tool-calling)中因 Schema 关键字差异导致的兼容问题。
主要能力:按提供商清理不支持的字段(如 Gemini 不支持 $ref、$defs、additionalProperties、pattern、minLength、maxLength、format、minimum、maximum、examples 等);内联 $defs 与 definitions 中的 $ref;把含字面量的 anyOf/oneOf 转为 enum;从联合类型与类型数组中移除 nullable 变体;把 const 转为单值 enum;检测并安全处理循环引用。
使用方式:提供 JavaScript API,包括 cleanSchema(schema, { provider }) 按提供商清理,validateSchema(schema) 返回错误列表,resolveRefs(schema) 内联引用。也提供 CLI:schema-cleaner clean schema.json --provider gemini --output clean-schema.json、schema-cleaner validate schema.json、schema-cleaner check schema.json --all-providers。支持自定义策略(remove/preserve 关键字)与批量处理。
适用场景:为 Gemini、Anthropic、OpenAI 等不同提供商准备工具定义参数;在运行时按当前提供商动态清理 Schema;在注册工具前规范化参数。
限制:资料未提供安装命令、包版本、许可证、性能数据及对各提供商支持矩阵的官方来源;兼容性矩阵与示例结果均来自资料描述,实际行为需以对应提供商文档为准。