OpenClaw + Ollama / 硅基流动 / codeai88 安装与配置教程
(根据实际操作与排查过程整理)
一、安装 OpenClaw
在 Mac 本机执行:
curl -fsSL https://openclaw.ai/install.sh | bash
安装完成后可验证版本:
openclaw -V
二、前置条件:安装并运行 Ollama
1、安装 Ollama:https://ollama.ai 2、拉取模型(示例):
ollama pull qwen3
注:用于支持 tool calling,见下文 3、确认 Ollama 在运行:
ollama list
curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:11434/api/tags
# 返回 200 表示正常
三、配置 OpenClaw 使用 Ollama 模型
3.1 启用 Ollama 提供方(推荐:环境变量)
在 ~/.zshrc 末尾添加:
# OpenClaw + Ollama 本地模型(无需真实 key,任意值即可启用发现)
export OLLAMA_API_KEY="ollama-local"
然后执行 source ~/.zshrc 或重新打开终端。
3.2 设置默认模型
openclaw config set agents.defaults.model.primary "ollama/qwen3:latest"
3.3 让 Gateway 进程也能使用 Ollama(重要)
Gateway 若由 launchd 启动,不会加载 .zshrc,因此需要单独给 Gateway 进程设置环境变量。
编辑 ~/Library/LaunchAgents/ai.openclaw.gateway.plist,在 EnvironmentVariables 的 dict 内增加:
<key>OLLAMA_API_KEY</key>
<string>ollama-local</string>
修改后重启 Gateway:
openclaw gateway stop
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ai.openclaw.gateway.plist
四、解决 “Unknown model: ollama/qwen3:latest”
若嵌入式 Agent 或 Webchat 报错 Unknown model,多半是运行 Agent 的进程(如 Gateway)没有发现 Ollama 模型。可做两件事:
4.1 在配置中显式声明 Ollama 提供方与模型
在 ~/.openclaw/openclaw.json 中增加 "models" 段(与 "agents" 同级),例如:
"models": {
"providers": {
"ollama": {
"baseUrl": "http://127.0.0.1:11434/v1",
"apiKey": "ollama-local",
"api": "openai-completions",
"models": [
{
"id": "qwen3-coder:latest",
"name": "Qwen3",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 128000,
"maxTokens": 8192
}
]
}
}
}
4.2 为 Agent 配置 Ollama 的 auth profile
创建或编辑 ~/.openclaw/agents/main/agent/auth-profiles.json:
{
"version": 1,
"profiles": {
"ollama:default": {
"type": "api_key",
"provider": "ollama",
"key": "ollama-local"
}
},
"order": {
"ollama": ["ollama:default"]
}
}
完成后重启 Gateway 使配置生效。
四(一)、配置 OpenClaw 使用硅基流动(Silicon Flow)模型(备选)
若不想用本地 Ollama,可改用硅基流动云端 API(OpenAI 兼容)。同一台 OpenClaw 可在主配置里同时保留 Ollama 与硅基流动,通过默认模型切换使用。
4.1 在主配置中增加硅基流动提供方
在 ~/.openclaw/openclaw.json 的 "models" -> "providers" 中增加 "siliconflow"(与 "ollama" 同级):
"siliconflow": {
"baseUrl": "https://api.siliconflow.cn/v1",
"apiKey": "你的硅基流动API密钥",
"api": "openai-completions",
"models": [
{
"id": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B",
"name": "DeepSeek-R1-Distill-Qwen-7B",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 128000,
"maxTokens": 8192
}
]
}
重要:baseUrl 必须使用 https://api.siliconflow.cn/v1(.cn)。使用 .com 时同一 API Key 会返回 401。
4.2 设置默认模型为硅基流动
openclaw config set agents.defaults.model.primary "siliconflow/Qwen/Qwen3-8B"
4.3 为 Agent 配置硅基流动的 auth profile
编辑 ~/.openclaw/agents/main/agent/auth-profiles.json,在 "profiles" 中增加:
"siliconflow:default": {
"type": "api_key",
"provider": "siliconflow",
"key": "你的硅基流动API密钥"
}
在 "order" 中增加:
"siliconflow": ["siliconflow:default"]
API Key 与 openclaw.json 中 models.providers.siliconflow.apiKey 保持一致。
4.4 获取与验证 API Key
获取:登录 https://cloud.siliconflow.cn/account/ak 创建或查看 API 密钥。 验证(本机 curl,确认返回 200):
curl -s -o /dev/null -w "%{http_code}" -X POST "https://api.siliconflow.cn/v1/chat/completions"
-H "Content-Type: application/json"
-H "Authorization: Bearer 你的API密钥"
-d '{"model":"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B","messages":[{"role":"user","content":"hi"}],"max_tokens":32}'
4.5 若出现 401 status code (no body)
硅基流动文档:401 表示 API Key 没有正确设置。
常见原因:baseUrl 用了 https://api.siliconflow.com/v1(.com)。同一 Key 在 .cn 有效、在 .com 会 401。请确保 openclaw.json 与(若存在)~/.openclaw/agents/main/agent/models.json 中 siliconflow 的 baseUrl 均为 https://api.siliconflow.cn/v1。
若已用 .cn 仍 401:在控制台检查 Key 是否启用,必要时重新生成并更新 openclaw.json 与 auth-profiles.json 两处。
4.6 关于 agents/main/agent/models.json
该文件多为 OpenClaw 运行时根据主配置自动生成或同步。
持久修改请只改 ~/.openclaw/openclaw.json 的 models.providers,避免依赖手改 agents/main/agent/models.json。
修改配置后重启 Gateway:openclaw gateway restart。
四(二)、配置 OpenClaw 使用 codeai88(中转平台)
codeai88 是 OpenAI 兼容的中转平台,官网调用示例:
curl https://codeai88.com/v1/chat/completions
-H 'Content-Type: application/json'
-H 'Authorization: Bearer YOUR_API_KEY'
-d '{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"Say this is a test!"}],"temperature":0.7}'
4.2.1 在主配置中增加 codeai88 提供方
在 ~/.openclaw/openclaw.json 的 "models" -> "providers" 中增加 "codeai88"(与 "ollama"、"siliconflow" 同级):
"codeai88": {
"baseUrl": "https://codeai88.com/v1",
"apiKey": "你的codeai88的API密钥",
"api": "openai-completions",
"models": [
{
"id": "gpt-3.5-turbo",
"name": "GPT-3.5 Turbo",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 16385,
"maxTokens": 4096
}
]
}
4.2.2 设置默认模型
openclaw config set agents.defaults.model.primary "codeai88/gemini-2.5-flash"
4.2.3 为 Agent 配置 codeai88 的 auth profile
编辑 ~/.openclaw/agents/main/agent/auth-profiles.json,在 "profiles" 中增加:
"codeai88:default": {
"type": "api_key",
"provider": "codeai88",
"key": "你的codeai88的API密钥"
}
在 "order" 中增加:
"codeai88": ["codeai88:default"]
API Key 与 openclaw.json 中 models.providers.codeai88.apiKey 保持一致。修改后重启 Gateway:openclaw gateway restart。
五、Webchat 无回复:模型必须支持 Tool Calling
实战使用 qwen3、qwen3-coder、deepseek-r1。
六、OpenClaw 服务(Gateway)
首次安装:openclaw gateway install(创建 plist 并加载到 launchd)
启动:openclaw gateway start
重启:openclaw gateway restart
停止:openclaw gateway stop
前台运行(调试):openclaw gateway run
查看状态:openclaw gateway status
若通过 launchd 管理,修改 plist 后需要先 stop 再重新 load:
openclaw gateway stop
launchctl bootstrap gui/$UID ~/Library/LaunchAgents/ai.openclaw.gateway.plist
七、常用命令速查
openclaw -V # 版本
openclaw config get agents.defaults.model
openclaw config set agents.defaults.model.primary "ollama/模型名"
openclaw models list # 查看可用模型(需已设置 OLLAMA_API_KEY)
openclaw status # 状态与会话概览
openclaw gateway status # Gateway 状态
openclaw dashboard # 打开带 token 的 Control UI
openclaw cron list
openclaw cron add
--name "每日热点新闻推送"
--cron "*/5 * * * *"
--tz "Asia/Shanghai"
--session isolated
--message "请执行新闻推送脚本:/root/.openclaw/workspace/clawd/clawdbot_news_task.sh"
--announce
--channel feishu
--to "ou_0ebde71068a380fa63146e47e31d9174"
openclaw cron edit c442fa08-6ba1-4ff8-a857-d209d8c909f0 --cron "5 8,20 * * *" --tz Asia/Shanghai
openclaw cron rm c442fa08-6ba1-4ff8-a857-d209d8c909f0
openclaw cron status
openclaw cron runs --id c442fa08-6ba1-4ff8-a857-d209d8c909f0 --limit 5
openclaw logs --follow
八、配置文件与目录
| 项目 | 路径 |
|---|---|
| 主配置 | ~/.openclaw/openclaw.json(Ollama、硅基流动、codeai88 等 providers 在 models.providers) |
| 环境变量示例 | openclaw.json 内 “env.vars” 或 ~/.zshrc 的 export OLLAMA_API_KEY |
| Gateway plist | ~/Library/LaunchAgents/ai.openclaw.gateway.plist |
| Agent 目录 | ~/.openclaw/agents/main/agent/ |
| Auth 配置 | ~/.openclaw/agents/main/agent/auth-profiles.json |
| 会话存储 | ~/.openclaw/agents/main/sessions/ |
| Gateway 日志 | ~/.openclaw/logs/gateway.log、gateway.err.log |
九、注意事项
1、执行 openclaw gateway install 可能会覆盖 plist,若之前手动加了 OLLAMA_API_KEY,之后需重新加入或依赖 env.vars 与 auth-profiles。
2、Webchat/嵌入式 Agent 必须使用支持 tools 的 Ollama 模型,否则会出现「无回复」或 400 does not support tools。
3、新会话才会使用当前默认模型;旧会话可能仍用创建时的模型。
十、Telegram 配对与「帮写代码」配置(上下文总结)
10.0 添加 TG
在 openclaw.json 配置:
"plugins": {
"entries": {
"telegram": {
"enabled": true
}
}
}
再运行指令:
openclaw channels add --channel telegram --token 123:abc
10.1 Telegram 提示 “access not configured”
现象:给 Telegram Bot 发消息时收到:
OpenClaw: access not configured.
Your Telegram user id: 6652024379
Pairing code: GM3C9EVR
Ask the bot owner to approve with:
openclaw pairing approve telegram <code>
含义:这是 DM Pairing(私聊配对)。表示该 Telegram 账号尚未被允许使用你的 Bot;只有被 approve 过的用户,消息才会被处理。
解决:在运行 OpenClaw 的 Mac 上终端执行(把 <code> 换成实际配对码,如 GM3C9EVR):
openclaw pairing approve telegram <code>
可选:在终端先查看待批准列表再批准:
openclaw pairing list telegram
openclaw pairing approve telegram <code>
注意:配对码约 1 小时有效;过期后需重新给 Bot 发一条消息获取新码再 approve。
10.2 Telegram 回复 “missing_brave_api_key”
现象:在 Telegram 里发消息后,Bot 回复要求配置 Brave Search API key。 原因:Agent 默认可能使用 web_search(Brave Search),未配置 BRAVE_API_KEY 时会报错。 若只需要「跟 Telegram 聊天帮写代码」、使用 Ollama,可不配置 Brave,直接关闭网页搜索。
10.3 配置:Telegram + Ollama 帮写代码(无 Brave)
目标:仅用 Ollama 模型,在 Telegram 里实现帮写代码效果,且不出现 Brave API 报错。
在 ~/.openclaw/openclaw.json 中确保或添加:
(1) 关闭网页搜索(避免 missing_brave_api_key):
"tools": {
"web": {
"search": { "enabled": false }
},
"profile": "coding"
}
(2) tools.profile: "coding" 表示侧重写代码相关工具(读/写文件、执行命令等)。
(3) 默认模型与 Ollama 已在前面章节配置,例如:
"agents": {
"defaults": {
"model": { "primary": "ollama/qwen3:latest" }
}
}
(4) Telegram 通道与 token 在 channels.telegram 中配置(教程前文已涉及)。 修改配置后需重启 Gateway 使生效:
openclaw gateway restart
10.4 配置小结(Telegram + Ollama 帮写代码)
用 Ollama 对话:agents.defaults.model.primary 设为 "ollama/qwen3:latest"(或其它支持 tools 的模型)。
关 Brave 报错:tools.web.search.enabled: false。
侧重写代码:tools.profile: "coding"。
Telegram:channels.telegram 已配置并完成 pairing approve。
若之后需要网页搜索,可配置 Brave API Key(openclaw configure section web 或环境变量 BRAVE_API_KEY),再将 tools.web.search.enabled 改回 true。
十一、其它补充
11.0 参考火山引擎文档《快速部署OpenClaw(原Moltbot),集成飞书AI助手》
https://www.volcengine.com/docs/6396/2189942?lang=zh#kY7J5nzc
11.1 参考阿里云文档《OpenClaw(原Moltbot、Clawdbot)集成飞书》
11.2 参考腾讯云文档《🔥🔥🔥玩转OpenClaw|云上OpenClaw(Clawdbot)最全实践教程合辑》
https://cloud.tencent.com/developer/article/2624973
11.3 总结
对于新手来说,用腾讯云的部署会相对简单。 教程结束