乐于分享
好东西不私藏

OpenClaw 3.13 实战:从零在 Ubuntu 部署龙虾智能体,打通微信、浏览器与 Docker 全链路

OpenClaw 3.13 实战:从零在 Ubuntu 部署龙虾智能体,打通微信、浏览器与 Docker 全链路

这"龙虾"最近火得连楼下卖煎饼的大爷都在问怎么养,但你真要在Ubuntu上把这玩意儿跑起来,还得打通微信、浏览器这些渠道,里面的坑比龙虾壳上的刺还多。今天这篇就手把手教你从裸机到上线,全程Docker隔离,保证你的服务器不被这AI"钳子"夹坏。

一、先搞明白:这"龙虾"到底是个啥?

别被网上那些"AI取代人类"的标题党忽悠了。OpenClaw(社区爱称"龙虾")说白了就是一个住在你服务器里的数字长工。它由奥地利开发者Peter Steinberger在2025年底开源,原名Clawdbot,因为跟Claude太像被发了律师函,改成Moltbot(蜕皮的龙虾),最后定名OpenClaw。

跟ChatGPT那种"嘴炮型AI"不同,这货是"动手型"的。你给权限,它真能打开浏览器填表单、操作Excel、发微信消息。但记住,它是个双刃剑——工信部已经预警过,配置不当的OpenClaw实例可能被黑客当后门用。

咱们今天要部署的3.13版本(写稿时最新稳定版),核心架构就四块:


  • Gateway(网关):本地WebSocket服务器,默认蹲守在18789端口

  • Agent(智能体):干活的大脑,靠大模型API驱动

  • Skills(技能):教龙虾新本领的说明书,Markdown或脚本格式

  • Memory(记忆):它自己写的"日记",记着你的喜好和任务历史

二、Ubuntu环境准备:别让权限坑了你

我假设你已经有台Ubuntu 22.04/24.04的服务器(腾讯云阿里云都行)。第一件事:把Docker搞定,这是后续所有隔离措施的基础。

先卸载旧版(如果有)

sudo apt-get remove docker docker-engine docker.io containerd runc

安装依赖

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release

添加Docker官方GPG密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

加源

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装Docker

sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

关键一步:免sudo运行,不然后续OpenClaw调Docker权限会炸

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
docker ps # 验证下,不出permission denied就对了

防火墙记得开18789端口,云服务器要去控制台安全组放行,这是新手最容易卡住的地方。

三、Docker部署OpenClaw:把龙虾关进玻璃缸

官方推荐用Docker Compose部署,这样环境隔离最安全。咱们建个目录专门伺候这"龙虾":

