分类 人工智能 下的文章

OpenClaw 修改默认大模型 3 种完整方法(适配你Ollama本地千问/DeepSeek-R1)

前置规则

模型完整格式: ollama/模型ID 
示例: ollama/qwen3.5:4b-reasoning 、 ollama/deepseek-r1:latest 

方法1:命令行一键设置默认(最简单,推荐)

不用手动改JSON,直接终端执行,自动写入配置

  1. 先查看所有已配置模型

bash

openclaw models list
 

  1. 设置默认模型(永久生效,全局智能体)

bash

切换千问3.5 4B reasoning

openclaw models set ollama/qwen3.5:4b-reasoning

切换DeepSeek-R1 8B

openclaw models set ollama/deepseek-r1:latest
 

  1. 重启网关加载新配置

bash

openclaw gateway restart
 

  1. 验证是否生效

bash

openclaw models status
 

输出里  Default  字段就是当前默认模型。

方法2:手动修改配置文件(精细自定义,适合调显存/上下文)

配置文件路径: ~/.openclaw/openclaw.json 

步骤1:编辑文件

bash

nano ~/.openclaw/openclaw.json
 

步骤2:找到  agents.defaults.model.primary  修改

json

"agents": {
"defaults": {

"llm": {
  "idleTimeoutSeconds": 1800,
  "timeoutSeconds": 300,
  "compactContext": true
},
"model": {
  // 修改这里,填 ollama/你的模型名
  "primary": "ollama/qwen3.5:4b-reasoning",
  // 备选兜底模型,主模型断了自动切换
  "fallbacks": ["ollama/deepseek-r1:latest"]
}

}
}
 

步骤3:确保Ollama模型已注册(关键,否则报错找不到模型)

往下找到  models.providers.ollama.models ,确认里面有你要用的模型ID:

json

"ollama": {
"timeoutSeconds": 300,
"baseUrl": "http://127.0.0.1:11434",
"models": [

{
  "id": "qwen3.5:4b-reasoning",
  "name": "Qwen3.5 4B Reasoning",
  "contextWindow": 8192,
  "maxTokens": 2048
},
{
  "id": "deepseek-r1:latest",
  "name": "DeepSeek-R1 8B",
  "contextWindow": 8192,
  "maxTokens": 2048
}

]
}
 

步骤4:校验配置语法,防止写错启动失败

bash

openclaw config validate
 

无报错再重启网关:

bash

openclaw gateway restart
 

方法3:单会话临时切换(仅当前对话生效,不修改全局默认)

在飞书/OpenClaw对话窗口内输入指令,临时换模型,重启会话会恢复全局默认:

plaintext

/model ollama/deepseek-r1:latest
 

查看当前会话模型:

plaintext

/model status
 

查看全部可用模型:

plaintext

/models
 

关键避坑点(你本地Ollama高频踩坑)

1. 模型ID必须和Ollama一致
 ollama pull  拉取的名字是什么,配置里id就写什么,大小写、冒号不能错。
2. 修改默认后必须重启gateway,否则新任务不生效。
3. 若提示模型不存在:

  • 先执行  ollama list  确认模型已拉取;
  • 在openclaw.json的ollama models数组里补充对应模型配置。
    4. 兜底fallbacks作用:主模型显存溢出/断开时,自动切换备用模型,减少任务中断。

快速切换示例(直接复制执行)

设千问3.5 4B reasoning为全局默认

bash

openclaw models set ollama/qwen3.5:4b-reasoning
openclaw gateway restart
openclaw models status
 

临时切换DeepSeek-R1做单次分析(对话内输入)

plaintext

/model ollama/deepseek-r1:latest

Windows Ollama 全局开启KV内存缓存完整教程(永久生效,解决12G显存爆显存)

核心原理

必须同时设置2个环境变量才能生效,缺一不可:

1.  OLLAMA_FLASH_ATTENTION=1 :开启Flash Attention,KV缓存量化功能才会激活
2.  OLLAMA_KV_CACHE_TYPE=q4_0 :KV缓存4位量化,显存占用直接降到1/4,缓存溢出自动丢系统内存(你大内存机器最优)
可选配套优化变量一并加上:

  •  OLLAMA_NUM_PARALLEL=1 :禁止多并发推理,防止显存瞬间峰值溢出
  •  OLLAMA_KEEP_ALIVE=-1 :模型常驻内存,避免反复加载超时
  •  OLLAMA_MAX_LOADED_MODELS=1 :只允许加载1个模型,减少显存抢占

