AI Agent依赖注入:换模型不换代码

📘 AI教程 💬 🔥 Trending

🩺 摘要

今天用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

总结

依赖注入不是设计模式,是常识。 任何可能更换的组件都不要硬编码。模型会变、数据库会变、工具会变——靠注入,改一行配置就行。