大多数 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,同一套代码。