一、Windows 永久全局配置(推荐,重启电脑仍有效)

步骤1:打开环境变量面板

1. Win+S 搜索:编辑系统环境变量
2. 弹出「系统属性」→ 切换到高级标签 → 右下角【环境变量】

步骤2:新建系统变量(全局所有程序生效)

下方系统变量区域点【新建】,依次创建5条变量(全部大写):

1. 变量名: OLLAMA_FLASH_ATTENTION 
变量值: 1 
2. 变量名: OLLAMA_KV_CACHE_TYPE 
变量值: q4_0 
3. 变量名: OLLAMA_NUM_PARALLEL 
变量值: 1 
4. 变量名: OLLAMA_KEEP_ALIVE 
变量值: -1 
5. 变量名: OLLAMA_MAX_LOADED_MODELS 
变量值: 1 

说明:

  • q4_0:极致省显存,适合12G小显卡;追求轻微更好质量可选 q8_0 (显存减半)
  • 不要只设置缓存类型,不开Flash Attention,参数完全不生效

步骤3:保存+彻底重启Ollama(关键)

1. 全部点【确定】逐层关闭窗口
2. 右下角任务栏找到Ollama图标,右键退出
3. 打开任务管理器,结束所有  ollama.exe 、 ollama-runner.exe  进程
4. 重新从开始菜单启动 Ollama,新环境变量加载完成

二、临时生效方案(仅当前CMD/PowerShell窗口,重启失效)

适合临时测试,不用改系统设置

PowerShell管理员执行:

powershell

$env:OLLAMA_FLASH_ATTENTION="1"
$env:OLLAMA_KV_CACHE_TYPE="q4_0"
$env:OLLAMA_NUM_PARALLEL="1"
ollama serve
 

新开终端在这个窗口里运行模型,关闭窗口配置失效。

三、验证是否配置成功

1. 完全重启Ollama后,运行任意模型

bash

ollama run qwen3.5:4b-reasoning
 

2. 观察任务管理器GPU显存占用:长对话上下文显存上涨幅度明显变小,多余缓存自动分流到系统内存;
3. 排查失效:确认完全退出Ollama,不要最小化托盘,必须彻底关闭进程再重启。

四、适配你12G显卡的参数选择建议

1. 日常OpenClaw多工具长任务: OLLAMA_KV_CACHE_TYPE=q4_0 (显存压力最小,12G卡首选)
2. 偶尔深度推理、追求轻微画质提升: q8_0 ,显存占用减半,精度损失极小
3. 默认f16:缓存不压缩,12G显卡极易OOM,不推荐长期使用

五、常见踩坑

1. 只设置 OLLAMA_KV_CACHE_TYPE ,没开 FLASH_ATTENTION=1  → 缓存完全不压缩,设置无效
2. 修改环境变量后没彻底退出Ollama进程 → 旧配置继续运行,看不到效果
3. 设置在「用户变量」而非「系统变量」:部分第三方调用(OpenClaw)读取不到,建议统一加到系统变量

一、Windows Ollama 模型存放位置

默认路径(C盘)

plaintext

C:\Users\你的用户名.ollama\models
 

快速打开方法:

1. 打开此电脑地址栏直接粘贴:

plaintext

%USERPROFILE%.ollama\models
 

2. 回车直达, .ollama 是隐藏文件夹,不用手动显示隐藏项目。

文件夹内部结构

1.  blobs :真正的模型权重大文件(占硬盘空间)
2.  manifests :模型标签、版本、配置信息(很小)

如果你改了模型存放盘

设置过环境变量  OLLAMA_MODELS ,路径以你配置的D/E盘文件夹为准,不再存在C盘。

二、正确删除不需要模型(推荐命令行,安全无残留)

1、先查看本机所有已下载模型

CMD / PowerShell 执行:

cmd

ollama list
 

会列出全部模型全名+占用大小,例如:

plaintext

