// client.go - LLM 客户端工厂(按 Config.Protocol 路由到具体实现) // Logan.Li // 上层(controller/agentcli)统一调 NewClient,无需感知协议差异。 // 新增协议只需在此分支 + 实现对应 Client。 package llm // NewClient 按 Config.Protocol 选择 LLM 客户端实现 // Logan.Li // "anthropic" → Anthropic Messages 协议(Claude 官方 / 智谱 GLM 编码套餐等); // 其余(含空值)→ OpenAI 兼容协议。 func NewClient(cfg Config) Client { if cfg.Protocol == "anthropic" { return NewAnthropicClient(cfg) } return NewOpenAIClient(cfg) }