☰
零基础部署OpenClaw本地大模型:从“发消息没反应”到稳定运行的完整指南(TaoToken 配置篇)
2026/9/28 6:10:55 网站建设 项目流程

1. 为什么 Mac 上跑 OpenClaw 本地模型会“发消息没反应”

如果你在 Mac 上用 Ollama 跑 OpenClaw 本地大模型,大概率会遇到这个场景:Web UI 里输入一句话,界面显示“思考中”,然后就没有然后了。终端日志里可能只有一行[agent] [timeout-compaction] compaction succeeded... retrying prompt,或者干脆什么都不输出。你以为是模型没下载完,重新ollama pull一遍,还是没反应;你以为是 OpenClaw 装错了,重装一遍,问题依旧。

这个问题的本质不是“模型坏了”,而是 OpenClaw 和 Ollama 之间的通道配置不对。OpenClaw 默认走的是 OpenAI 兼容协议,而 Ollama 原生 API 和 OpenAI 兼容 API 是两套不同的路径。如果你在baseUrl后面加了/v1,OpenClaw 会按 OpenAI 格式发请求,Ollama 虽然能接,但返回结构对不上,Agent 层解析失败,表现就是“发消息没反应”。另一个常见原因是用了 coder 模型做对话,模型输出被代码块包裹,Agent 的回复解析器直接卡住。

这篇内容聚焦 Mac 上用 Ollama 跑 OpenClaw 本地大模型时“发消息没反应”的排查与修复,围绕 TaoToken 统一 Key/API 通道完成settings.json与config.toml骨架配置。我会给出可复制的配置文件片段、CC Switch/Cline 接入步骤,以及逐项验证动作,帮你从报错定位到稳定运行。适合已经装过 OpenClaw、但卡在本地模型接入这一步的零基础用户。

2. TaoToken 前置:统一 Key 与 API 通道准备

在动手改配置之前,先把 TaoToken 的 Key 和通道准备好。TaoToken 在这里的角色是统一 API 入口,让你在 OpenClaw、CC Switch、Cline 之间共用同一套 Key,不用每个工具单独配一遍。官网入口是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 地址是 https://taotoken.net/api ,注意 API 地址后面不加 UTM 参数。

操作步骤很简单:打开官网,注册后进入控制台,在 API Keys 页面创建一个新 Key。创建时建议命名成openclaw-local这种能一眼看出用途的名字,方便后面在多个工具里区分。Key 创建后只显示一次,复制到本地临时文件里,后面配置settings.json和config.toml都要用。

如果你还没装 OpenClaw,先确认 Node.js 版本。Mac 上用 Homebrew 装 Node 22:

brew install node@22 echo 'export PATH="/opt/homebrew/opt/node@22/bin:$PATH"' >> ~/.zshrc source ~/.zshrc node --version

然后全局安装 OpenClaw:

sudo npm install -g openclaw@latest --registry=https://registry.npmmirror.com openclaw --version

如果openclaw --version报 command not found,手动建软链接:

sudo ln -s /opt/homebrew/lib/node_modules/openclaw/bin/openclaw.js /opt/homebrew/bin/openclaw export PATH="/opt/homebrew/bin:$PATH"

Ollama 的安装从官网下载.app拖进应用程序文件夹即可。装完后先拉一个对话模型,不要一上来就拉 coder 模型:

ollama pull qwen2.5:7b ollama list

到这里,TaoToken Key、OpenClaw、Ollama 三样东西就齐了。接下来进入配置环节。

3. 可复制配置:settings.json 与 config.toml 骨架

OpenClaw 的配置分两层:settings.json管全局通道和 Key,config.toml管 Agent 行为和模型路由。先找到配置目录:

ls ~/.openclaw/

如果目录不存在,先跑一次openclaw onboard让它生成默认结构。然后编辑~/.openclaw/settings.json,写入以下骨架:

{ "apiKeys": { "taotoken": "sk-你的TaoTokenKey" }, "providers": { "taotoken": { "baseUrl": "https://taotoken.net/api", "api": "openai", "models": ["gpt-4o-mini", "claude-3-5-sonnet"] }, "ollama": { "baseUrl": "http://127.0.0.1:11434", "api": "ollama", "models": ["qwen2.5:7b", "qwen2.5-coder:14b"] } } }

这里有两个关键点。第一,ollama的baseUrl后面不要加/v1,加了就会触发前面说的“发消息没反应”。第二,api字段必须显式写成"ollama",不能留空或写成"openai",否则 OpenClaw 会用 OpenAI 协议去解析 Ollama 的返回。

接着编辑~/.openclaw/config.toml,配置 Agent 默认行为和超时:

[agents.defaults] model = "ollama/qwen2.5:7b" timeoutSeconds = 180 systemPrompt = "你是一个中文AI助手,请用中文回答问题。" [agents.defaults.memorySearch] enabled = false [gateway] authMode = "none"

timeoutSeconds设成 180 是因为 14B 模型首次加载可能要 10 秒以上,默认 60 秒容易超时。memorySearch关掉是为了减少 token 消耗,本地模型上下文窗口有限,开着内存搜索容易把上下文撑爆。authMode设成none是本地开发环境省事,如果你要暴露到局域网,改成token并配一个密钥。