fredrezones55/qwopus3.5:4b 3.4GB
deepseek-r1:latest 5.2GB
qwen3.5:4b-q4_K_M 3.3GB
 

2、删除单个不用的模型

格式: ollama rm 完整模型名 
示例:

cmd

删除深度R1

ollama rm deepseek-r1:latest

删除第三方推理模型

ollama rm fredrezones55/qwopus3.5:4b

删除官方千问4b

ollama rm qwen3.5:4b-q4_K_M
 

执行后自动清理 blobs 里对应的大文件,释放硬盘空间。

3、一次性清空所有模型(全部删掉)

PowerShell管理员执行:

powershell

ollama list | ForEach-Object { ollama rm ($_ -split '\s+')[0] }
 

4、查看当前正在运行的模型(删之前建议停止)

cmd

ollama ps

停止运行中的模型

ollama stop 模型名
 

三、不推荐:直接手动删文件夹

1. 手动删除 models 文件夹会残留配置缓存,Ollama识别异常;
2. 多模型会共享blob文件,手动删单个文件会损坏其他模型;
优先用 ollama rm 命令,自动清理关联碎片。

四、补充实用操作

1. 查看单个模型详细信息(包含路径、参数)

cmd

ollama show qwen3.5:4b-q4_K_M
 

2. 查看模型总占用空间(PowerShell)

powershell

$size = (Get-ChildItem "$env:USERPROFILE.ollama\models" -Recurse | Measure-Object -Property Length -Sum).Sum / 1GB
Write-Host "总占用:$size GB"
 

3. 迁移模型到D盘(C盘空间不足)
新建系统环境变量:
变量名: OLLAMA_MODELS 
变量值: D:\AI\OllamaModels 
设置后彻底退出Ollama重启,新下载模型自动存D盘。

五、结合你当前使用场景建议

你单卡4070Ti 12G,只保留主力推理模型即可,其余全部删除:

1. 长期主力: fredrezones55/qwopus3.5:4b (带reasoning)
2. 临时分析用:deepseek-r1:latest,用完立刻  ollama rm  删除,节省硬盘、显存资源。

一直使用的gemma4:e4b大模型,结果任务总是中断,而且还理解有偏差。原来gemma4模型是英文底座,对中文指令支持不好。

一、先回答核心2个问题

1、UI里的「Context length」会不会真实影响上下文、显存占用?

会,全局生效,等价于全局默认num_ctx

  • 这个滑块是Ollama桌面客户端全局默认上下文,所有新开对话、所有API调用(包括OpenClaw),都会默认读取这个数值分配KV缓存;
  • 模型原生256K只是理论上限,UI滑块是运行时实际分配的缓存大小;
  • 设得越大,显存占用越高,直接决定你4070Ti 12G会不会爆显存、任务中断。
    qwen3.5:4b-q4_K_M  模型底层原生支持最大262144(256K)token上下文,这是模型训练时就定死的硬件上限,代表它理论上能一次性读取256K文字。
    但原生支持≠必须开满256K运行,Ollama可以手动限制更小窗口(16K/32K/64K),这就是  num_ctx  参数。

2、优先级顺序(谁会覆盖谁)

1. OpenClaw配置里  params.num_ctx (最高,强制覆盖一切)每一个模型  { "id":"xxx", "params": {...} }  → 独立模型专属参数,只对当前这一个模型生效
举例子说明
"id": "gemma4",
"contextWindow": 128000,
"maxTokens": 8192,
"params": {
"num_ctx": 16384,
"num_predict": 1024,
"temperature": 0.1,
"num_parallel": 1,
"keep_alive": "-1"#新版的openclaw不能设置为-1要改为具体多久比如:24h
}
参数说明:

  •  timeoutSeconds:300 :单次推理超时放宽到5分钟
  •  idleTimeoutSeconds:1800 :30分钟无输出才判定断开,长任务专用
  •  keep_alive:"-1" :Ollama永久驻留模型,不会自动卸载重加载(避免中途加载卡死)

image.png

调用gemma4时,下发Ollama的参数 = 这里写的全套  num_ctx=16384  等

