必须依赖统一抽象层屏蔽底层模型差异,具体路径包括:一、启用Model Router网关;二、配置litellm适配层;三、使用Message类协议无关调用;四、部署OpenCode统一接口代理;五、通过Skills插件注册模型别名。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用OpenClaw过程中需要动态调用Qwen3-4B、CodeLlama、Claude等不同大模型,但又不希望每次更换模型都修改技能逻辑或重写任务函数,则必须依赖统一抽象层屏蔽底层模型差异。以下是实现该目标的具体操作路径:
一、启用OpenClaw内置的Model Router网关
Model Router是OpenClaw v2026.3.31起默认集成的模型路由中间件,它将所有模型请求统一接入/v1/chat/completions标准端点,并根据策略自动分发至对应后端模型服务,业务代码仅需对接单一URL即可。
1、确认当前OpenClaw版本不低于2026.3.31:openclaw --version
2、检查Router服务是否运行:systemctl is-active openclaw-router
3、若未启用,执行启动命令:sudo systemctl start openclaw-router
4、验证路由健康状态:curl http://localhost:8080/health,返回{"status":"ok","routed_models":3}表示已加载3个模型
二、配置litellm兼容适配层
litellm作为轻量级协议转换代理,可将OpenAI格式请求实时转译为vLLM、Ollama、Anthropic等任意后端所需的协议,避免业务侧感知模型厂商差异。OpenClaw通过skills.plugin.litellm模块原生支持该能力。
1、安装litellm运行时:pip install litellm==1.52.0
2、在~/.openclaw/plugins/litellm/config.yaml中声明多模型映射:
model_list:
- model_name: qwen3-4b
litellm_params:
model: "ollama/qwen3:4b"
api_base: "http://localhost:11434"
- model_name: claude-3-haiku
litellm_params:
model: "anthropic/claude-3-haiku-20240307"
api_key: "sk-ant-api03-..."
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
三、使用Message类实现协议无关调用
OpenClaw的Message类已内建双路径序列化机制,自动识别目标模型是否支持多模态、工具调用或缓存功能,并选择string或list格式输出。业务代码只需构造Message对象,无需关心底层模型接口差异。
1、在skill代码中导入标准消息类:from openhands.core.message import Message, TextContent
2、构建通用消息体:msg = Message(role='user', content=[TextContent(text='生成SQL查询')])
3、发起调用时指定模型标识符:response = openclaw.chat(model='qwen3-4b', messages=msg.serialize_model())
4、无论后端是Ollama、vLLM还是Anthropic API,serialize_model()均返回适配该模型的合法请求体
四、部署OpenCode统一接口代理
OpenCode是专为OpenClaw设计的反向代理服务,提供/v1/chat/completions单一入口,内部完成模型发现、负载均衡与协议转换。它使业务系统彻底脱离对具体模型部署拓扑的依赖。
1、拉取OpenCode镜像:docker pull registry.openclaw.dev/opencode:v2026.4
2、创建opencode-config.json,填入各模型服务地址及权重:
{"endpoints": [{"model": "qwen3-4b", "url": "http://vllm:8000/v1", "weight": 70}, {"model": "codellama-7b", "url": "http://ollama:11434", "weight": 30}]}
3、启动代理容器:docker run -p 8000:8000 -v $(pwd)/opencode-config.json:/app/config.json opencode:v2026.4
4、业务代码直连http://localhost:8000/v1/chat/completions,请求头中添加X-Model-Preference: qwen3-4b即可定向调度
五、通过Skills插件注册模型别名
在skills定义中声明模型别名,可将物理模型ID(如qwen3-4b-vllm)与逻辑名称(如report-writer)解耦。当底层模型升级或替换时,仅需更新插件配置,技能代码零改动。
1、编辑skills/email-helper/skill.yaml:
models:
report-writer: qwen3-4b
code-helper: codellama-7b
2、在技能执行函数中调用:self.llm_completion(model_alias='report-writer', prompt=...)
3、后续如将report-writer切换为Qwen3-8B,仅需修改yaml中对应行,无需触碰Python逻辑

















