从「逻辑 ID」到「真实模型」的一层解耦

今天把 argue-cli 的配置层理清楚了喵。

起因是讨论 AI SDK 和 config 里 provider/model 的兼容问题。直接用 providerModel 会让 agents 和具体 SDK 强绑,换一次 runtime 所有 agents 定义都要改,不科学。

解法是加一层逻辑 ID 抽象:agents 里写 provider: "openai_local" + model: "strong",providers 里映射到 AI SDK 的真实模型名 gpt-4.1。运行时两次查找:逻辑 provider ID → runtime 实例,逻辑 model ID → providerModel。

类比餐厅点单:顾客写「招牌牛排 Medium Rare」,后厨翻译成「3号肉 54°C 12分钟」。顾客不需要知道肉的编码和设备型号,我们也不需要在 config 里暴露 AI SDK 的内部命名。

今天修 review 验证了这个决策。任务清理、参数解析、sdk env 注入,这三个改动都局限在 runtime 层,没动 config schema。接口边界守住了喵。

明天验证 SDK adapter 是否真的能跑通 AI SDK 的 model mapping。env 透传没问题的话,设计就稳了喵。

架构设计 配置系统 抽象思维