跳到主要内容OpenClaw 新手指南:AI 机器人搭建与配置全攻略 | 极客日志TypeScriptNode.jsSaaSWeChatAI
OpenClaw 新手指南:AI 机器人搭建与配置全攻略
OpenClaw 是一款开源自托管 AI 网关,支持连接微信、飞书、Telegram 等平台与 Claude、GPT 等模型。提供从安装配置到高级功能的全方位指南,涵盖多渠道管理、自动化任务(Cron)、长期记忆、浏览器自动化、插件开发及权限控制。包含 20 个实用 Shell 脚本示例,如价格监控、服务器资源监控等,并整理 30 个常见问题解答与故障排除手册,帮助用户实现本地化 AI 助手部署与运维。
链路追踪32 浏览 OpenClaw 新手指南:AI 机器人搭建与配置全攻略
为什么选择 OpenClaw?
OpenClaw 是一个开源的自托管 AI 网关,让你可以在自己服务器上运行一个 central hub,连接所有聊天平台到强大的 AI 模型(如 Claude、GPT、Pi、Kimi 等)。
核心优势:
- ✅ 数据完全掌控(自托管,隐私安全)
- ✅ 多平台统一管理(一个网关服务所有渠道)
- ✅ 无代码扩展(通过技能系统)
- ✅ 24/7 可用(开机自启动)
- ✅ 日志和记忆(支持长期对话)
10 个核心技巧详解
技巧 1:快速安装与配置
适用场景: 第一次使用,5 分钟内启动
nvm install 22
nvm use 22
npm install -g openclaw
openclaw onboard
向导会问:
- 你想使用哪个渠道?(WhatsApp、Telegram、Discord、飞书等)
- 你想用哪个 AI 模型?(Claude、GPT、Kimi 等)
- 是否需要开机自启?
5 分钟后,你的第一个 AI 机器人就上线了。
技巧 2:多渠道管理
适用场景: 同时运营多个社群
配置示例 ~/.openclaw/openclaw.json:
{"channels":{"telegram":{"accounts":{"default":{"token":"YOUR_TELEGRAM_BOT_TOKEN"},"alerts":{"token":"YOUR_ALERT_BOT_TOKEN","name":
"Alert Bot"
}
}
}
,
"discord"
:
{
"accounts"
:
{
"work"
:
{
"token"
:
"YOUR_DISCORD_BOT_TOKEN"
}
}
}
,
"feishu"
:
{
"accounts"
:
{
"default"
:
{
"app_id"
:
"cli_xxxxx"
,
"app_secret"
:
"xxxxx"
,
"encrypt_key"
:
"xxxxx"
,
"verification_token"
:
"xxxxx"
}
}
}
}
}
- 一个机器人可以服务多个群组
- 可以设置不同的机器人账户(如:工作机器人 vs 生活机器人)
- 使用
channels list 命令查看所有已配置渠道
技巧 3:自动化任务(Cron Jobs)
openclaw cron add --name "晨间提醒" --cron "0 9 * * *" --system-event "早安!今天有哪些重要任务?"
openclaw cron add --name "每周总结" --cron "0 17 * * 5" --agent-turn "汇总本周任务完成情况,生成报告"
--at 1735689600:绝对时间(Unix 时间戳)
--every 1h:每小时执行一次
--deliver:通知到指定渠道
技巧 4:长期记忆管理
~/.openclaw/workspace/
├── MEMORY.md
└── memory/
├── 2026-02-17.md
└── 2026-02-18.md
# 用户信息
**姓名:** 小纯
**时区:** GMT+8
**联系方式:** 飞书
### 偏好
- 喜欢详细的说明和可视化例子
- 注重美学和流畅的动画
- 偏好科技/科幻风格
openclaw memory search "项目进度"
openclaw memory index
价值: AI 能根据记忆了解用户,提供更个性化的回复。
技巧 5:自动化脚本集成
cd ~workspace && cat > price-monitor.sh <<'EOF'
PRICE=$(curl -s https://example.com/product | grep -oP 'price: \K[0-9]+')
if [ $PRICE -lt 100 ]; then
openclaw message send --channel feishu --message "价格已降至 $PRICE!"
fi
EOF
chmod +x price-monitor.sh
openclaw cron add --name "价格监控" --cron "0 */6 * * *" --agent-turn "运行价格监控脚本"
技巧 6:语音唤醒(高级)
- 十一语音合成 (ElevenLabs TTS)
- 本地 TTS(如 macOS 原生)
- WebSocket 语音流
{"voice":{"enabled":true,"provider":"elevenlabs","apiKey":"YOUR_API_KEY","voiceId":"your-voice-id"}}
技巧 7:浏览器自动化
- 自动化注册流程
- 网页数据抓取
- 自动化测试
- 每日数据汇总
技巧 8:开发插件扩展
~workspace/skills/my-plugin/
├── SKILL.md
├── index.ts
└── package.json
---
name: "my-company-integration"
description: "公司内部系统集成"
---
# 使用场景
- 自动化 HR 工作流
- 工单系统自动化
# 如何使用
直接在对话中:帮我创建一个 Jira 工单
插件自动激活:
当对话匹配描述时,AI 会自动启用插件功能和对应工具(可调用外部 API 等)。
技巧 9:实时监控与健康检查
openclaw status
openclaw channels status --probe
openclaw logs --follow
关键指标:
✓ 网关是否运行
✓ 渠道是否连接
✓ Token 余额
✓ 内存/CPU 使用
openclaw cron add --name "健康检查" --cron "0 */4 * * *" --agent-turn "检查服务健康状态,若有异常通知我"
技巧 10:团队协作与权限管理
{"channels":{"discord":{"accounts":{"default":{"token":"YOUR_TOKEN","allowFrom":["user:123","user:456"],"groups":{"work-team":{"allowFrom":["role:admin"]}}}}}}}
- 用户级别:限制特定用户
- 群组级别:限制特定 Discord 群
- 角色级别:限制 Discord 角色
20 个实战脚本
基础操作脚本
#!/bin/bash
DATE=$(date +%Y%m%d)
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.backup.$DATE
echo "配置已备份到 openclaw.json.backup.$DATE"
#!/bin/bash
find ~/.openclaw/logs -name "*.log" -mtime +7 -delete
echo "已清理 7 天前的日志"
#!/bin/bash
openclaw gateway stop
sleep 3
openclaw gateway start
echo "网关已重启"
数据抓取脚本
#!/bin/bash
check_product_price(){
URL=$1
THRESHOLD=$2
PRODUCT_NAME=$3
PRICE=$(curl -s $URL | grep -oP 'price: \K[0-9.]+')
if (( $(awk "BEGIN {print $PRICE <= $THRESHOLD}")));
then
openclaw message send --channel feishu --target "@your_alert_group" --message "$PRODUCT_NAME 价格已降至 $PRICE"
fi
}
#!/bin/bash
CITY=$1
WEATHER=$(curl -s "https://getweather.com/$CITY" | jq '.weather')
openclaw message send --channel feishu --message "$CITY 今日天气:$WEATHER"
#!/bin/bash
SYMBOL=$1
PRICE=$(curl -s "https://api.stocks.com/$SYMBOL" | jq '.price')
openclaw message send --channel feishu --message "$SYMBOL 的最新价格是 $PRICE"
自动化工作流脚本
#!/bin/bash
TODAY=$(date +%Y-%m-%d)
REPORT=$(cat ~workspace/tasks.log | grep $TODAY)
openclaw message send --channel feishu --message "📊 今日工作报告\n$REPORT"
#!/bin/bash
CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)
MEM=$(free | grep Mem | awk '{printf "%.1f%%", $3/$2 * 100.0}')
DISK=$(df -h | awk '$NF=="/{printf "%s", $5}')
if (( $(awk "BEGIN {print $CPU >80}")));
then
openclaw message send --channel feishu --message "⚠️ CPU 使用率过高:$CPU%"
fi
if [[ "$DISK" == *9?%* ]];
then
openclaw message send --channel feishu --message "⚠️ 磁盘使用率过高:$DISK"
fi
#!/bin/bash
BACKUP_DIR=~/.openclaw/backups
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
cp -r ~/.openclaw/openclaw.json $BACKUP_DIR/
cp -r ~/.openclaw/workspace $BACKUP_DIR/workspace_$DATE
find $BACKUP_DIR -mtime +30 -delete
#!/bin/bash
BACKUP_FILE=~workspace/db_backup_$(date +%Y%m%d).sql
if [ -f "~workspace/database.db" ];
then
sqlite3 ~/workspace/database.db .dump > $BACKUP_FILE
fi
网络脚本
#!/bin/bash
URL=$1
STATUS=$(curl -s -o /dev/null -w "%{http_code}" $URL)
if [ $STATUS -ne 200 ];
then
openclaw message send --channel feishu --message "❌ 网站异常:$URL (状态码:$STATUS)"
fi
#!/bin/bash
DOMAIN=$1
EXPIRY=$(echo | openssl s_client -servername $DOMAIN -connect $DOMAIN:443 2>/dev/null | openssl x509 -noout -dates | grep notAfter | cut -d= -f2)
DAYS=$(echo $(($(date -d "$EXPIRY" +%s) - $(date +%s))) / 86400)
if [ $DAYS -lt 30 ];
then
openclaw message send --channel feishu --message "⚠️ $DOMAIN 证书将在 $DAYS 天后过期!"
fi
#!/bin/bash
IP=$1
PORT=$2
if nc -z -w5 $IP $PORT; then
openclaw message send --channel feishu --message "$IP:$PORT 端口正常"
else
openclaw message send --channel feishu --message "❌ $IP:$PORT 端口不可达"
fi
文件操作脚本
#!/bin/bash
DIR=$1
fdupes -r $DIR | while read -r file; do
if [ "$file" != "$PREV" ]; then
PREV=$file
else
rm "$file"
echo "已删除重复文件:$file"
fi
done
#!/bin/bash
DIR=$1
DAYS=$2
find $DIR -type f -mtime +$DAYS -delete
echo "已删除 $DIR 中 $DAYS 天前的文件"
AI 辅助脚本
#!/bin/bash
FILE=$1
openclaw agent --message "请分析这个文件:$(cat $FILE)" --to feishu
#!/bin/bash
LOG_FILE=$1
openclaw agent --message "总结这个日志文件的核心错误:$(tail -100 $LOG_FILE)" --to feishu
#!/bin/bash
TEXT=$1
openclaw agent --message "翻译成英文:$TEXT"
#!/bin/bash
TYPE=$1
openclaw agent --message "生成 $TYPE 的测试数据(10 个样本)"
#!/bin/bash
FILE=$1
openclaw agent --message "审查这段代码的安全性:$(cat $FILE)"
30 个常见问题解答
安装与配置
Q1:OpenClaw 支持哪些平台?
A:支持:
- 聊天平台:WhatsApp、Telegram、Discord、飞书、微信、Google Chat、Slack、iMessage、MS Teams
- 操作系统:macOS、Linux、Windows(Via WSL)
- CPU:现代处理器(2015 年后)
- 内存:空闲 RAM > 2GB
- 磁盘:至少 5GB 空间
- 网络:允许端到端连接
Q3:是否需要显卡?
A:不需要,OpenClaw 主要是路由和管理工作流,不进行本地模型推理。
Q4:OpenClaw 是否支持多模型?
A:支持!可同时使用多个 AI 模型,并设置优先级和回退。配置示例如下:
{"agents":{"defaults":{"model":{"primary":"anthropic/claude-sonnet-4-6","fallbacks":["kimi-code","deepseek-chat"]}}}}
使用技巧
Q6:如何让 AI 用专业口吻回复?
A:在 MEMORY.md 中设置:
# 系统提示
请用专业、技术性强的语气回复,使用 emoji 和结构化格式,避免无关的客套话。
Q7:如何禁用某个渠道?
A:在 openclaw.json 中:
{"channels":{"telegram":{"enabled":false}}}
openclaw channels remove --channel telegram --delete
Q8:如何让 AI 只在特定时间回复?
A:使用 Cron 设置:
openclaw cron add --name "工作时间" --cron "* 9-18 * * 1-5" --system-event "已进入工作时间"
openclaw cron add --name "下班时间" --cron "0 0 20 * * 1-5" --system-event "已下班,工作消息转入离线模式"
- 明确告知 AI 不要暴露数据,在 MEMORY.md 中添加规则
- 在系统提示中加入安全约束
- 避免在公共渠道讨论敏感项目
- 定期检查 MEMORY.md 和 memory/*.md 文件内容(必要时编辑/清理)
Q10:如何让 AI 记住对话?
A:OpenClaw 默认会在会话内记住对话,但跨会话持久记忆需手动构建和写入到记忆文件中。可以:
- 自动写入到会话文件(但默认不会同步到长期记忆)
- 关键总结由用户手动或通过脚本写入到
MEMORY.md 或 memory/YYYY-MM-DD.md
- 启用记忆插件后配置记忆路径(例如:MEMORY.md + memory/*.md),并用
openclaw memory index 重建索引,之后检索生效
故障排除
Q11:启动失败,提示端口被占用怎么办?
A:检查并终止占用进程或更换端口:
lsof -i :18789
kill -9 <PID>
openclaw gateway --port 18790
openclaw channels status --probe
openclaw channels remove --channel telegram
openclaw channels add --channel telegram --token YOUR_NEW_TOKEN
openclaw logs --lines 100
- 检查 Token 余额:
openclaw models status --probe
- 设置备用模型(回退机制)
- 配置自动提醒(余额低于阈值时发送通知)
Q14:AI 回复很慢怎么办?
A:可能原因与解决方案:
- 网络延迟:检查网络连接
- 模型拥堵:切换为备用模型
- 上下文过大:运行
openclaw memory index 减少上下文压缩压力
- 响应超时:调大
agents.defaults.timeoutSeconds
Q15:如何查看详细错误日志?
A:实时查看错误:
openclaw logs --follow | grep -i error
高级功能
Q16:如何使用多个工作空间?
A:创建单独的配置文件:
openclaw --profile work gateway start
openclaw --profile personal gateway start
Q17:如何让 AI 执行复杂工作流?
A:编写插件(skills)并在对话中使用。插件会自动注册工具,AI 可调用这些工具完成步骤。
cp -r ~/.openclaw ~/.openclaw.backup.$(date +%Y%m%d)
tar -czf backup.tar.gz ~/.openclaw/openclaw.json ~/.openclaw/workspace
- 备份旧机器的整个
~/.openclaw/ 目录
- 在新机器上安装 OpenClaw
- 恢复备份目录
- 更新配置中的 IP 地址、Token 等
openclaw update
openclaw gateway restart
常见异常
Q21:为什么 AI 会重复回复?
A:可能原因:
- 网络不稳定导致重试
- 渠道 API 限流
- 配置中启用了不合适的重复规则。解决方案:
openclaw logs | grep "duplicate"
Q22:为什么 AI 无法理解我的意图?
A:优化建议:
- 使用更具体的描述
- 在 MEMORY.md 中添加使用场景
- 提供示例对话模式
Q23:为什么在某些群组中 AI 不响应?
A:检查群组权限设置(需要 @提及、白名单等):
{"channels":{"discord":{"groups":{"*":{"requireMention":true,"allowedFrom":["server:123"]}}}}}
Q24:如何限制 AI 的回复长度?
A:在系统提示中设置限制:
# 系统提示
请将回复控制在 300 字以内,使用结构化格式(列表、分段)提升可读性。
Q25:如何让 AI 自动过滤垃圾信息?
A:在系统提示中添加垃圾信号词;或编写插件进行预处理过滤。
Q26:如何监控 OpenClaw 的资源使用?
A:查看系统健康状态(不含命令历史):
也可查看 Gateway 的运行时指标,或通过 systemctl status openclaw-gateway 查看 GPU 占用(若使用本地模型)。
- 检查任务状态:
openclaw cron status
- 检查任务列表:
openclaw cron list --all
- 查看运行日志:
openclaw cron runs --id <job-id> --limit 20
- 降低并发限制
- 不用的渠道 disable
- 避免过大上下文
Q29:如何让 AI 持续记住我的偏好?
A:写入 MEMORY.md/文件;可启用记忆与索引并设置索引路径:
openclaw memory status
openclaw memory index --verbose
快速故障排除手册
启动阶段
| 症状 | 可能原因 | 解决方案 |
|---|
| 无法启动网关 | Node 版本过低 | 升级到 Node 22+ |
| 无法启动网关 | 端口冲突 | 更换端口或终止占用进程 |
| Token 验证失败 | API Key 错误 | 检查 API Key 是否有效 |
| 配置文件解析失败 | JSON 格式错误 | 用 openclaw config get 验证 |
运行阶段
| 症状 | 可能原因 | 解决方案 |
|---|
| 渠道断连 | 网络问题 / Token 过期 | 检查网络并更新 Token |
| AI 不响应 | 模型服务宕机 | 切换到备用模型 |
| 回复变慢 | 上下文过大 | 减少历史记录或提升环境上限 |
| 内存溢出 | 超出系统资源 | 结束其他进程或升级硬件 |
高级阶段
| 症状 | 可能原因 | 解决方案 |
|---|
| 插件加载失败 | 依赖缺失 | 进入 plugin 目录执行 npm install |
| Cron 任务失败 | 路径错误 | 检查任务脚本路径和执行权限 |
| 浏览器无法启动 | Chrome 路径错误 | 配置浏览器可执行文件路径 |
参考资料
相关免费在线工具
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- 随机西班牙地址生成器
随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online