This commit is contained in:
zyc123 2026-05-14 11:34:40 +08:00
parent 00b3851f83
commit 53e1357203

View File

@ -2,51 +2,44 @@
**多平台 AI 编程代理,支持终端 TUI、Web Dashboard 和 Telegram Bot** **多平台 AI 编程代理,支持终端 TUI、Web Dashboard 和 Telegram Bot**
📋 简介 ## 📋 简介
OpenClaw 是一款功能丰富的 AI 编程代理工具,支持终端 TUI 交互、Web Dashboard 管理和 Telegram Bot 远程访问。适合需要在服务器环境中运行 AI 编程助手的开发者。 OpenClaw 是一款功能丰富的 AI 编程代理工具,支持终端 TUI 交互、Web Dashboard 管理和 Telegram Bot 远程访问。适合需要在服务器环境中运行 AI 编程助手的开发者。
⚠️ 适用环境 > ⚠️ **适用环境**
> 本教程适用于 **Linux 云服务器****macOS** 系统用户。
此教程适合 **Linux 云服务器****macOS** 系统用户。 > 🚨 **遇到 403 Your request was blocked**
> 使用 oneinai 渠道时,**必须**在供应商配置中添加 `headers` 字段,否则请求会被拦截返回 403
🚨 遇到 403 Your request was blocked >
> ```json
使用 OneinAI 渠道时,**必须** 在供应商配置中添加 `headers` 字段,否则请求会被拦截返回 403 > "headers": {
> "User-Agent": "claude-cli/2.0.76 (external, cli)",
json > "Authorization": "Bearer sk-xxxx"
> }
> ```
"headers": { >
"User-Agent": "claude-cli/2.0.76 (external, cli)", > - `Authorization` 的值必须与 `apiKey` 一致,格式为 `Bearer sk-你的密钥`
"Authorization": "Bearer sk-xxxx" > - `User-Agent` 必须保持示例中的格式,不可省略或随意修改
} > - 修改后执行 `openclaw gateway restart` 重启网关生效
>
1 > 详见下方[完整配置实例](#-完整配置实例)。
2
3
4
* `Authorization` 的值必须与 `apiKey` 一致,格式为 `Bearer sk-你的密钥`
* `User-Agent` 必须保持示例中的格式,不可省略或随意修改
* 修改后执行 `openclaw gateway restart` 重启网关生效
详见下方 完整配置实例。
## 🔗 相关链接 ## 🔗 相关链接
资源| 地址 | 资源 | 地址 |
---|--- | --- | --- |
OpenClaw 官网| <https://openclaw.ai> | OpenClaw 官网 | <https://openclaw.ai> |
| oneinai 控制台 | <https://api.oneinai.com/console/token> |
## ✨ 功能特点 ## ✨ 功能特点
* ✅ **终端 TUI** :命令行交互界面,适合 SSH 环境 - ✅ **终端 TUI**:命令行交互界面,适合 SSH 环境
* ✅ **Web Dashboard** :浏览器可视化管理面板 - ✅ **Web Dashboard**:浏览器可视化管理面板
* ✅ **Telegram Bot** :支持通过 Telegram 远程对话 - ✅ **Telegram Bot**:支持通过 Telegram 远程对话
* ✅ **多模型支持** Claude、GPT、Gemini 等多种模型 - ✅ **多模型支持**Claude、GPT、Gemini 等多种模型
* ✅ **Gateway 网关** :内置网关服务,支持反向代理 - ✅ **Gateway 网关**:内置网关服务,支持反向代理
* ✅ **Skill 扩展** :可通过 Dashboard 安装扩展技能 - ✅ **Skill 扩展**:可通过 Dashboard 安装扩展技能
## 🛠️ 安装与初始化 ## 🛠️ 安装与初始化
@ -54,30 +47,27 @@ OpenClaw 官网| <https://openclaw.ai>
登录服务器 SSH 或在 macOS 终端中运行以下命令: 登录服务器 SSH 或在 macOS 终端中运行以下命令:
bash ```bash
curl -fsSL https://openclaw.ai/install.sh | bash
```
curl -fsSL https://openclaw.ai/install.sh | bash
1
耐心等待安装流程结束。 耐心等待安装流程结束。
### 第二步:初始化配置 ### 第二步:初始化配置
安装过程中会依次出现以下选项,按照说明操作 安装过程中会依次出现以下选项,按说明选择
步骤| 选择| 说明 | 步骤 | 选择 | 说明 |
---|---|--- | --- | --- | --- |
启动方式| **QuickStart**| 快速开始模式 | 启动方式 | **QuickStart** | 快速开始模式 |
供应商设置| **Skip for now**| 先跳过,后续手动编辑配置文件 | 供应商设置 | **Skip for now** | 先跳过,后续手动编辑配置文件 |
适配器选择| **anthropic**| 选择 Anthropic 适配器 | 适配器选择 | **anthropic** | 选择 Anthropic 适配器 |
模型选择| **opus-4.5**| 或选择你需要的模型 | 模型选择 | **opus-4.5** | 或选择你需要的模型 |
社交适配器| 按需选择| 如 Telegram可选 | 社交适配器 | 按需选择 | 如 Telegram可选 |
Skill 安装| 跳过| 后续可通过 Dashboard 安装 | Skill 安装 | 跳过 | 后续可通过 Dashboard 安装 |
Hook 选择| 全选| 使用空格键全选后回车确认 | Hook 选择 | 全选 | 使用空格键全选后回车确认 |
打开方式| 跳过| 先跳过 | 打开方式 | 跳过 | 先跳过 |
Shell 补全| **yes**| 安装命令行自动补全 | Shell 补全 | **yes** | 安装命令行自动补全 |
## ⚙️ 渠道与模型配置 ## ⚙️ 渠道与模型配置
@ -85,46 +75,32 @@ Shell 补全| **yes**| 安装命令行自动补全
打开 OpenClaw 的配置文件进行编辑: 打开 OpenClaw 的配置文件进行编辑:
bash ```bash
vim ~/.openclaw/openclaw.json
```
参照下方[完整配置实例](#-完整配置实例)填入供应商和模型信息。
vim ~/.openclaw/openclaw.json
1
参照下方 完整配置实例 填入你的供应商和模型信息。
### 第二步:填入 API Key ### 第二步:填入 API Key
`models.providers` 中配置供应商信息,将 `apiKey``headers.Authorization` 替换为你在 [IkunCode 控制台](<https://api.oneinai.com/console/token>) 创建的 API Key。 `models.providers` 中配置供应商信息,将 `apiKey``headers.Authorization` 替换为你在 [oneinai 控制台](https://api.oneinai.com/console/token) 创建的 API Key。
💡 支持的分组 > 💡 **支持的分组**
> OpenClaw 使用 **逆向分组** 的 API Key。请在[创建专属 Key](/guide/create-key) 时选择逆向分组。
OpenClaw 使用 **逆向分组** 的 API Key。
![只允许逆向分组](`+a+`)
请在 [创建专属 Key](</guide/create-key>) 时选择逆向分组。
### 第三步:重启网关 ### 第三步:重启网关
bash ```bash
openclaw gateway restart
```
openclaw gateway restart
1
### 第四步:验证配置 ### 第四步:验证配置
运行以下命令进入 TUI 界面测试模型是否正常: 运行以下命令进入 TUI 界面测试模型是否正常:
bash ```bash
openclaw tui
```
openclaw tui
1
测试成功后输入 `/quit` 退出 TUI。 测试成功后输入 `/quit` 退出 TUI。
@ -134,43 +110,34 @@ bash
在控制台运行命令获取 Dashboard URL在浏览器中访问即可进入管理面板。 在控制台运行命令获取 Dashboard URL在浏览器中访问即可进入管理面板。
⚠️ 服务器用户注意 > ⚠️ **服务器用户注意**
> 如果你在远程服务器上运行 OpenClaw需要完成以下额外步骤。
如果你在远程服务器运行 OpenClaw需要 **1. 配置反向代理**
**1\. 配置反向代理** 使用 Nginx 或其他反向代理工具反代 OpenClaw 服务,并配置 SSL 证书。
使用 Nginx 或其他反向代理工具反代 OpenClaw 服务,并设置 SSL 证书。 **2. 修改配置文件**
**2\. 修改配置文件**
编辑 `~/.openclaw/openclaw.json`,在 `gateway` 字段下添加: 编辑 `~/.openclaw/openclaw.json`,在 `gateway` 字段下添加:
json ```json
"controlUi": {
"allowInsecureAuth": true
}
```
**3. 重启网关**
"controlUi": { ```bash
"allowInsecureAuth": true openclaw gateway restart
} ```
1
2
3
**3\. 重启网关**
bash
openclaw gateway restart
1
访问带有 Token 的 Dashboard URL 即可进入后台界面。 访问带有 Token 的 Dashboard URL 即可进入后台界面。
## 🤖 配置 Telegram Bot可选 ## 🤖 配置 Telegram Bot可选
如果安装时选择了 Telegram 适配器,可以通过以下步骤配置 Bot 访问权限 如果安装时选择了 Telegram 适配器,可以通过以下步骤配置 Bot 访问权限。
### 第一步:与 Bot 对话 ### 第一步:与 Bot 对话
@ -178,321 +145,195 @@ bash
### 第二步:获取 Pairing Code ### 第二步:获取 Pairing Code
首次对话后会收到一个 **Pairing Code** 首次对话后会收到一个 **Pairing Code**
### 第三步:授权配对 ### 第三步:授权配对
在控制台运行以下命令完成授权: 在控制台运行以下命令完成授权:
bash ```bash
openclaw pairing approve telegram 你的Pairing_Code
```
openclaw pairing approve telegram 你的Pairing_Code
1
配对成功后,即可通过 Telegram Bot 与 OpenClaw 进行远程对话。 配对成功后,即可通过 Telegram Bot 与 OpenClaw 进行远程对话。
## 📄 完整配置实例 ## 📄 完整配置实例
以下是一份接入 IkunCode 渠道的 `openclaw.json` 完整配置参考(路径:`~/.openclaw/openclaw.json` 以下是一份接入 oneinai 渠道的 `openclaw.json` 完整参考(路径:`~/.openclaw/openclaw.json`
💡 说明 > 💡 **说明**
> 配置中的 `sk-xxxx``xxxxx` 为占位符,请替换为你自己的 API Key 和 Bot Token。
配置中的 `sk-xxxx``xxxxx` 为占位符,请替换为你自己的 API Key 和 Bot Token。 ```json
{
json "messages": {
"ackReactionScope": "group-mentions"
},
{ "agents": {
"messages": { "defaults": {
"ackReactionScope": "group-mentions" "model": {
"primary": "oneinai-claude/claude-opus-4-5-20251101"
}, },
"agents": { "maxConcurrent": 4,
"defaults": { "subagents": {
"model": { "maxConcurrent": 8
"primary": "ikuncode-claude/claude-opus-4-5-20251101"
},
"maxConcurrent": 4,
"subagents": {
"maxConcurrent": 8
},
"compaction": {
"mode": "safeguard"
},
"workspace": "C:\\\\Users\\\\Administrator\\\\.openclaw\\\\workspace"
}
}, },
"models": { "compaction": {
"providers": { "mode": "safeguard"
"ikuncode-claude": {
"baseUrl": "https://api.oneinai.com/v1",
"apiKey": "sk-xxxx",
"api": "openai-completions",
"headers": {
"User-Agent": "claude-cli/2.0.76 (external, cli)",
"Authorization": "Bearer sk-xxxx"
},
"models": [
{
"id": "claude-opus-4-5-20251101",
"name": "claude-opus-4-5-20251101",
"contextWindow": 200000,
"maxTokens": 32000,
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
}
}
]
},
"ikuncode-codex": {
"baseUrl": "https://api.oneinai.com/v1",
"apiKey": "sk-xxxx",
"api": "openai-completions",
"headers": {
"User-Agent": "codex_cli_rs/0.77.0 (Windows 10.0.26100; x86_64) WindowsTerminal",
"Authorization": "Bearer sk-xxxx"
},
"models": [
{
"id": "gpt-5.2-codex",
"name": "gpt-5.2-codex",
"contextWindow": 200000,
"maxTokens": 32000,
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
}
}
]
}
}
}, },
"gateway": { "workspace": "C:\\\\Users\\\\Administrator\\\\.openclaw\\\\workspace"
"mode": "local", }
"auth": { },
"mode": "token", "models": {
"token": "xxxx" "providers": {
"oneinai-claude": {
"baseUrl": "https://api.oneinai.com/v1",
"apiKey": "sk-xxxx",
"api": "openai-completions",
"headers": {
"User-Agent": "claude-cli/2.0.76 (external, cli)",
"Authorization": "Bearer sk-xxxx"
}, },
"port": 18789, "models": [
"bind": "loopback", {
"tailscale": { "id": "claude-opus-4-5-20251101",
"mode": "off", "name": "claude-opus-4-5-20251101",
"resetOnExit": false "contextWindow": 200000,
} "maxTokens": 32000,
}, "cost": {
"auth": { "input": 0,
"profiles": {} "output": 0,
}, "cacheRead": 0,
"plugins": { "cacheWrite": 0
"entries": { }
"telegram": {
"enabled": true
} }
} ]
}, },
"channels": { "oneinai-codex": {
"telegram": { "baseUrl": "https://api.oneinai.com/v1",
"enabled": true, "apiKey": "sk-xxxx",
"botToken": "xxxxx" "api": "openai-completions",
} "headers": {
}, "User-Agent": "codex_cli_rs/0.77.0 (Windows 10.0.26100; x86_64) WindowsTerminal",
"logging": { "Authorization": "Bearer sk-xxxx"
"level": "trace", },
"consoleLevel": "debug", "models": [
"consoleStyle": "pretty" {
}, "id": "gpt-5.2-codex",
"commands": { "name": "gpt-5.2-codex",
"restart": true "contextWindow": 200000,
}, "maxTokens": 32000,
"skills": { "cost": {
"install": { "input": 0,
"nodeManager": "npm" "output": 0,
} "cacheRead": 0,
"cacheWrite": 0
}
}
]
} }
} }
},
1 "gateway": {
2 "mode": "local",
3 "auth": {
4 "mode": "token",
5 "token": "xxxx"
6 },
7 "port": 18789,
8 "bind": "loopback",
9 "tailscale": {
10 "mode": "off",
11 "resetOnExit": false
12 }
13 },
14 "auth": {
15 "profiles": {}
16 },
17 "plugins": {
18 "entries": {
19 "telegram": {
20 "enabled": true
21 }
22 }
23 },
24 "channels": {
25 "telegram": {
26 "enabled": true,
27 "botToken": "xxxxx"
28 }
29 },
30 "logging": {
31 "level": "trace",
32 "consoleLevel": "debug",
33 "consoleStyle": "pretty"
34 },
35 "commands": {
36 "restart": true
37 },
38 "skills": {
39 "install": {
40 "nodeManager": "npm"
41 }
42 }
43 }
44 ```
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
### 关键字段说明 ### 关键字段说明
字段| 说明 | 字段 | 说明 |
---|--- | --- | --- |
`agents.defaults.model.primary`| 默认使用的模型,格式为 `供应商名/模型ID` | `agents.defaults.model.primary` | 默认使用的模型,格式为 `供应商名/模型ID` |
`agents.defaults.maxConcurrent`| 主代理最大并发数 | `agents.defaults.maxConcurrent` | 主代理最大并发数 |
`agents.defaults.subagents.maxConcurrent`| 子代理最大并发数 | `agents.defaults.subagents.maxConcurrent` | 子代理最大并发数 |
`agents.defaults.compaction.mode`| 上下文压缩模式,`safeguard` 为安全模式 | `agents.defaults.compaction.mode` | 上下文压缩模式,`safeguard` 为安全模式 |
`agents.defaults.workspace`| 工作区目录路径,按你的系统修改 | `agents.defaults.workspace` | 工作区目录路径,按你的系统修改 |
`models.providers`| 模型供应商配置,可配置多个供应商 | `models.providers` | 模型供应商配置,可配置多个供应商 |
`models.providers.*.baseUrl`| API 基础地址IkunCode 统一为 `https://api.oneinai.com/v1` | `models.providers.*.baseUrl` | API 基础地址oneinai 统一为 `https://api.oneinai.com/v1` |
`models.providers.*.apiKey`| 对应分组的 API Key | `models.providers.*.apiKey` | 对应分组的 API Key |
`models.providers.*.api`| 接口协议,固定为 `openai-completions` | `models.providers.*.api` | 接口协议,固定为 `openai-completions` |
`models.providers.*.headers`| 请求头,需包含 `User-Agent``Authorization` | `models.providers.*.headers` | 请求头,需包含 `User-Agent``Authorization` |
`gateway.port`| 网关监听端口,默认 `18789` | `gateway.port` | 网关监听端口,默认 `18789` |
`gateway.bind`| 绑定模式,`loopback` 仅本机访问 | `gateway.bind` | 绑定模式,`loopback` 仅本机访问 |
`channels.telegram.botToken`| Telegram Bot Token通过 @BotFather 获取 | `channels.telegram.botToken` | Telegram Bot Token通过 @BotFather 获取 |
`logging.level`| 日志级别,排查问题时可设为 `trace` | `logging.level` | 日志级别,排查问题时可设为 `trace` |
⚠️ 注意事项 > ⚠️ **注意事项**
> - **Headers 中的 Authorization** 必须与 `apiKey` 保持一致,格式为 `Bearer sk-xxxx`
> - **User-Agent** 必须保持示例中的格式,确保请求正常识别
> - **workspace 路径**Windows 用户使用 `\\\\` 双反斜杠Linux/macOS 用户使用 `/` 正斜杠(如 `/root/.openclaw/workspace`
> - **cost 全部设为 0**:通过 oneinai 中转使用时无需在本地计费
* **Headers 中的 Authorization** 必须与 `apiKey` 保持一致,格式为 `Bearer sk-xxxx` ## ❓ 常见问题
* **User-Agent** 建议保持示例中的格式,确保请求正常识别
* **workspace 路径** Windows 用户使用 `\\\\` 双反斜杠Linux/macOS 用户使用 `/` 正斜杠(如 `/root/.openclaw/workspace`
* **cost 全部设为 0** :通过 IkunCode 中转使用时无需在本地计费
## 常见问题
### 安装脚本执行失败? ### 安装脚本执行失败?
* 确认网络连接正常,能访问 `openclaw.ai` - 确认网络连接正常,能访问 `openclaw.ai`
* 确认系统已安装 `curl``bash` - 确认系统已安装 `curl``bash`
* 如果在国内服务器,可能需要配置代理 - 如果在国内服务器,可能需要配置代理
### 遇到 403 `Your request was blocked` 怎么办? ### 遇到 403 `Your request was blocked` 怎么办?
如果请求返回 `403 Your request was blocked`,说明缺少正确的请求头。**必须** 在供应商配置中添加 `headers` 字段: 如果请求返回 `403 Your request was blocked`,说明缺少正确的请求头。**必须**在供应商配置中添加 `headers` 字段:
json ```json
"headers": {
"User-Agent": "claude-cli/2.0.76 (external, cli)",
"Authorization": "Bearer sk-xxxx"
}
```
> 🚨 **重要**
"headers": { > - `headers` 中的 `Authorization` 值必须与 `apiKey` 一致,格式为 `Bearer sk-你的密钥`
"User-Agent": "claude-cli/2.0.76 (external, cli)", > - `User-Agent` 必须保持示例格式,否则请求会被拦截
"Authorization": "Bearer sk-xxxx" > - 配置完成后执行 `openclaw gateway restart` 重启网关
}
1
2
3
4
🚨 重要
* `headers` 中的 `Authorization` 值必须与 `apiKey` 一致,格式为 `Bearer sk-你的密钥`
* `User-Agent` 必须保持示例格式,否则请求会被拦截
* 配置完成后执行 `openclaw gateway restart` 重启网关
### Gateway 重启后模型仍不可用? ### Gateway 重启后模型仍不可用?
* 检查 API Key 是否正确填入 - 检查 API Key 是否正确填入
* 确认 Key 对应的分组支持你选择的模型 - 确认 Key 对应的分组支持你选择的模型
* 查看 OpenClaw 日志排查具体错误 - 查看 OpenClaw 日志排查具体错误
### 更多问题 ### 更多问题
请查看 [FAQ](</support/faq>) 或联系[售后支持](</support/after-sales>)。 请查看 [FAQ](/support/faq) 或联系[售后支持](/support/after-sales)。