OpenClaw 从入门到实战 - 开源 AI 智能体部署指南-下
node -v # 必须是 v22.x.x 或更高。
OpenClaw Discord 和微信接入配置指南
本文详细介绍如何配置 OpenClaw 的 Discord 和微信接入,包括企业微信和个人微信两种方案。
📑 目录
一、Discord 接入配置
1.1 为什么选择 Discord?
Discord 优势对比表:
| 特性 | Discord | Telegram | 微信 | |
|---|---|---|---|---|
| 国内可用性 | ✅ 可用 | ⚠️ 需换区 | ✅ 可用 | ✅ 可用 |
| 费用 | 🆓 免费 | 🆓 免费 | 💰 收费 | 🆓 免费 |
| Bot 创建难度 | ⭐ 简单 | ⭐⭐ 中等 | ⭐⭐⭐ 复杂 | ⭐⭐⭐⭐ 复杂 |
| 功能完整度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| 推荐度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ |
1.2 创建 Discord Bot
步骤 1:访问开发者门户
https://discord.com/developers/applications
步骤 2:创建应用
步骤 3:创建 Bot
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 点击左侧 Bot | 进入 Bot 配置页面 |
| 2 | 点击 Add Bot | 创建 Bot |
| 3 | 点击 Reset Token | 生成新 Token |
| 4 | 复制 Token | ⚠️ 保存好,只显示一次 |
步骤 4:配置 Bot 权限
# 必需权限清单
✅ Send Messages # 发送消息
✅ Read Message History # 读取历史消息
✅ Use Slash Commands # 使用斜杠命令
✅ Embed Links # 嵌入链接
✅ Attach Files # 附加文件
步骤 5:生成邀请链接
https://discord.com/api/oauth2/authorize?client_id=YOUR_CLIENT_ID&permissions=2147483648&scope=bot
替换 YOUR_CLIENT_ID:
- 在应用页面的 General Information 中找到 Application ID
- 复制并替换到上面的 URL 中
1.3 邀请 Bot 到服务器
1.4 在 OpenClaw 中配置
# 运行配置向导
openclaw onboard
# 选择消息渠道
? Select messaging platform: Discord
# 输入 Discord Bot Token
? Enter Discord Bot Token: MTIzNDU2Nzg5MDEyMzQ1Njc4OTAuGh_xyz.abcdefghijklmnopqrstuvwxyz1234567890
# 配置完成
✅ Discord integration configured successfully!
1.5 启动并测试
# 启动 OpenClaw Gateway
openclaw gateway start
# 或指定端口和绑定地址
openclaw gateway --bind loopback --port 18789 --verbose
# 终端输出
🦞 OpenClaw 2026.3.2 — Gateway started
Listening on http://127.0.0.1:18789
Discord Bot connected: YourBotName#1234
测试步骤:
二、微信接入配置
2.1 微信接入方案对比
| 方案 | 类型 | 难度 | 费用 | 推荐度 | 说明 |
|---|---|---|---|---|---|
| 个人微信(Wechaty) | 非官方 | ⭐⭐⭐ | 🆓 免费 | ⭐⭐⭐⭐ | 适合个人使用 |
| 企业微信 | 官方 | ⭐⭐⭐⭐ | 🆓 免费 | ⭐⭐⭐⭐⭐ | 适合企业 |
| 微信公众号 | 官方 | ⭐⭐⭐⭐ | 🆓 免费 | ⭐⭐⭐ | 适合服务号 |
| 微信小程序 | 官方 | ⭐⭐⭐⭐⭐ | 🆓 免费 | ⭐⭐ | 开发复杂 |
2.2 方案一:个人微信(Wechaty)
2.2.1 什么是 Wechaty?
Wechaty 是一个开源的微信个人号接口,可以让你的个人微信号变成 Bot。
生活类比:
- 个人微信 = 你的手机
- Wechaty = 给手机装了一个自动回复程序
- OpenClaw = 程序的大脑
2.2.2 安装 Wechaty
# 1. 创建 Wechaty 项目目录
mkdir -p ~/.openclaw/wechaty
cd ~/.openclaw/wechaty
# 2. 初始化 npm 项目
npm init -y
# 3. 安装 Wechaty 依赖(仅需 wechaty,使用默认 puppet)
npm install wechaty
# 4. 创建 bot.js(见下方「完整 bot.js 代码」)
# 5. 启动 Wechaty Bot
node bot.js
完整 bot.js 代码
将以下内容保存为 ~/.openclaw/wechaty/bot.js,或直接复制整段到该文件。
/**
* OpenClaw 微信桥接 Bot (Wechaty)
*
* 功能:个人微信收到消息后,转发给 OpenClaw,并把回复发回微信。
* 依赖:npm install wechaty
* 运行:node bot.js
*
* 注意:Wechaty v1.x 使用 WechatyBuilder.build() 创建实例,不要用 new Wechaty()。
*
* 环境变量(可选):
* OPENCLAW_URL OpenClaw API 地址,默认 http://127.0.0.1:18789
* BOT_NAME Bot 名称,默认 openclaw-bot
*/
// Wechaty v1.x 使用 WechatyBuilder.build() 创建实例,不要用 new Wechaty()
const { WechatyBuilder } = require('wechaty')
// ========== 配置 ==========
const OPENCLAW_URL = process.env.OPENCLAW_URL || 'http://127.0.0.1:18789'
const BOT_NAME = process.env.BOT_NAME || 'openclaw-bot'
const OPENCLAW_API = `${OPENCLAW_URL.replace(/\/$/, '')}/api/message`
// ========== 创建 Bot ==========
const bot = WechatyBuilder.build({ name: BOT_NAME })
// ========== 扫码登录 ==========
bot.on('scan', (qrcode, status) => {
const url = `https://wechaty.js.org/qrcode/${encodeURIComponent(qrcode)}`
console.log(`[扫码] 状态: ${status}`)
console.log(`[扫码] 请用微信扫描: ${url}`)
})
bot.on('login', (user) => {
console.log(`[登录] ✅ ${user.name()} 已登录`)
})
bot.on('logout', (user) => {
console.log(`[登出] ${user.name()} 已退出`)
})
// ========== 消息处理 ==========
bot.on('message', async (message) => {
// 忽略自己发的消息,避免死循环
if (message.self()) return
const text = message.text()?.trim()
if (!text) return
const talker = message.talker()
const room = message.room()
const from = room ? `群[${room.topic()}]@${talker.name()}` : talker.name()
console.log(`[消息] ${from}: ${text}`)
try {
const response = await fetch(OPENCLAW_API, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
platform: 'wechat',
message: text,
userId: talker.id,
userName: talker.name(),
roomId: room?.id,
roomTopic: room?.topic(),
}),
})
if (!response.ok) {
throw new Error(`OpenClaw 返回 ${response.status}: ${response.statusText}`)
}
const result = await response.json()
const reply = result?.reply ?? result?.content ?? result?.text
if (reply) {
await message.say(String(reply))
} else {
await message.say('(OpenClaw 未返回有效回复)')
}
} catch (error) {
console.error('[错误] 转发/回复失败:', error.message)
// OpenClaw 未启动或网络异常时,回显原文
await message.say(`收到: ${text}\n(OpenClaw 未连接,请检查服务是否启动)`)
}
})
// ========== 错误处理 ==========
bot.on('error', (error) => {
console.error('[Bot 错误]', error)
})
// ========== 启动 ==========
console.log('🤖 Wechaty Bot 启动中...')
bot
.start()
.then(() => console.log('✅ Bot 已就绪,等待扫码登录'))
.catch((err) => {
console.error('❌ 启动失败:', err)
process.exit(1)
})
配置说明:
| 配置项 | 说明 | 默认值 |
|---|---|---|
OPENCLAW_URL |
OpenClaw Gateway 地址 | http://127.0.0.1:18789 |
BOT_NAME |
Bot 名称(日志用) | openclaw-bot |
OPENCLAW_API |
消息转发 API 路径 | {OPENCLAW_URL}/api/message |
使用方式:
# 默认连接本机 OpenClaw
node bot.js
# 指定 OpenClaw 地址(例如远程或不同端口)
OPENCLAW_URL=http://192.168.1.100:18789 node bot.js
# 指定 Bot 名称
BOT_NAME=my-bot node bot.js
项目目录结构:
~/.openclaw/wechaty/
├── node_modules/
│ └── wechaty/
├── package.json
├── package-lock.json
└── bot.js # 上面完整代码保存为此文件
常见问题排查:
| 问题 | 原因 | 解决方案 |
|---|---|---|
Wechaty is not a constructor |
Wechaty v1.x 已改为 Builder 模式 | 使用 const { WechatyBuilder } = require('wechaty') 和 WechatyBuilder.build({ name: '...' }) |
PuppetWechat is not a constructor |
不要用 wechaty-puppet-wechat | 只装 npm install wechaty,不指定 puppet |
Cannot find module 'wechaty' |
依赖未在项目目录安装 | 在 ~/.openclaw/wechaty 下执行 npm install wechaty |
| 扫码后无反应 | 微信/协议限制 | 换网络或使用付费 puppet(如 padlocal) |
| 频繁掉线 | 免费协议限制 | 考虑企业微信方案或付费 puppet |
2.2.3 扫码登录
2.2.4 配置 OpenClaw
在 OpenClaw 配置文件 ~/.openclaw/openclaw.json 中增加以下内容(若已有 channels、messaging、plugins.entries,则只合并对应字段即可)。
方式一:命令行(推荐)
# 启用 wechat 渠道
openclaw config set channels.wechat.enabled true
# 配置 WeChat 消息(对接 bot.js 转发)
openclaw config set messaging.wechat.enabled true
openclaw config set messaging.wechat.endpoint "http://127.0.0.1:18789/api/message"
openclaw config set messaging.wechat.autoReply true
# 启用 wechat 插件(若 OpenClaw 支持)
openclaw config set plugins.entries.wechat.enabled true
方式二:直接编辑配置文件
编辑 ~/.openclaw/openclaw.json,在合适位置加入:
"channels": {
"discord": { "enabled": true, "groupPolicy": "allowlist", "streaming": "off" },
"wechat": { "enabled": true }
},
"messaging": {
"wechat": {
"enabled": true,
"endpoint": "http://127.0.0.1:18789/api/message",
"autoReply": true
}
},
"plugins": {
"entries": {
"qwen-portal-auth": { "enabled": true },
"discord": { "enabled": true },
"wechat": { "enabled": true }
}
}
配置说明:
| 配置项 | 说明 | 示例值 |
|---|---|---|
channels.wechat.enabled |
是否启用微信渠道 | true |
messaging.wechat.enabled |
是否启用微信消息对接 | true |
messaging.wechat.endpoint |
bot.js 转发到的 OpenClaw API 地址 | http://127.0.0.1:18789/api/message |
messaging.wechat.autoReply |
是否自动回复 | true |
2.3 方案二:企业微信(推荐)
2.3.1 为什么选择企业微信?
企业微信 vs 个人微信对比:
| 特性 | 个人微信(Wechaty) | 企业微信 |
|---|---|---|
| 官方支持 | ❌ 非官方 | ✅ 官方 |
| 稳定性 | ⭐⭐⭐ 可能被封 | ⭐⭐⭐⭐⭐ 稳定 |
| 功能限制 | ⚠️ 有限制 | ✅ 功能全 |
| API 文档 | ⭐⭐⭐ 社区维护 | ⭐⭐⭐⭐⭐ 官方文档 |
| 费用 | 🆓 免费 | 🆓 免费 |
| 适用场景 | 个人/小团队 | 企业/团队 |
2.3.2 注册企业微信
2.3.3 创建企业微信应用
步骤详解表:
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 登录企业微信管理后台 | https://work.weixin.qq.com/ |
| 2 | 点击「应用管理」 | 左侧菜单 |
| 3 | 点击「创建应用」 | 右上角 |
| 4 | 填写应用信息 | 名称、Logo、描述 |
| 5 | 设置可见范围 | 选择可使用的成员 |
| 6 | 获取 AgentId | 应用详情页 |
| 7 | 获取 Secret | 点击「查看」按钮 |
| 8 | 配置回调 URL | 接收消息的地址 |
2.3.4 获取企业信息
# 需要的信息清单
✅ CorpId(企业 ID)
✅ AgentId(应用 ID)
✅ Secret(应用密钥)
✅ Token(用于验证签名)
✅ EncodingAESKey(用于加密)
获取位置:
2.3.5 配置 OpenClaw
# 1. 安装企业微信插件
npm install -g @openclaw/plugin-wework
# 2. 配置企业微信
openclaw config set wework.corpId "your_corp_id"
openclaw config set wework.agentId "your_agent_id"
openclaw config set wework.secret "your_secret"
openclaw config set wework.token "your_token"
openclaw config set wework.encodingAESKey "your_aes_key"
# 3. 设置回调 URL
openclaw config set wework.callbackUrl "https://your-domain.com/wework/callback"
# 4. 启动服务
openclaw gateway start --enable-wework
2.3.6 配置回调服务器
方案 A:使用公网服务器
# 1. 在服务器上安装 OpenClaw
ssh user@your-server.com
npm install -g openclaw
# 2. 配置 Nginx 反向代理
sudo nano /etc/nginx/sites-available/openclaw
# Nginx 配置
server {
listen 80;
server_name your-domain.com;
location /wework/callback {
proxy_pass http://127.0.0.1:18789;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
# 3. 重启 Nginx
sudo systemctl restart nginx
# 4. 启动 OpenClaw
openclaw gateway start
方案 B:使用内网穿透(开发测试)
# 使用 ngrok
npm install -g ngrok
# 启动内网穿透
ngrok http 18789
# 复制 ngrok 提供的 URL
# 例如:https://abc123.ngrok.io
# 在企业微信后台配置回调 URL
# https://abc123.ngrok.io/wework/callback
2.3.7 验证配置
# 1. 启动 OpenClaw
openclaw gateway start --verbose
# 2. 在企业微信应用中点击「验证」
# 终端应该显示:
✅ WeWork callback verification successful
# 3. 发送测试消息
# 在企业微信中给应用发消息
# 4. 查看日志
openclaw logs --tail 50
2.4 微信接入完整流程图
2.5 微信接入常见问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Wechaty 登录失败 | 微信版本不兼容 | 使用 iPad 协议 |
| 企业微信验证失败 | Token/AESKey 错误 | 检查配置是否正确 |
| 回调 URL 无法访问 | 网络不通 | 检查防火墙和端口 |
| 消息收不到 | 权限不足 | 检查应用可见范围 |
| 频繁掉线 | 网络不稳定 | 使用服务器部署 |
三、其他消息渠道配置
3.1 Telegram 配置
3.1.1 创建 Telegram Bot
# 1. 在 Telegram 中搜索 @BotFather
# 2. 发送 /newbot
# 3. 按提示设置 Bot 名称和用户名
# 4. 获取 Bot Token
Telegram Bot 创建流程:
3.1.2 配置 OpenClaw
# 配置 Telegram
openclaw config set telegram.token "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
# 启动
openclaw gateway start --enable-telegram
3.2 飞书配置
3.2.1 创建飞书应用
| 步骤 | 操作 | 链接 |
|---|---|---|
| 1 | 访问飞书开放平台 | https://open.feishu.cn/ |
| 2 | 创建企业自建应用 | 开发者后台 |
| 3 | 获取 App ID 和 App Secret | 凭证与基础信息 |
| 4 | 配置事件订阅 | 事件与回调 |
| 5 | 添加机器人能力 | 应用功能 |
3.2.2 配置 OpenClaw
# 配置飞书
openclaw config set feishu.appId "cli_xxxxxxxx"
openclaw config set feishu.appSecret "xxxxxxxxxxxxxxxx"
openclaw config set feishu.verificationToken "xxxxxxxx"
openclaw config set feishu.encryptKey "xxxxxxxx"
# 启动
openclaw gateway start --enable-feishu
3.3 钉钉配置
3.3.1 创建钉钉机器人
# 1. 进入钉钉群聊
# 2. 点击群设置 > 智能群助手 > 添加机器人
# 3. 选择「自定义」机器人
# 4. 设置机器人名称和安全设置
# 5. 获取 Webhook 地址
3.3.2 配置 OpenClaw
# 配置钉钉
openclaw config set dingtalk.webhook "https://oapi.dingtalk.com/robot/send?access_token=xxxxx"
openclaw config set dingtalk.secret "SECxxxxxxxxxx"
# 启动
openclaw gateway start --enable-dingtalk
3.4 Slack 配置
3.4.1 创建 Slack App
# 1. 访问 https://api.slack.com/apps
# 2. 点击 Create New App
# 3. 选择 From scratch
# 4. 输入 App 名称和选择 Workspace
# 5. 添加 Bot Token Scopes
# 6. 安装 App 到 Workspace
# 7. 获取 Bot Token
3.4.2 配置 OpenClaw
# 配置 Slack
openclaw config set slack.token "xoxb-xxxxxxxxxxxxx"
openclaw config set slack.signingSecret "xxxxxxxxxxxxxxxx"
# 启动
openclaw gateway start --enable-slack
3.5 消息渠道全面对比表
| 渠道 | 国内可用 | 费用 | 配置难度 | 功能完整度 | 推荐度 | 适用场景 |
|---|---|---|---|---|---|---|
| Discord | ✅ 可用 | 🆓 免费 | ⭐ 简单 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 个人、团队、社区 |
| 企业微信 | ✅ 可用 | 🆓 免费 | ⭐⭐⭐ 中等 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 企业办公 |
| 个人微信 | ✅ 可用 | 🆓 免费 | ⭐⭐⭐ 中等 | ⭐⭐⭐ | ⭐⭐⭐⭐ | 个人、小团队 |
| 飞书 | ✅ 可用 | 🆓 免费 | ⭐⭐⭐ 中等 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 企业办公 |
| 钉钉 | ✅ 可用 | 🆓 免费 | ⭐⭐ 简单 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 企业办公 |
| Telegram | ⚠️ 需换区 | 🆓 免费 | ⭐⭐ 简单 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | 国际用户 |
| Slack | ✅ 可用 | 💰 部分收费 | ⭐⭐ 简单 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | 技术团队 |
| ✅ 可用 | 💰 收费 | ⭐⭐⭐⭐ 复杂 | ⭐⭐⭐ | ⭐⭐ | 国际业务 |
3.6 渠道选择决策树
四、高级配置
4.1 多模型配置
4.1.1 支持的 AI 模型
| 模型 | 提供商 | 特点 | 费用 | 推荐度 |
|---|---|---|---|---|
| Claude 3.5 | Anthropic | 最强推理能力 | 💰 按量付费 | ⭐⭐⭐⭐⭐ |
| GPT-4 | OpenAI | 综合能力强 | 💰 按量付费 | ⭐⭐⭐⭐⭐ |
| Qwen | 阿里云 | 中文优秀 | 💰 按量付费 | ⭐⭐⭐⭐ |
| Gemini | 多模态强 | 🆓 有免费额度 | ⭐⭐⭐⭐ | |
| DeepSeek | DeepSeek | 性价比高 | 💰 便宜 | ⭐⭐⭐⭐ |
4.1.2 配置多个模型
# 配置 Claude
openclaw config set ai.claude.apiKey "sk-ant-xxxxx"
openclaw config set ai.claude.model "claude-3-5-sonnet-20241022"
# 配置 GPT
openclaw config set ai.openai.apiKey "sk-xxxxx"
openclaw config set ai.openai.model "gpt-4"
# 配置 Qwen
openclaw config set ai.qwen.apiKey "sk-xxxxx"
openclaw config set ai.qwen.model "qwen-max"
# 设置默认模型
openclaw config set ai.default "claude"
4.1.3 模型切换
# 在对话中切换模型
@bot use gpt-4
@bot use claude
@bot use qwen
4.2 自定义提示词(Prompt)
# 编辑系统提示词
openclaw config edit prompts
# 示例配置
{
"system": "你是一个专业的技术助手,擅长编程和系统管理。",
"codeReview": "请仔细审查以下代码,指出潜在问题和改进建议。",
"taskAutomation": "请帮我完成以下自动化任务:"
}
4.3 权限管理
# 设置管理员
openclaw config set auth.admins "user_id_1,user_id_2"
# 设置白名单
openclaw config set auth.whitelist "user_id_3,user_id_4"
# 启用认证
openclaw config set auth.enabled true
4.4 日志配置
# 设置日志级别
openclaw config set log.level "debug" # debug, info, warn, error
# 设置日志文件
openclaw config set log.file "/var/log/openclaw/app.log"
# 启用日志轮转
openclaw config set log.rotate true
openclaw config set log.maxSize "100MB"
openclaw config set log.maxFiles 10
4.5 性能优化
# 设置并发数
openclaw config set performance.maxConcurrency 10
# 设置超时时间
openclaw config set performance.timeout 30000 # 30秒
# 启用缓存
openclaw config set cache.enabled true
openclaw config set cache.ttl 3600 # 1小时
# 设置内存限制
openclaw config set performance.memoryLimit "2GB"
4.6 Docker 部署
# 创建 Dockerfile
cat > Dockerfile << 'EOF'
FROM node:22-alpine
# 安装 OpenClaw
RUN npm install -g openclaw@latest
# 创建工作目录
WORKDIR /app
# 复制配置文件
COPY config.json /root/.openclaw/config.json
# 暴露端口
EXPOSE 18789
# 启动命令
CMD ["openclaw", "gateway", "start", "--bind", "0.0.0.0", "--port", "18789"]
EOF
# 构建镜像
docker build -t openclaw:latest .
# 运行容器
docker run -d \
--name openclaw \
-p 18789:18789 \
-v ~/.openclaw:/root/.openclaw \
--restart unless-stopped \
openclaw:latest
4.7 Nginx 反向代理
# /etc/nginx/sites-available/openclaw
server {
listen 80;
server_name openclaw.yourdomain.com;
# 重定向到 HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name openclaw.yourdomain.com;
# SSL 证书
ssl_certificate /etc/letsencrypt/live/openclaw.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/openclaw.yourdomain.com/privkey.pem;
# 安全配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# 反向代理
location / {
proxy_pass http://127.0.0.1:18789;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# WebSocket 支持
location /ws {
proxy_pass http://127.0.0.1:18789;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
}
五、常见问题
5.1 安装问题
问题 1:Node.js 版本不符合要求
# 症状
Error: OpenClaw requires Node.js >= 22.0.0
# 解决方案
# 使用 nvm 安装 Node.js 22
nvm install 22
nvm use 22
node -v
问题 2:npm 安装失败
# 症状
npm ERR! code EACCES
# 解决方案 1:不使用 sudo
npm config set prefix ~/.npm-global
export PATH=~/.npm-global/bin:$PATH
# 解决方案 2:使用 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
问题 3:网络问题
# 使用淘宝镜像
npm config set registry https://registry.npmmirror.com
# 或使用代理
npm config set proxy http://proxy.example.com:8080
npm config set https-proxy http://proxy.example.com:8080
5.2 配置问题
问题 1:Discord Bot 无法连接
问题排查表:
| 检查项 | 命令 | 预期结果 |
|---|---|---|
| Token 是否正确 | openclaw config get discord.token |
显示 Token |
| Bot 是否在线 | 查看 Discord 开发者门户 | 显示在线 |
| 权限是否足够 | 检查 Bot 权限 | 有发送消息权限 |
| 网络是否通畅 | ping discord.com |
能 ping 通 |
问题 2:微信回调验证失败
5.3 运行问题
问题 1:端口被占用
# 症状
Error: Port 18789 is already in use
# 解决方案 1:使用其他端口
openclaw gateway start --port 18790
# 解决方案 2:杀死占用端口的进程
# macOS/Linux
lsof -ti:18789 | xargs kill -9
# Windows
netstat -ano | findstr :18789
taskkill /PID <PID> /F
问题 2:内存不足
# 症状
JavaScript heap out of memory
# 解决方案:增加内存限制
export NODE_OPTIONS="--max-old-space-size=4096"
openclaw gateway start
问题 3:频繁崩溃
# 使用 PM2 管理进程
npm install -g pm2
# 启动 OpenClaw
pm2 start openclaw -- gateway start
# 查看日志
pm2 logs openclaw
# 设置开机自启
pm2 startup
pm2 save
5.4 性能问题
响应速度慢
优化检查清单:
5.5 安全问题
安全配置建议表
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| HTTPS | ✅ 启用 | 使用 Let’s Encrypt |
| 防火墙 | ✅ 启用 | 只开放必要端口 |
| 认证 | ✅ 启用 | 设置强密码 |
| 日志审计 | ✅ 启用 | 记录所有操作 |
| 定期更新 | ✅ 启用 | 及时修复漏洞 |
| 备份 | ✅ 启用 | 定期备份配置 |
六、实战案例
6.1 案例 1:自动化代码审查
场景:团队在 Discord 中提交代码,OpenClaw 自动进行代码审查。
# 配置代码审查提示词
openclaw config set prompts.codeReview "请审查以下代码,重点关注:
1. 安全漏洞
2. 性能问题
3. 代码规范
4. 最佳实践"
# 在 Discord 中使用
@bot review
```python
def login(username, password):
query = f"SELECT * FROM users WHERE username='{username}' AND password='{password}'"
return db.execute(query)
**OpenClaw 回复**:
⚠️ 发现严重安全问题:
-
SQL 注入漏洞
- 使用字符串拼接构建 SQL 查询
- 建议:使用参数化查询
-
明文密码
- 密码未加密存储
- 建议:使用 bcrypt 或 argon2 加密
修改建议:
def login(username, password):
query = "SELECT * FROM users WHERE username=? AND password_hash=?"
password_hash = bcrypt.hashpw(password.encode(), salt)
return db.execute(query, (username, password_hash))
### 6.2 案例 2:企业微信日报提醒
**场景**:每天下午 5 点提醒团队成员写日报。
```bash
# 创建定时任务脚本
cat > ~/.openclaw/scripts/daily-report.js << 'EOF'
const schedule = require('node-schedule');
const axios = require('axios');
// 每天下午 5 点执行
schedule.scheduleJob('0 17 * * *', async () => {
const message = {
msgtype: 'text',
text: {
content: '📝 提醒:请在下班前提交今日工作日报!\n\n包括:\n1. 今日完成工作\n2. 遇到的问题\n3. 明日计划'
}
};
await axios.post('http://127.0.0.1:18789/api/wework/send', message);
});
EOF
# 运行脚本
node ~/.openclaw/scripts/daily-report.js
6.3 案例 3:多语言翻译助手
场景:在微信群中自动翻译消息。
# 配置翻译功能
openclaw config set features.translation.enabled true
openclaw config set features.translation.languages "en,zh,ja,ko"
# 使用方式
# 在微信中发送:
/translate en 你好世界
# OpenClaw 回复:
Hello World
6.4 案例 4:服务器监控告警
场景:服务器 CPU/内存超过阈值时,通过 Discord 告警。
# 创建监控脚本
cat > ~/.openclaw/scripts/server-monitor.js << 'EOF'
const os = require('os');
const axios = require('axios');
setInterval(async () => {
const cpuUsage = os.loadavg()[0] / os.cpus().length * 100;
const memUsage = (1 - os.freemem() / os.totalmem()) * 100;
if (cpuUsage > 80 || memUsage > 85) {
const alert = {
platform: 'discord',
message: `🚨 服务器告警!
CPU 使用率: ${cpuUsage.toFixed(2)}%
内存使用率: ${memUsage.toFixed(2)}%
时间: ${new Date().toLocaleString()}
请及时处理!`
};
await axios.post('http://127.0.0.1:18789/api/alert', alert);
}
}, 60000); // 每分钟检查一次
EOF
# 使用 PM2 运行
pm2 start ~/.openclaw/scripts/server-monitor.js --name server-monitor
6.5 案例 5:智能客服系统
场景:企业微信接入智能客服,自动回答常见问题。
# 配置知识库
openclaw config set kb.enabled true
openclaw config set kb.source "docs/*.md"
# 添加常见问题
cat > ~/.openclaw/kb/faq.md << 'EOF'
# 常见问题
## 如何修改密码?
1. 登录系统
2. 点击右上角头像
3. 选择"修改密码"
4. 输入旧密码和新密码
## 如何申请权限?
1. 联系部门管理员
2. 填写权限申请表
3. 等待审批通过
## 系统支持哪些浏览器?
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
EOF
# 重新加载知识库
openclaw kb reload
七、最佳实践
7.1 配置管理
使用环境变量
# .env 文件
NODE_ENV=production
OPENCLAW_PORT=18789
OPENCLAW_BIND=0.0.0.0
# Discord
DISCORD_TOKEN=MTIzNDU2...
DISCORD_CLIENT_ID=123456789
# WeChat
WEWORK_CORP_ID=wwxxxx
WEWORK_AGENT_ID=1000001
WEWORK_SECRET=xxxxx
# AI Models
CLAUDE_API_KEY=sk-ant-xxxxx
OPENAI_API_KEY=sk-xxxxx
QWEN_API_KEY=sk-xxxxx
# 加载环境变量
openclaw gateway start --env-file .env
配置文件管理
# 导出配置
openclaw config export > config.json
# 导入配置
openclaw config import < config.json
# 备份配置
cp ~/.openclaw/config.json ~/.openclaw/config.backup.json
# 版本控制(去除敏感信息)
cat ~/.openclaw/config.json | jq 'del(.apiKeys)' > config.template.json
7.2 安全实践
安全检查清单
7.3 性能优化
性能优化对比表
| 优化项 | 优化前 | 优化后 | 提升 | 方法 |
|---|---|---|---|---|
| 响应时间 | 3-5秒 | 0.5-1秒 | 🚀 5倍 | 启用缓存 |
| 并发处理 | 10 req/s | 100 req/s | 🚀 10倍 | 增加并发数 |
| 内存占用 | 1GB | 500MB | 💾 50% | 优化代码 |
| 启动时间 | 30秒 | 5秒 | ⚡ 6倍 | 预加载优化 |
7.4 监控告警
# 安装监控工具
npm install -g @openclaw/monitor
# 配置监控
openclaw monitor config --enable-metrics --enable-alerts
# 查看实时指标
openclaw monitor dashboard
# 设置告警规则
openclaw monitor alert set --metric cpu --threshold 80 --action notify
openclaw monitor alert set --metric memory --threshold 85 --action notify
openclaw monitor alert set --metric response_time --threshold 3000 --action notify
7.5 备份恢复
# 自动备份脚本
cat > ~/.openclaw/scripts/backup.sh << 'EOF'
#!/bin/bash
BACKUP_DIR=~/.openclaw/backups
DATE=$(date +%Y%m%d_%H%M%S)
# 创建备份目录
mkdir -p $BACKUP_DIR
# 备份配置
cp ~/.openclaw/config.json $BACKUP_DIR/config_$DATE.json
# 备份数据库
openclaw db export > $BACKUP_DIR/db_$DATE.sql
# 备份脚本
tar -czf $BACKUP_DIR/scripts_$DATE.tar.gz ~/.openclaw/scripts/
# 清理 7 天前的备份
find $BACKUP_DIR -mtime +7 -delete
echo "Backup completed: $DATE"
EOF
# 设置定时备份(每天凌晨 2 点)
crontab -e
# 添加:0 2 * * * /bin/bash ~/.openclaw/scripts/backup.sh
八、故障排查
8.1 诊断工具
# 健康检查
openclaw health check
# 输出示例
✅ Node.js version: v22.16.0
✅ OpenClaw version: 2026.3.2
✅ Gateway status: Running
✅ Discord connection: Connected
✅ WeChat connection: Connected
⚠️ Memory usage: 85% (high)
✅ Disk space: 45% (ok)
# 详细诊断
openclaw diagnose --verbose
# 网络测试
openclaw test connection --platform discord
openclaw test connection --platform wechat
8.2 日志分析
# 查看实时日志
openclaw logs --follow
# 查看最近 100 条日志
openclaw logs --tail 100
# 过滤错误日志
openclaw logs --level error
# 搜索关键词
openclaw logs --grep "connection failed"
# 导出日志
openclaw logs --since "2024-01-01" --until "2024-01-31" > logs_jan.txt
8.3 常见错误码
| 错误码 | 说明 | 原因 | 解决方案 |
|---|---|---|---|
| E001 | 配置文件错误 | JSON 格式错误 | 检查配置文件语法 |
| E002 | API Key 无效 | Key 过期或错误 | 重新获取 API Key |
| E003 | 网络连接失败 | 网络不通 | 检查网络和防火墙 |
| E004 | 权限不足 | 没有操作权限 | 检查权限配置 |
| E005 | 资源不足 | 内存或磁盘不足 | 增加资源或清理 |
| E006 | 模块加载失败 | 依赖缺失 | 重新安装依赖 |
📊 三种消息渠道对比
| 渠道 | 优势 | 劣势 | 国内可用性 | 费用 | 推荐度 |
|---|---|---|---|---|---|
| Discord | 免费、易用、功能全 | 国内访问偶尔慢 | ✅ 可用 | 🆓 免费 | ⭐⭐⭐⭐⭐ |
| 企业微信 | 官方支持、稳定 | 配置稍复杂 | ✅ 可用 | 🆓 免费 | ⭐⭐⭐⭐⭐ |
| 个人微信 | 用户基数大 | 可能被封 | ✅ 可用 | 🆓 免费 | ⭐⭐⭐⭐ |
| Telegram | 功能强大、Bot 生态好 | 登录复杂、国内下载难 | ⚠️ 需换区 | 🆓 免费 | ⭐⭐⭐ |
| 用户基数大 | Business API 收费 | ✅ 可用 | 💰 收费 | ⭐⭐ |
推荐选择:
- 🥇 Discord:个人/团队/社区首选
- 🥈 企业微信:企业办公首选
- 🥉 个人微信:小团队备选
🎯 安装流程图
💡 经验总结
1. Node.js 版本很重要
OpenClaw 严格要求 Node.js >= 22,安装前务必检查:
node -v
# 必须是 v22.x.x 或更高
2. 消息渠道选择建议(国内用户)
推荐顺序:
- ⭐⭐⭐⭐⭐ Discord:免费、易用、国内可下载
- ⭐⭐⭐⭐ 飞书:国内企业常用,稳定
- ⭐⭐⭐⭐ 企业微信:办公场景集成好
- ⭐⭐⭐ Telegram:功能最强,但国内下载麻烦
- ⭐⭐ WhatsApp:需要付费
3. Telegram 的坑
- 桌面版登录界面可能有交互 Bug
- 中国大陆 App Store 已下架
- 需要换区或 TestFlight,流程复杂
- 不推荐国内用户作为首选
4. Discord 的优势
- ✅ 中国区 App Store 可直接下载
- ✅ Bot 创建流程简单清晰
- ✅ 完全免费,无隐藏费用
- ✅ 文档完善,社区活跃
- ✅ 支持语音、频道、权限管理
📝 完整安装命令(成功版本)
# 1. 检查 Node.js 版本
node -v
# 输出:v22.16.0
# 2. 安装 OpenClaw
npm install -g openclaw@latest
# 3. 验证安装
openclaw --version
# 输出:2026.3.2
# 4. 配置(选择 Discord)
openclaw onboard --install-daemon
# 配置向导:
# - 模式:QuickStart
# - AI 模型:Claude / Qwen(根据你的 API Key)
# - 消息渠道:Discord
# - Discord Bot Token:MTIzNDU2...(从开发者门户获取)
# 5. 启动
openclaw gateway --bind loopback --port 18789 --verbose
# 6. 访问
# 浏览器打开:http://127.0.0.1:18789
🎯 关键要点
- Node.js 必须 >= 22:这是硬性要求
- 国内用户优先选 Discord:避免 Telegram 的下载和登录问题
- Discord Bot Token 获取简单:5 分钟即可完成
- 不要用 sudo 安装:会导致权限和配置路径问题
📚 参考资源
✅ 安装成功标志
# 终端输出
🦞 OpenClaw 2026.3.2 (85377a2) — I can't fix your code taste, but I can fix your build and your backlog.
OpenClaw Gateway v2.0.0
Listening on http://127.0.0.1:18789
Press Ctrl+C to stop
浏览器访问 http://127.0.0.1:18789 能看到 OpenClaw 界面即为成功!
💡 给其他用户的建议
如果你也在安装 OpenClaw,建议:
- 检查 Node.js 版本:必须 >= 22
- 国内用户优先选 Discord:
- ✅ 免费
- ✅ 易用
- ✅ App Store 可下载
- ✅ 不需要翻墙
- 避开 Telegram(国内用户):
- ❌ 中国区 App Store 下架
- ❌ 登录界面可能有 Bug
- ❌ 需要换区或内网穿透
- 避开 WhatsApp:
- ❌ Business API 按消息收费
- ❌ 配置复杂
总结:macOS + Discord = 最顺畅的 OpenClaw 安装体验!
🚀 下一步学习
- OpenClaw 高级配置(多模型切换)
- 自定义插件开发
- 与企业微信/钉钉集成
- 集群部署与负载均衡
- 性能监控与日志分析
📚 参考资源
💡 课后作业
- 基础部署:在阿里云上部署 OpenClaw 并成功访问
- 安全配置:配置 HTTPS 和限制 SSH 访问
- 实战练习:实现自动整理桌面文件的功能
- 对比分析:试用豆包/千问,对比与 OpenClaw 的差异
- 自动化任务:设计一个适合你工作场景的自动化任务
- 性能优化:配置日志轮转和资源限制
- 思考题:你的项目适合用 OpenClaw 还是豆包/千问?为什么?
相关文章:
📝 学习建议:OpenClaw 是一个强大但需要技术背景的工具。如果你只是想要一个对话助手,豆包/千问更合适;如果你需要真正的自动化能力和系统级操作,OpenClaw 是最佳选择。记住:**没有最好的工具,只有最合适的工具!**先理解需求,再选择方案。
更多推荐

所有评论(0)