AI Agent依赖注入:换模型不换代码
🩺 摘要
今天用GPT-4o,明天想换Claude——代码要改50处?依赖注入让你改一行配置就行。
📝 详情
一个Agent,里面硬编码了3处OpenAI的API调用。想换DeepSeek——改了一个下午,还有两个地方忘改了,调用一半OpenAI一半DeepSeek,多花了一倍的钱。
依赖注入的核心思想
不要new对象,让别人给你。 Agent不需要知道具体用的是什么模型或数据库,它只需要知道"有一个能回答问题的东西"。
# ❌ 硬编码
class Agent:
def __init__(self):
self.llm = OpenAI(model="gpt-4o")
# ✅ 依赖注入
class Agent:
def __init__(self, llm):
self.llm = llm # 可以是任何兼容的模型
agent = Agent(llm=OpenAI(model="gpt-4o")) # 或者Claude(),或者DeepSeek()
换模型只需改一行配置
# config.yaml
llm:
provider: deepseek # 改这里就行
model: deepseek-chat
总结
依赖注入不是设计模式,是常识。 任何可能更换的组件都不要硬编码。模型会变、数据库会变、工具会变——靠注入,改一行配置就行。
💬 评论 (0)