先这样答
统一多模型 API,应该在网关层做协议适配。网关定义统一的内部请求 schema。上层只依赖这套 schema,不直接处理各家 SDK 的差异。消息格式、工具调用字段、流式事件,都放到适配器层转换。这样接入不同模型时,上层调用方式保持一致。
网关还要维护模型能力元数据。元数据可以描述上下文长度、工具调用格式、视觉支持等能力。上层根据任务需要和能力声明做路由,而不是只按模型名称写死分支。这样新增模型时,主要新增适配器和能力注册信息。
实现时要重点检查工具调用。各家对并行调用和错误格式的语义可能不同。不能只测普通文本和单次调用,要做端到端测试,确认请求经过网关、适配器和模型后,工具调用结果仍然符合内部约定。流式事件也要覆盖,避免不同厂商的事件差异直接传到业务层。
面试官会怎么追问
-
「为什么不让业务方直接使用各家的 SDK?」 业务方直接接 SDK,就会把消息格式、工具字段和流式事件差异带到上层。网关统一协议后,业务只依赖内部请求 schema,模型切换和新增接入的影响更集中。
-
「能力元数据具体解决什么问题?」 它把上下文长度、工具调用格式、视觉支持等信息注册起来。上层可以按任务需要选择具备对应能力的模型,路由逻辑不必散落在各个业务分支里。
-
「工具调用的端到端测试要测什么?」 要覆盖并行调用和错误格式,因为不同模型的语义细节可能不同。还要验证流式事件和最终工具结果经过适配后,仍符合统一的内部约定。
回答的坑
- 只统一文本请求,却忽略消息格式、工具字段和流式事件,业务层仍然会被各家差异绑住。
- 只测正常调用,不测并行工具调用和错误格式,适配器上线后容易出现语义不一致。
同系列的题
这家公司的面经实录
—— 本题完 ——