附加:OpenClaw配套配置(对应稳定16K模型)的配置文件设置,(不知道能否生效):
"id": "qwen3.5:agent-stable",
"contextWindow": 16384,
"maxTokens": 1024,
"timeoutSeconds": 300,
"idleTimeoutSeconds": 1800,
"compactContext": true
参数说明:
idleTimeoutSeconds=1800 :30分钟无输出才判定断开,解决本地模型推理慢触发超时;
compactContext=true :自动压缩历史上下文,避免对话堆积撑满窗口强制终止任务;
timeoutSeconds=300 :单次推理超时放宽至5分钟,适配多步骤工具长任务。

① contextWindow": 262144 

这是OpenClaw前端展示、逻辑校验用的元数据,不会下发给Ollama,完全不控制显存、实际上下文长度。
含义:标记这个模型原生最大支持256K token(模型出厂上限),仅用于界面提示、计费统计、上下文长度预警,不参与推理。

②  "maxTokens": 8192 

同样是OpenClaw内部限制,代表OpenClaw最多允许单次输出8192token;
但真实传给Ollama单次输出上限,由你 params 里补充的 num_predict 控制,不写就用8192兜底。

③  "params": { "num_ctx": 65536 } 

这是真正下发到Ollama服务的运行参数,会强制限制模型实际运行上下文窗口,直接控制KV缓存显存占用。

contextWindow  = 模型原生最大上下文(对应模型256K原生上限)

  •  maxTokens  = 单次输出最大token(对应Ollama  num_predict )
    这两个是OpenClaw自身校验用,不会下发给Ollama,只做界面/逻辑限制。

params  里能写哪些Ollama参数?
所有Ollama支持的推理参数都能放: num_ctx、num_predict、temperature、top_p、num_parallel  等,会原样转发给Ollama服务端。
​context length到底决定什么?

模型一次性能记住多少文字
包含系统提示词、全部聊天历史、工具函数、提问、预留回答空间;超过数值,Ollama自动删掉最早内容,模型失忆。

直接决定显存消耗(对你12G显卡最关键)
模型权重固定不变,KV缓存显存随context length线性暴涨:

  • 16384(16K):总显存7.5~8.5G,富余3G缓冲,多开浏览器/Docker不崩
  • 65536(64K):显存10~11G,只能临时读文档,不能连续多轮工具调用
  • 262144(256K开满):显存峰值11.8G,随便开个软件直接OOM崩溃,OpenClaw任务直接断掉

2、上下文窗口(num_ctx)决定了什么?

1. 决定模型一次能记住多少内容
窗口内包含:系统提示词 + 全部对话历史 + 工具函数描述 + 本次提问 + 预留回答空间;
超过num_ctx,Ollama会自动删掉最早的聊天记录,模型直接“失忆”前面内容。

2. 直接决定显存占用(最关键对你12G显卡)
显存分两部分:

  • 模型权重:固定3.3GB(q4_K_M),不会随上下文变化;
  • KV缓存:专门存上下文历史,长度越长,显存线性暴涨。
    举个直观对比(4B q4_K_M,开启q4_0缓存量化):
  • num_ctx=16384(16K):总显存峰值≈7.5~8.5G
  • num_ctx=65536(64K):总显存峰值≈10~11G
  • num_ctx=262144(256K开满):峰值直接11.8G,你12G卡只要开浏览器、Docker立刻爆显存OOM,Ollama直接崩溃、OpenClaw任务中断。
    2. Modelfile打包的  PARAMETER num_ctx (次高)无params时才生效
    没有params时才生效,一旦OpenClaw带params,Modelfile参数失效。
    哪怕OpenClaw没写params,Ollama启动模型时也会强制用Modelfile里的 num_ctx/num_predict :

3. Ollama桌面UI全局Context length(兜底默认)
举你当前配置例子:
你 params 写了 num_ctx:65536 ,那么:

  • Ollama客户端UI滑块无论拉16K还是256K,全部无效;

​- 该模型Modelfile里写的num_ctx也会被覆盖;
​- 运行时真实上下文窗口固定64K。

4. Ollama原生默认4096(最低)
所有自定义设置都不写才会启用。
举例子:
你UI滑块拉到256K,但OpenClaw写了 num_ctx:16384 ,最终运行只会用16K,UI设置失效。

二、context length到底决定什么?

