← 返回首页

构建模型无关的 AI Agent

大多数 AI Agent 框架在诞生之初就绑定了特定的模型供应商。LangChain 最初围绕 OpenAI 构建,Claude Code 当然是 Anthropic 专属。但实际使用中,我们经常需要在不同模型之间切换——可能因为成本、延迟、能力匹配,或者单纯不想被锁定。

什么是模型无关架构

模型无关(Model-Agnostic)意味着你的 Agent 核心逻辑不依赖任何特定模型的 API 格式。切换模型只需要改一行配置,不需要重写工具定义、提示词模板或控制循环。

核心设计原则

1. 统一的工具描述格式——使用 JSON Schema 或 Function Calling 标准格式定义工具,这是几乎所有主流模型都支持的协议。

2. 适配器模式——为每个模型供应商写一个轻量适配器,负责将统一的消息格式转换为该模型期望的格式。

3. 提示词与模型解耦——系统提示词不包含任何模型特定的指令(如 "You are Claude"),保持通用性。

实践:一个最小实现

以下是 Python 伪代码,展示模型无关 Agent 的核心结构:

class ModelAgnosticAgent:
    def __init__(self, model_adapter, tools, system_prompt):
        self.model = model_adapter       # 适配器
        self.tools = tools               # 统一工具定义
        self.messages = [{"role": "system", "content": system_prompt}]

    def run(self, user_input):
        self.messages.append({"role": "user", "content": user_input})
        while True:
            response = self.model.chat(self.messages, self.tools)
            if response.is_final:
                return response.content
            result = self.execute_tool(response.tool_call)
            self.messages.append({"role": "tool", "content": result})

切换模型时,只需要换一个 adapter:

# 用 Claude
agent = ModelAgnosticAgent(ClaudeAdapter(), tools, prompt)
# 换成 DeepSeek
agent = ModelAgnosticAgent(DeepSeekAdapter(), tools, prompt)

推荐框架

如果你不想从零开始,以下框架原生支持模型无关:

smolagents(HuggingFace)——轻量级,支持任何 HuggingFace 模型或外部 API。

DSPy——声明式编程,自动优化提示词,模型只是可替换的参数。

Hermes Agent——支持多 provider 配置,一个 agent 多个模型后端。

结论

模型无关架构的额外开发成本很低(主要是一个适配器层),但带来的灵活性是巨大的。你可以根据任务难度选择不同模型:简单任务用便宜的模型,复杂推理用最强的模型——同一个 Agent,同一套代码。