跳到主要内容
OpenClaw 新手指南:AI 机器人搭建实战 | 极客日志
JavaScript Node.js AI
OpenClaw 新手指南:AI 机器人搭建实战 OpenClaw 是一款开源自托管 AI 网关,支持连接多种聊天平台与 AI 模型。介绍其核心优势、安装配置、多渠道管理、自动化任务(Cron)、长期记忆、脚本集成及浏览器自动化等功能。包含 20 个实战脚本示例,涵盖监控、备份、日志分析等场景,并提供常见问题解答与故障排除手册,帮助用户快速搭建并维护 AI 机器人服务。
ServerBase 发布于 2026/4/6 更新于 2026/5/24 30 浏览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
Keycode 信息 查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
Escape 与 Native 编解码 JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
JavaScript / HTML 格式化 使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online