其实,让OpenClaw在执行日常任务时优先调用本地Ollama免费模型,从而把Token消耗直接归零,并没有想象中那么复杂。只需要几个步骤,就能让qwen2.5:7b或llama3.2这类模型成为默认主力,90%以上的简单任务完全不需要跑云端API。

你可能会想:具体怎么做?别急,下面一步一步来,只要按顺序操作,就能把本地模型牢牢绑定到OpenClaw上。
确认本地Ollama服务已就绪
打开终端,先跑 ollama list,看看输出里有没有 qwen2.5:7b 或 llama3.2:latest 这样的条目。如果没有,就赶紧 ollama pull qwen2.5:7b 把模型拉下来。这一步是地基,搞不定后面全是白搭。
然后确保 ollama serve 在后台运行(默认监听 http://127.0.0.1:11434),这就是OpenClaw访问本地模型的唯一通道。
修改OpenClaw模型配置文件
编辑 ~/.openclaw/openclaw.json,找到 "models" 下的 "providers" 区块,把原来的云端模型配置删掉,换成下面这段本地Ollama配置:
{ "local-ollama": { "type": "ollama", "baseUrl": "http://127.0.0.1:11434", "model": "qwen2.5:7b", "temperature": 0.3, "maxTokens": 2048 } }
特别注意:model 字段必须和 ollama list 里显示的名称一模一样,包括版本号和冒号。别写成 qwen2.5 或 qwen2.5:latest,否则会触发404错误,然后OpenClaw会自动回退到云端模型,白白浪费Token。
设置模型优先级与自动降级策略
在同一个文件的 "agents" → "defaults" → "model" 路径下,配置成这样:
"primary": "local-ollama/qwen2.5:7b",
"fallbacks": ["siliconflow/qwen2.5:7b", "dashscope/qwen-max"]
这样一来,所有任务默认走本地Ollama;只有本地服务挂了(比如端口被占、进程崩溃),才会按顺序尝试硅基流动的免费API和通义千问的付费API。注意,fallback列表里千万别放 gpt-4o 或 claude-3-opus 这种高成本模型,不然一不小心就会产生高额账单。
启用结构化指令与动作缓存
在 openclaw.json 同级目录下,找到或新建 skill-config.json,添加以下内容:
{ "taskDescriptionStyle": "structured", "structuredTemplate": "[动作类型]:[目标对象]", "execution": { "enableActionCache": true, "cacheTTL": 3600 } }
这个配置会让OpenClaw把“点击微信图标”压缩成 CLICK:WeChat 这样的短格式,而不是生成完整句子。配合缓存机制,对重复操作(比如每小时检查邮件)能减少28%以上的Token生成量。保存后不用重启,下次任务立即生效。
验证本地模型是否真正接管
启动OpenClaw后,盯着控制台日志看,找到包含 Using model: local-ollama/qwen2.5:7b 的行。如果同时看到 Connecting to http://127.0.0.1:11434 且没有 Failed to connect 报错,说明本地模型已经成功上岗。
试试执行一条简单指令,比如“把当前桌面截图保存为png”,观察响应时间——本地模型通常在800ms内返回结果,而云端API普遍需要2到5秒。响应快,就意味着流量没有外泄,Token自然也没被浪费。
