模型配置与多模型策略
模型提供商(Provider)的概念
OpenClaw 本身只是一个驱动执行框架,它并不包含任何“思考能力”。在前面安装好系统后,我们需要给它接上“大脑”——大语言模型(LLM)。
与那些绑定在单独一家的闭源应用不同,OpenClaw 采用了解耦的架构,允许我们灵活配置多种 模型提供商 (Provider) 组合,并随时动态切换。
通过配置文件配置底座
想要修改或增加模型,你需要编辑核心系统文件:~/.openclaw/openclaw.json。
用编辑器打开它,找到 "models" 结构部分。这是模型配置的神经枢纽:
{
"models": {
"providers": {
"openai": {
"apiKey": "sk-your-openai-api-key"
},
"anthropic": {
"apiKey": "sk-ant-your-claude-key"
},
"ollama": {
"baseUrl": "http://localhost:11434"
}
},
"defaults": {
"model": {
"primary": "anthropic/claude-3-5-sonnet-20241022"
}
}
}
}
云端模型配置说明
对于像 OpenAI (GPT-4o) 和 Anthropic (Claude 3.5 Sonnet) 这种云端模型,只需要如上所示提供认证密钥(apiKey)即可。
最佳实践:如果为了避免直接硬编码密码带来的泄漏风险,建议使用系统的环境变量(例如使用
"apiKey": "${OPENAI_API_KEY}"语法,部分版本支持模板映射)。
本地模型接入 (Ollama)
如果你追求极致隐私或者省流需求,可以在同一台机器上运行 Ollama。
安装并运行 Ollama 后,在它背后拉取模型(如 ollama run qwen2.5:14b)。随后在 OpenClaw 中配置如上 baseUrl 指向 11434 端口即可。这样系统就有了零成本驱动的本地大脑可供差遣。
配置修改后生效机制:
任何涉及 openclaw.json 的修改,必须重启底层的服务才能生效:
openclaw gateway restart
模型切换的三种方式
模型虽然配置了多个,但系统同一时刻干某个任务时总得取用一个默认的。OpenClaw 的切换哲学是命令驱动式的。
方式 A:临时聊天指令切换(最常用,当前会话有效)
假设你正在与 Agent 聊天讨论一个棘手的算法问题,你觉得当前的默认低成本模型搞不定,你可以在聊天输入框中直接下打命令:
/model anthropic/claude-3-5-sonnet-20241022
此时,此聊天窗口的后继对话以及代理任务,将变更为使用 Claude 3.5。如果此时窗口被关闭重开,通常会还原为系统默认模型。
方式 B:CLI 全局修改默认模型(立刻生效)
在终端界面中,通过内置的 CLI 管理指令永久生效地修改默认主干模型:
openclaw models set anthropic/claude-3-5-sonnet-20241022
方式 C:修改 openclaw.json(持久化)
如上一节示例结构中的 "defaults" -> "primary" 字段,写死在这里,重启 Gateway,之后所有新会话都会挂在这个模型下。
进阶:为什么要使用“多模型协作策略”?
随着你的 Agent 工作越来越繁重,单纯依靠一个顶配云端模型(比如 Claude 3.5 Sonnet)做所有事情会显得非常“昂贵”且低效。我们可以通过策略做到降本增效:
1. 任务切割与性价比配置
- 重脑力逻辑(例如分析代码 bug、跨文档归纳总结、生成复杂 shell 脚本):通过显式指令将其切换为
Claude 3.5负责执行。 - 轻量化及频繁轮询任务(例如 Cron 定时任务负责检测特定网页是否更新,或是定点向 Telegram 发送“现在是整点”报时):这类无需过高智力且产生大量 Token 的请求,交给本地接入的 Ollama (如 Qwen 2.5 或 Llama 3),可以做到无限次执行零边际成本。
2. 多智能体解耦结合(Multi-Agent)
后文关于"创建智能体"章节我们将讲解,您可以给不同的 Agent 绑定不同的底层引擎。让一个挂载着轻量模型的“侦查兵(Scout)”在前方获取基础信息加工格式,然后调度将数据送回挂载着昂贵模型的“指挥官(Commander)”手中进行最终裁决。
通过这些配置组合,你可以打造出一套既拥有超强推理能力,又不必承担高昂日常轮询账单的智能体系统。