1. 模型一次性能记住多少文字
包含系统提示词、全部聊天历史、工具函数、提问、预留回答空间;超过数值,Ollama自动删掉最早内容,模型失忆。
2. 直接决定显存消耗(对你12G显卡最关键)
模型权重固定不变,KV缓存显存随context length线性暴涨:

  • 16384(16K):总显存7.5~8.5G,富余3G缓冲,多开浏览器/Docker不崩
  • 65536(64K):显存10~11G,只能临时读文档,不能连续多轮工具调用
  • 262144(256K开满):显存峰值11.8G,随便开个软件直接OOM崩溃,OpenClaw任务直接断掉

三、单卡RTX4070Ti 12G,UI滑块设多少最合适?

日常主力(OpenClaw全天跑Linux/Obsidian/多工具循环,推荐)

滑块固定 16384(16K)

  • 足够十几轮链式工具调用、十几份笔记同时读取;
  • 显存压力最低,推理流畅,不会触发空闲超时断任务。

临时一次性读取超大文档(仅偶尔用)

临时改成65536(64K),文档读完立刻切回16K,绝对不要长期256K。

绝对不要拉满256K的原因

12G显存物理上限卡死,256K缓存几乎占满整张卡,后台任意程序占用一点显存,Ollama直接闪退;且超长上下文推理速度暴跌,模型思考几十秒直接触发OpenClaw超时中断。

四、配套统一设置方案(三层对齐,避免冲突)

1、Ollama桌面UI设置

设置 → Context length 滑块拉到 16384,保存。

2、Modelfile打包固定(双重保险)

Modelfile

FROM qwen3.5:4b-q4_K_M
PARAMETER num_ctx 16384
PARAMETER num_predict 1024
PARAMETER temperature 0.1
PARAMETER num_parallel 1
PARAMETER num_thread 16
PARAMETER stop "[TOOL_END]"

生成自定义模型:

cmd

ollama create qwen3.5:agent-16k -f Modelfile
 
参数说明:

num_ctx=8192 :完整上下文,128G内存兜底不怕缓存溢出;

  •  temperature=0.1 :降低随机输出,JSON格式更稳定,减少解析报错;
  •  num_thread 匹配CPU核心,利用大内存加速预处理。

3、OpenClaw配置文件写入params(最高优先级)

json

"models": [
{

"id": "qwen3.5:agent-16k",
"name": "千问3.5 4B 16K稳定版",
"contextWindow": 262144,
"maxTokens": 1024,
"params": {
  "num_ctx": 16384,
  "num_predict": 1024,
  "temperature": 0.1
}

}
]
-修改params为16384,同时充 num_predict 限制单次输出。
-num_predict:1024 :限制单次输出长度,reasoning模型大量思考文本不会快速占满上下文;

  • 显存峰值仅7.5~8.5G,12G显卡余量充足,多工具循环不崩溃。

-num_predict(max_tokens,单次最大输出token)固定值

统一设置 num_predict = 1024

为什么不设2048?

1. 你的是reasoning推理模型,每次回复先输出一大段思考过程,本身消耗大量token;

2. 设2048会单次输出占用极多上下文,16K窗口快速耗尽,频繁触发上下文压缩,容易逻辑断裂、JSON残缺;

3. 1024 token足够输出完整Linux脚本、Docker操作步骤、完整文件修改方案,满足运维全部需求;

4. 限制输出长度,减少长时间推理卡顿,降低OpenClaw超时概率。

五、补充避坑

1. 模型原生256K只是硬件上限,不代表运行时必须开满,消费级12G显卡不具备长期跑256K的条件;
2. 如果你只调UI滑块,但OpenClaw里写了更小num_ctx,以OpenClaw参数为准;
3. Windows务必开启全局缓存优化,进一步降低显存压力:
系统环境变量添加4条,改完彻底退出Ollama全部进程重启:
plaintext

OLLAMA_KV_CACHE_TYPE=q4_0
OLLAMA_FLASH_ATTENTION=1
OLLAMA_NUM_PARALLEL=1
OLLAMA_KEEP_ALIVE=-1