mkdir ~/openclaw-lab && cd ~/openclaw-lab
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
openclaw:
image: ghcr.io/openclaw/openclaw:3.13
container_name: openclaw-lobster
restart: unless-stopped
ports:
- "18789:18789"
environment:
- NODE_ENV=production
- OPENCLAW_PORT=18789
# 大模型API Key,这里以OpenAI为例,换成国产模型也行
- OPENAI_API_KEY=${OPENAI_API_KEY}
- OPENAI_API_BASE=${OPENAI_API_BASE:-https://api.openai.com/v1}
volumes:
# 持久化存储,记住你的"龙虾"会越长越聪明
- ./memory:/app/memory
- ./skills:/app/skills
- ./config:/app/config
networks:
- clawnet

networks:
clawnet:
driver: bridge
EOF

重点来了:volumes那三块挂载是精髓。memory存它的长期记忆,skills放你自定义的技能插件,config放配置文件。这样即使容器炸了,你的"养虾成果"也不会丢。

启动前把API Key塞进环境变量文件:

echo "OPENAI_API_KEY=sk-your-key-here" > .env
echo "OPENAI_API_BASE=https://api.openai.com/v1" >> .env # 如果用国产模型,换成对应base url
docker compose up -d

等个一两分钟,访问http://你的服务器IP:18789,看到初始化界面就算成了。首次登录会让你设管理员密码,设复杂点,这玩意被爆破就全完了。

四、接入微信:让龙虾蹲在你的聊天列表里

这是国内玩家最关心的功能。OpenClaw支持多种接入渠道,微信是最实用的,但也是合规风险最高的。这里只讲技术原理,实际使用前请务必查阅微信官方文档,别违规操作导致封号。

微信接入本质上是通过企业微信API或微信iPad协议(WeChaty等库)转发消息。咱们用Docker再启一个微信适配器服务,跟主OpenClaw隔离:

在docker-compose.yml里追加服务

wechat-adapter:
image: wechaty/wechaty:latest
container_name: openclaw-wechat
restart: unless-stopped
environment:
- WECHATY_PUPPET_NAME=wechaty-puppet-padlocal # iPad协议,需token
- OPENCLAW_GATEWAY=http://openclaw:18789
networks:
- clawnet
depends_on:
- openclaw

配置里有个wechaty-puppet-padlocal,这是目前较稳定的iPad协议方案,但需要申请token(有免费额度)。配置好后,你的微信消息就会通过WeChaty转发给OpenClaw处理,回复再走原路返回。

切记:个人微信用协议接入属于灰色地带,生产环境建议用企业微信官方API,虽然功能受限但合法合规。

五、浏览器自动化:给龙虾装上"钳子"

OpenClaw最骚的操作是能控制浏览器。在./skills目录下建个新技能,让它帮你查资料:

mkdir -p skills/web-search
cat > skills/web-search/skill.md << 'EOF'
name: web-search
description: 自动打开浏览器搜索信息并提取结果
tools:
- browser
- read
----
当用户要求搜索信息时:
1. 使用browser工具打开百度或Google
2. 输入关键词并执行搜索
3. 使用read工具提取前5条结果标题和链接
4. 整理成Markdown格式返回
EOF

这个Markdown文件就是Skill(技能说明书)。OpenClaw的Agent读到后,就知道遇到搜索需求该调浏览器工具。实际执行时,它会在Docker里启动一个无头Chrome(Chromium),完成任务后自动销毁,不会污染你的宿主机。

想玩更高级的?可以接playwright或puppeteer技能包,让它自动填表、抢票、爬数据。但警告:别拿它干坏事,浏览器自动化最容易触发反爬机制,IP被封了别怪我。

六、安全加固:给你的"龙虾"上把锁

前面说过,OpenClaw默认配置可能有安全风险。咱们既然用了Docker,就必须做这几层防护:

1. 网络隔离

上面的Compose配置里用了clawnet这个自定义网络,千万别把18789端口直接暴露到公网(除非你有SSL+强认证)。建议用Nginx反代加Basic Auth:

server {
listen 443 ssl;
server_name your-domain.com;
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:18789;
proxy_http_version:1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

2. 权限最小化

OpenClaw的容器默认跑的是root,这很危险。改一下Compose,用非root用户跑:

services:
openclaw:
image: ghcr.io/openclaw/openclaw:3.13
user: "1000:1000" # 映射宿主机普通用户
...其他配置

3. 资源限制

防止你的"龙虾"发疯吃光服务器资源:

deploy:
resources:
limits:
cpus: '2'
memory:4G
reservations:
cpus: '0.5'
memory:512M

4. 审计日志

企业级部署一定要开审计。在config目录下放个audit.json:

{
"auditEnabled": true,
"logPath": "/app/logs/audit.log",
"logCommands": true,
"logAccess": true
}

这样它每执行一个shell命令、每访问一次文件,都有记录。万一出事了能溯源。

七、实战:让它自动处理日报

来,咱们跑个完整流程。假设你是个项目经理,每天要让"龙虾"自动:


  1. 登录企业邮箱(浏览器自动化)

  2. 下载昨天的日报附件(文件操作)

  3. 解压并分析Excel内容(代码执行)

  4. 把统计结果发到你微信(消息推送)

在Skills目录建个daily-report:


----


name: daily-report


schedule: "0 9 * * *"  # 每天早上9点


任务流程:



  1. 使用browser登录mail.yourcompany.com

  2. 搜索主题含"日报"且日期为昨天的邮件

  3. 下载附件到/tmp/reports/

  4. 使用python脚本分析Excel(pandas读取,统计完成率)

  5. 生成文字摘要

  6. 调用wechat-adapter发送消息给用户


然后在OpenClaw的Web面板里激活这个Skill,设置好你的企业邮箱凭证(用环境变量或加密存储,千万别硬编码在skill文件里)。

第二天早上9点,你就会收到微信消息:"昨日日报已收齐,平均完成率87%,张三 delay 了任务..."。

八、踩坑总结:这些雷我帮你踩过了


  • 内存爆炸:OpenClaw默认会缓存大量对话历史,小内存服务器(<2G)一定加swap,否则OOM杀进程哭都没地方哭。

  • 微信被封:频繁发消息或加好友会触发风控。建议把消息频率限制在每分钟5条以内,且别用它群发营销信息。

  • Skills不生效:改完skill文件需要重启容器,或者进Web面板点"Reload Skills",热加载有时有延迟。

  • 中文乱码:Ubuntu服务器默认locale可能没设UTF-8,先执行locale-gen zh_CN.UTF-8,不然微信发过来的是乱码。

  • API Key泄露:千万别把.env文件提交到GitHub。OpenClaw社区已经有案例,Key泄露后被薅羊毛,一晚上烧了2000刀。

---

写到这,你的Ubuntu服务器上应该已经跑着一只听话的"数字龙虾"了。它每天帮你处理重复性工作,你在旁边看着就行。但记住,它只是个工具,不是爹。别指望它解决所有问题,也别完全放手让它自己乱搞—— especially 涉及钱和隐私的操作,必须人工确认。

最后提醒:OpenClaw迭代速度极快,3.13版本的配置到了3.14可能就有变动。部署前务必查阅官方文档。祝养虾愉快,记得给服务器备份,别让它"蜕皮"的时候把你也蜕了。