配置写完后重启网关:

openclaw gateway restart

如果你同时用 CC Switch 或 Cline,它们的配置也指向同一个 TaoToken Key。CC Switch 里新增一个 Provider,Base URL 填https://taotoken.net/api,Key 填刚才创建的。Cline 在 VS Code 设置里找cline.apiProvider,选 OpenAI Compatible,Base URL 同样填 TaoToken 的 API 地址。这样三个工具共用一套 Key,换 Key 时只改一处。

4. 验证请求:从 Ollama 原生到 OpenClaw Agent

配置写完不代表通了,要逐层验证。第一步先确认 Ollama 本身能回话:

curl http://127.0.0.1:11434/api/chat -d '{ "model": "qwen2.5:7b", "messages": [{"role": "user", "content": "你好"}], "stream": false }'

如果返回 JSON 里有message.content字段,说明 Ollama 正常。如果返回 500 或超时,先看 Ollama 日志:

tail -f ~/.ollama/logs/server.log

第二步验证 OpenClaw 能否通过 Ollama 通道回话:

openclaw agent --agent main --message "写一个快速排序的Python函数"

如果这一步成功返回代码,说明通道通了。如果还是“发消息没反应”,看 OpenClaw 实时日志:

openclaw logs --limit 100 --follow

日志里如果出现LLM request timed out,说明超时设太短,回去把timeoutSeconds调到 180 或 240。如果出现pairing required,说明设备没配对:

openclaw devices list openclaw devices approve <Request ID>

第三步验证 TaoToken 通道是否可用,用来做对比:

openclaw agent --agent main --message "用一句话介绍你自己" --model taotoken/gpt-4o-mini

如果 TaoToken 通道能回、Ollama 通道不能回,问题就锁定在 Ollama 配置上,重点检查baseUrl有没有多写/v1、api字段是不是"ollama"。

实测下来,最容易出问题的就是baseUrl和api这两个字段。我试过把baseUrl写成http://127.0.0.1:11434/v1,OpenClaw 日志里没有任何报错,就是一直“思考中”,排查了半小时才发现是路径问题。

5. 本篇常见错排查:5 个高频报错与修复

5.1 NO_REPLY 与 timeout-compaction 循环

现象是 Web UI 一直“思考中”,日志里反复出现compaction succeeded... retrying prompt。原因是用了 coder 模型做对话,模型输出被代码块包裹,Agent 解析器无法提取纯文本回复。修复方法是把默认模型换成对话模型:

openclaw config set agents.defaults.model.primary "ollama/qwen2.5:7b" openclaw gateway restart

5.2 gateway connect failed: pairing required

新版 OpenClaw 要求设备配对,日志里出现这行说明当前设备没批准。执行:

openclaw devices list openclaw devices approve <Request ID>

批准后重启网关。

5.3 Ollama 日志 POST /api/chat 500

Ollama 返回 500 通常是上下文窗口太小或并发太多。默认上下文 2048,14B 模型很容易撑爆。设置环境变量:

launchctl setenv OLLAMA_NUM_CTX 16384 launchctl setenv OLLAMA_NUM_PARALLEL 1 launchctl setenv OLLAMA_MAX_LOADED_MODELS 1 killall ollama open -a Ollama

OLLAMA_NUM_CTX设成 16384 是 16k 上下文,OLLAMA_NUM_PARALLEL设成 1 是单并发,避免多个请求同时抢内存。

5.4 LLM request timed out after 180000ms

OpenClaw 日志里出现这行,说明请求发出去了但模型没在超时时间内返回。14B 模型首次加载慢,把超时调到 240 秒:

openclaw config set agents.defaults.timeoutSeconds 240 openclaw gateway restart

同时确认memorySearch已关闭,开着会额外消耗上下文。

5.5 回复乱码或只输出英文

用中文提问但回复英文,通常是模型选错了。coder 模型偏向代码输出,对话场景要用 instruct 模型。另外在config.toml里加系统提示:

[agents.defaults] systemPrompt = "你是一个中文AI助手,请用中文回答问题。"

改完重启网关生效。

6. 语义一致 CTA:按场景分流

如果你卡在排障或接入环节,先去 TaoToken 控制台确认 Key 状态,然后对照接入文档检查settings.json和config.toml的字段。API Keys 页面在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。

如果你想先验证模型对话是否正常,不急着配本地 Ollama,可以直接用模型对话页面测试 TaoToken 通道:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。这样能快速区分是通道问题还是本地模型问题。

如果你打算长期用 OpenClaw 做编码或 Agent 任务,建议上 Coding Plan,把 TaoToken 通道和本地 Ollama 做成双路由:日常对话走本地,复杂代码任务走 TaoToken 的云端模型。Coding Plan 入口在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。控制台在 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,ClaudeCodeAnthropic 相关配置在 https://taotoken.net/claudecode-anthropic?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。

最后给一个实用技巧:把~/.openclaw/整个目录用 Git 管起来,每次改配置前先 commit。这样一旦改崩了,git checkout .就能回到上一个能用的状态,比手动记配置快得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询