参数解释:

  •  OLLAMA_NUM_GPU=99 :尽可能把模型权重放显存,KV缓存自动溢出到128G系统内存,完美利用你大内存;
  •  OLLAMA_KV_CACHE_TYPE=q4_0 :缓存4位量化,显存占用直接减半;
  •  OLLAMA_NUM_PARALLEL=1 :禁止并发推理,防止显存瞬间峰值溢出;
  •  OLLAMA_KEEP_ALIVE=-1 :模型永久驻留,长任务中途不会重新加载模型超时断开。

6、关键总结

1.  contextWindow=262144 只是标记模型理论上限,不控制实际运行显存;

2.  params.num_ctx 是实权参数,会覆盖Ollama所有其他地方的上下文设置;

3. 65536适合临时一次性长文本解析,不适合全天跑OpenClaw智能体;16384是12G显卡长期稳定最优值。

注意!改完必须执行的操作

校验JSON语法,防止写错崩溃
openclaw config validate

本机大模型的选用-

一、区分两套模型(适配你单卡4070Ti 12G)

A、阿里官方原版 qwen3.5:4b(256K上下文,无强化推理)

可用拉取命令(唯一稳定、官方维护)

默认q4_K_M,3.4G,12G显卡最宽松

ollama pull qwen3.5:4b-q4_K_M

高精度q8_0,5.3G,显存余量变少,偶尔爆显存不推荐长期

ollama pull qwen3.5:4b-q8_0
优点:稳定、无bug、256K原生超长上下文;
缺点:没有专门强化思维链,多层工具调用偶尔JSON残缺。

B、第三方 Qwopus3.5(带reasoning深度推理,专门适配OpenClaw智能体)

仓库名: fredrezones55/qwopus3.5 ,自带reasoning,4B只有q4_K_M量化,没有q5_K_M
正确拉取命令(必须带作者前缀,否则找不到)
ollama pull fredrezones55/qwopus3.5:4b

  • 大小3.4GB,256K上下文、内置思维推理,完美解决工具调用乱码、断任务;
  • 专门优化运维、Linux命令、文件检索逻辑,是你OpenClaw最优选择。

二、给你的最终方案(单卡RTX4070Ti 12G)

日常主力推荐:第三方推理版(qwopus3.5:4b,自带reasoning)

1、拉取命令(直接复制)
ollama pull fredrezones55/qwopus3.5:4b
2、创建专属Modelfile,限制上下文防止爆显存

新建文本改名为  Modelfile ,内容:

FROM fredrezones55/qwopus3.5:4b

长期稳定16K上下文,12G显卡无压力

PARAMETER num_ctx 16384

reasoning模型限制单次输出,减少token占用

PARAMETER num_predict 1024
PARAMETER temperature 0.1
PARAMETER keep_alive -1
PARAMETER num_parallel 1
3、生成本地简化模型名(方便OpenClaw调用)
ollama create qwen-reason:4b -f Modelfile

备选方案(不想用第三方,只用阿里官方原版
ollama pull qwen3.5:4b-q4_K_M
Modelfile同样锁定 num_ctx=16384 、 num_predict=1024 ,缺点是复杂多层工具调用稳定性弱于qwopus推理版。
一、为什么不推荐长期用 262K版本

1. 显存压力巨大
4B权重固定3.8G,开满262K上下文KV缓存峰值直接冲到11.5G+,系统、Ollama后台还要占1G,极易OOM杀死进程,OpenClaw任务直接中断。
哪怕你128G大内存,只是把KV缓存丢内存交换,推理速度暴跌70%,模型思考几十秒触发空闲超时断任务。

2. reasoning模型自带大量思考文本
多轮Linux/grep/Docker连续指令,token消耗翻倍,262K窗口很快堆满,频繁压缩上下文,JSON工具调用更容易残缺报错。

3. 日常完全用不上262K
你日常运维、单份笔记、十几轮工具指令,16K上下文完全覆盖,多余超长上下文只会拖慢速度、增加崩溃概率。

1、通过openclaw skills install <技能名> 安装的技能不能通过openclaw skills uninstall <技能名>卸载,因为没有这样的命令。
2、需要通过这个命令来卸载
npx clawhub@latest uninstall
3、注意用以上命令卸载工作空间skills
4、skills分三种:
工作空间skills--workspace skills
内嵌skills--built-in skills
额外skills--extra skills