题目
不同模型供应商支持的消息格式和 Tool Schema 不一致时,如何进行适配?
答案
在业务层定义统一的内部表示,例如文本消息、图片块、工具请求、工具结果和结束原因,再为各供应商编写输入、输出转换器。 适配不能只改字段名。还要处理角色限制、调用 ID、并行工具能力、Schema 支持范围、流式参数片段,以及拒绝和截断信号。工具定义转换失败时应显式报错,不能静默删除关键约束。 可以维护能力表:某模型是否支持原生结构化输出、是否允许多次工具调用、哪些参数有效。业务按能力选择路径,例如不支持并行工具时改为串行。 ![把供应商差异收在适配层](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/question/agent-development/extra-provider-adapters-4ce82e9ce5643c90.png) 验证时用一套契约样本跑各适配器,检查同一业务输入能否获得等价的执行结果。保留脱敏后的原始响应和统一事件,便于定位究竟是模型行为问题还是转换丢失信息。