OpenClaw 完整安装与配置指南:从零开始搭建你的私人 AI 助手
OpenClaw 是一个运行在你自己电脑或服务器上的个人 AI 助手平台,支持接入 Claude、GPT、Qwen 等主流大模型,并可以通过 Telegram、Discord、Slack 等消息渠道随时与 AI 对话。这篇文章会手把手带你完成从安装到正常使用的全部步骤,包括我在实际操作中踩过的坑和解决方法。
目录
安装前的准备
在开始之前,你需要确认一件事:Node.js 版本必须是 22 或更高。
node -v
如果输出的是 v22.x.x 或更高,说明环境没问题。如果版本过低,先去 Node.js 官网下载最新 LTS 版本,或者用 nvm 来管理版本。
安装 OpenClaw
用 npm 全局安装,-g 参数的意思是”全局安装”,安装后在任意目录都可以直接运行 openclaw 命令:
npm install -g openclaw@latest
安装完成后,运行初始配置向导:
openclaw onboard
向导会引导你选择消息平台和 AI 模型,跟着提示一步步操作即可。
网关配置与启动
这是很多人卡住的地方。OpenClaw 的核心是一个本地网关服务,Web 控制台、消息平台通信都依赖它运行。
为什么访问不了 http://127.0.0.1:18789/?
安装完成后,OpenClaw 会提示你访问 http://127.0.0.1:18789/,但很多情况下直接访问会出现”连接被拒绝”。原因是网关服务没有启动,或者缺少必要的配置项。
第一步:设置网关模式
这是最常被忽略的步骤。如果跳过这一步,网关会直接拒绝启动:
openclaw config set gateway.mode local
第二步:安装并启动网关服务
⚠️ 以下命令需要以管理员身份运行 PowerShell,否则会提示”拒绝访问”。
右键点击 PowerShell,选择”以管理员身份运行”,然后执行:
openclaw gateway install
安装成功后会显示:
Installed Scheduled Task: OpenClaw Gateway
接着手动触发网关启动:
schtasks /Run /TN "OpenClaw Gateway"
第三步:验证是否成功
等几秒钟,然后检查网关是否可达:
openclaw gateway probe
如果看到 Reachable: yes,说明网关正常运行,浏览器访问 http://127.0.0.1:18789/ 就能打开控制台了。
第四步:处理 Token 验证
首次访问控制台可能提示”unauthorized: gateway token missing”。这是正常的安全机制,获取 Token 的方法:
openclaw config get gateway.auth.token
把输出的 Token 值粘贴到浏览器弹出的验证框里即可。
配置第三方大模型
OpenClaw 内置支持 Anthropic、OpenAI、Google Gemini、OpenRouter 等多个主流提供商。如果你使用的是第三方中转服务(即通过别的平台访问 Claude 或 GPT),需要手动配置自定义提供商。
配置文件位置
所有配置都存放在:
C:\Users\你的用户名\.openclaw\openclaw.json
用记事本打开:
notepad "C:\Users\你的用户名\.openclaw\openclaw.json"
自定义提供商配置模板
以下是一个完整的配置示例,适用于支持 OpenAI 格式接口(/v1/chat/completions)的第三方服务:
{
"models": {
"mode": "merge",
"providers": {
"my-provider": {
"baseUrl": "https://你的服务商域名/v1",
"apiKey": "你的-API-Key",
"api": "openai-completions",
"models": [
{
"id": "claude-opus-4-5",
"name": "Claude Opus 4.5",
"reasoning": false,
"input": ["text"],
"contextWindow": 200000,
"maxTokens": 8096,
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
},
{
"id": "claude-sonnet-4-5",
"name": "Claude Sonnet 4.5",
"reasoning": false,
"input": ["text"],
"contextWindow": 200000,
"maxTokens": 8096,
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
},
{
"id": "claude-haiku-4-5",
"name": "Claude Haiku 4.5",
"reasoning": false,
"input": ["text"],
"contextWindow": 200000,
"maxTokens": 8096,
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "my-provider/claude-opus-4-5",
"fallbacks": ["my-provider/claude-sonnet-4-5"]
},
"models": {
"my-provider/claude-opus-4-5": { "alias": "opus" },
"my-provider/claude-sonnet-4-5": { "alias": "sonnet" },
"my-provider/claude-haiku-4-5": { "alias": "haiku" }
}
}
},
"gateway": {
"mode": "local",
"bind": "loopback",
"auth": {
"token": "auto"
}
}
}
几个容易出错的细节
| 配置项 | 注意事项 |
|---|---|
baseUrl |
末尾不要加 /,通常需要带 /v1,例如 https://api.example.com/v1 |
models[].id |
必须填服务商实际支持的模型名,不能乱写 |
agents.defaults.models |
这是白名单,只有列在这里的模型才能被使用 |
gateway.mode |
必须设置为 local,否则网关启动会被拦截 |
验证服务商接口是否可用
配置好之后,先测试一下 API 是否真的能通:
Invoke-WebRequest -Method POST `
-Uri "https://你的服务商域名/v1/chat/completions" `
-Headers @{
"Authorization" = "Bearer 你的-API-Key"
"Content-Type" = "application/json"
} `
-Body '{"model":"claude-opus-4-5","messages":[{"role":"user","content":"hi"}],"max_tokens":100}' |
Select-Object -ExpandProperty Content
返回包含 choices 字段的 JSON 说明接口正常;如果返回 401 是 Key 问题,返回 404 通常是 baseUrl 路径不对。
配置后重启网关
每次修改配置文件都需要重启网关才能生效:
schtasks /Run /TN "OpenClaw Gateway"
API Key 安全配置
把 API Key 直接写在配置文件里不够安全,推荐用环境变量引用的方式:
第一步:创建或编辑 ~/.openclaw/.env 文件:
ANTHROPIC_API_KEY=你的密钥
GATEWAY_TOKEN=自定义一个安全密码
第二步:在 openclaw.json 里用 ${变量名} 引用:
{
"models": {
"providers": {
"my-provider": {
"apiKey": "${ANTHROPIC_API_KEY}"
}
}
}
}
同时,建议修复配置文件的权限,防止其他用户读取你的 Key(以管理员身份运行):
icacls "C:\Users\你的用户名\.openclaw\openclaw.json" /inheritance:r /grant:r "你的用户名:F" /grant:r "SYSTEM:F"
常见问题排查
问题一:网关启动后立刻闪退
直接在命令行运行网关脚本,查看具体报错:
cmd /c "C:\Users\你的用户名\.openclaw\gateway.cmd"
最常见的报错是:
Gateway start blocked: set gateway.mode=local (current: unset)
解决方法:
openclaw config set gateway.mode local
问题二:端口被占用
netstat -ano | findstr 18789
找到占用进程的 PID,在任务管理器里结束它,或者换一个端口:
openclaw config set gateway.port 18790
问题三:对话没有任何回应
这个问题比较隐蔽,OpenClaw 不会直接显示错误,AI 消息就好像消失了一样。排查步骤:
查看实时日志,打开新的 PowerShell 窗口:
openclaw logs --follow
然后发一条消息,观察日志。如果整个请求从发出到结束只用了 1 秒左右(正常 Claude API 调用至少需要 3-5 秒),说明请求根本没有发出去,通常原因是:
-
baseUrl路径不对(缺少/v1) -
API Key 无效 -
模型 id填写有误
直接测试 API 接口是最快的排查方式,参考上方”验证服务商接口是否可用”部分。
问题四:gateway.mode 被重置
手动编辑 openclaw.json 时,如果覆盖了整个文件内容,之前通过命令行设置的 gateway.mode 会丢失。确保配置文件里始终包含:
"gateway": {
"mode": "local"
}
常见问题速查表
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
Connection refused |
网关未运行 | 运行 schtasks /Run /TN "OpenClaw Gateway" |
| 网关立刻闪退 | gateway.mode 未设置 |
openclaw config set gateway.mode local |
| 安装计划任务失败 | 权限不足 | 以管理员身份运行 PowerShell |
| AI 无回应 | API 接口问题 | 直接测试 API,检查 Key 和 baseUrl |
| Token 验证失败 | auth.token 丢失 | openclaw config get gateway.auth.token |
| 配置修改不生效 | 网关未重启 | 重新运行计划任务 |
开机自动启动
默认情况下,每次开机都需要手动启动网关。设置自动启动只需一条命令(管理员 PowerShell):
schtasks /Change /TN "OpenClaw Gateway" /SC ONLOGON /ENABLE
验证是否设置成功:
schtasks /Query /TN "OpenClaw Gateway" /FO LIST
看到触发器显示”登录时”或”At logon”说明设置成功,以后开机登录后网关会自动启动。
版本更新方法
查看当前版本:
openclaw --version
升级到最新版(以管理员身份运行):
npm i -g openclaw@latest
升级完成后重启网关:
openclaw gateway restart
注意:如果
openclaw update命令提示not-git-install,说明你是通过 npm 安装的,必须用npm i -g openclaw@latest来更新,不能用内置更新命令。
如何使用 OpenClaw
OpenClaw 主要有三种使用方式:
方式一:Web 控制台(推荐)
浏览器访问 http://127.0.0.1:18789/,功能最完整,支持多轮对话、文件上传、技能管理,适合日常使用。
方式二:终端 UI
openclaw tui
在命令行中打开一个交互界面,适合不想开浏览器的场景。
方式三:消息平台
配置 Telegram 或 Discord 机器人后,可以在手机上直接与 AI 对话,随时随地使用。
对话中的常用命令
在聊天窗口中输入斜杠命令可以快速切换设置:
| 命令 | 作用 |
|---|---|
/model opus |
切换到 Claude Opus(使用配置的别名) |
/model sonnet |
切换到 Claude Sonnet |
/model list |
查看所有可用模型 |
/new |
开始新会话 |
/stop |
中止当前运行 |
/status |
查看 token 用量和会话状态 |
/think |
开启推理模式 |
/compact |
压缩上下文,释放窗口空间 |
FAQ 常见问答
Q:每次开机都需要手动执行哪些命令吗?
A:不需要。gateway.mode local 是永久写入配置文件的,只需要按照”开机自动启动”章节设置一次计划任务,之后登录系统网关会自动启动。
Q:openclaw.json 文件损坏了怎么办?
A:配置文件在每次修改时会自动备份为 openclaw.json.bak,可以直接复制备份文件恢复。
Q:第三方服务商的模型 id 应该填什么?
A:通过以下方式查询服务商支持的模型列表:
Invoke-WebRequest -Uri "https://你的服务商域名/v1/models" `
-Headers @{"Authorization" = "Bearer 你的-API-Key"} |
Select-Object -ExpandProperty Content
返回结果里的 id 字段就是要填的值。
Q:OpenClaw 会把我的 API Key 上传到服务器吗?
A:不会。OpenClaw 是完全本地运行的,API Key 只保存在你的电脑上,所有 AI 请求都是从你的机器直接发出的,不经过 OpenClaw 的服务器。
Q:配置文件编辑后没有生效怎么办?
A:每次修改配置文件后都需要重启网关:
schtasks /Run /TN "OpenClaw Gateway"
Q:如何查看 OpenClaw 的实时运行日志?
A:
openclaw logs --follow
这个命令会持续输出日志,对排查问题非常有帮助。
Q:openclaw chat 命令为什么不存在?
A:OpenClaw 没有 chat 子命令,命令行交互主要通过 openclaw tui 进入终端界面,或者直接访问 Web 控制台。
Q:出现乱码错误信息怎么办?
A:Windows 系统中某些命令的错误提示可能以乱码显示,但错误含义通常是”拒绝访问”,以管理员身份重新运行对应命令即可解决。
配置文件完整示例
为了方便参考,这里给出一份包含所有关键配置项的完整 openclaw.json 模板:
{
"models": {
"mode": "merge",
"providers": {
"my-provider": {
"baseUrl": "https://你的服务商域名/v1",
"apiKey": "${MY_API_KEY}",
"api": "openai-completions",
"models": [
{
"id": "claude-opus-4-5",
"name": "Claude Opus 4.5",
"reasoning": false,
"input": ["text"],
"contextWindow": 200000,
"maxTokens": 8096,
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "my-provider/claude-opus-4-5",
"fallbacks": []
},
"models": {
"my-provider/claude-opus-4-5": { "alias": "opus" }
}
}
},
"commands": {
"native": "auto",
"nativeSkills": "auto",
"restart": true
},
"gateway": {
"mode": "local",
"bind": "loopback",
"auth": {
"token": "auto"
}
}
}
整个配置流程下来,最容易出问题的三个地方是:gateway.mode 没设置、baseUrl 缺少 /v1、以及安装计划任务时没有用管理员权限。按照本文的步骤操作,基本上都能顺利跑起来。如果遇到其他问题,优先用 openclaw logs --follow 查看日志,再结合 openclaw doctor 自动诊断,大多数问题都能快速定位。

