OpenClaw 综合实战|从零搭建 7×24 小时全天候 AI 数字员工
本系列第三十篇收官之作——汇聚前面二十九篇的全部智慧亲手搭建一个企业级、全天候、可信赖的 AI 数字员工欢迎来到 OpenClaw 系列教程的终章。前面的二十九篇文章我们从零开始逐步构建了 OpenClaw 的知识体系从基础认知、环境配置、部署方式到模型接入、技能开发、多渠道集成再到多 Agent 协作、定时任务、记忆系统、安全加固和运维监控。今天我们将把所有这些知识融会贯通从零开始搭建一个真正的 7×24 小时全天候 AI 数字员工。这个数字员工将具备以下能力通过企业微信接收用户请求并在群聊和个人对话中提供智能响应每天早晨 9 点自动抓取行业新闻生成摘要并推送到指定群聊每 30 分钟检查一次服务器负载超过阈值时主动告警具备长期记忆能力能够记住用户的技术偏好和项目决策所有操作均在安全的沙箱环境中执行高危命令需要人工审批本文将以阿里云 ECS Docker Compose为基础平台覆盖从购买服务器到最终上线的完整流程。所有配置文件和脚本均提供可直接复制的模板。一、项目概览与架构设计1.1 最终目标搭建一个名为“ClawBot”的 AI 数字员工服务于一个虚拟的中型技术团队约 50 人。团队主要通过企业微信进行沟通需要 AI 辅助完成信息检索、日报生成、服务器监控等日常任务。1.2 技术架构text┌─────────────────────────────────────────────────────────────┐ │ 用户层 │ │ 企业微信 (个人/群聊) ←→ 手机/桌面客户端 │ └─────────────────────────────┬───────────────────────────────┘ │ HTTPS (企业微信回调) ┌─────────────────────────────▼───────────────────────────────┐ │ 接入层 (阿里云 ECS) │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ Nginx (反向代理 HTTPS) │ │ │ └─────────────────────────────┬───────────────────────┘ │ │ │ │ │ ┌─────────────────────────────▼───────────────────────┐ │ │ │ Docker Compose 集群 │ │ │ │ ┌───────────┐ ┌───────────┐ ┌───────────────┐ │ │ │ │ │ Gateway │ │ Worker │ │ Redis (会话) │ │ │ │ │ │ (主控) │ │ (Agent) │ │ │ │ │ │ │ └───────────┘ └───────────┘ └───────────────┘ │ │ │ │ ┌───────────┐ ┌───────────┐ ┌───────────────┐ │ │ │ │ │ PostgreSQL│ │ MinIO │ │ Prometheus │ │ │ │ │ │ (会话历史) │ │ (文件存储) │ │ Grafana │ │ │ │ │ └───────────┘ └───────────┘ └───────────────┘ │ │ │ └─────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘ │ ┌─────────────────────────────▼───────────────────────────────┐ │ 外部服务层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 阿里云 │ │ Tavily │ │ GitHub │ │ SMTP │ │ │ │ 百炼模型 │ │ 搜索API │ │ API │ │ 邮件服务 │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────────┘1.3 核心组件选择组件技术选型理由服务器阿里云 ECS (2核4GB, Ubuntu 22.04)性价比高国内网络稳定容器化Docker Compose单机部署足够运维简单模型阿里云百炼 qwen-plus (主) Ollama (备)成本可控有免费额度搜索Tavily Search API专为 AI Agent 优化有免费额度渠道企业微信自建应用支持群聊API 稳定监控Prometheus Grafana开源标准可视化强备份clawstash (基于 restic)加密、增量、支持 S3二、环境准备与基础设施搭建2.1 购买云服务器并初始化登录阿里云控制台购买一台 ECS 实例。推荐配置2核4GB内存40GB SSDUbuntu 22.04 LTS选择按量付费或包年包月。购买后在安全组中开放以下端口端口用途访问来源22SSH 管理你的办公 IP80, 443Nginx 反向代理0.0.0.0/0 (需配置 HTTPS)18789Gateway 内部通信仅限 localhost (通过 Nginx 代理)9090Prometheus 指标监控内网3000Grafana 仪表板监控内网 (可加 IP 限制)SSH 登录服务器bashssh root你的服务器公网IP更新系统并安装 Docker 和 Docker Composebash# 更新系统 apt update apt upgrade -y # 安装 Docker curl -fsSL https://get.docker.com | sh systemctl enable docker systemctl start docker # 安装 Docker Compose 插件 apt install docker-compose-plugin -y # 验证 docker --version docker compose version2.2 创建项目目录结构bashmkdir -p /opt/openclaw/{config,data,logs,backup,scripts} mkdir -p /opt/openclaw/data/{postgres,redis,minio,prometheus,grafana} cd /opt/openclaw2.3 准备环境变量文件创建/opt/openclaw/.env填入你的各种密钥部分后续步骤获取bash# 阿里云百炼 API Key (从阿里云百炼控制台获取) DASHSCOPE_API_KEYsk-xxxx # Tavily Search API Key (从 tavily.com 获取) TAVILY_API_KEYtvly-xxxx # 企业微信凭证 (后续获取) WECOM_CORP_IDwwxxxx WECOM_AGENT_ID1000001 WECOM_SECRETxxxx # GitHub Token (用于代码相关技能) GITHUB_TOKENghp_xxxx # Gateway 认证 Token (自行生成) OPENCLAW_GATEWAY_TOKEN$(openssl rand -hex 32) # 备份密钥 (restic) RESTIC_REPOSITORYs3:https://your-bucket.oss-cn-hangzhou.aliyuncs.com/openclaw-backup RESTIC_PASSWORDstrong-password AWS_ACCESS_KEY_IDxxxx AWS_SECRET_ACCESS_KEYxxxx2.4 编写 Docker Compose 配置文件创建/opt/openclaw/docker-compose.yml包含所有必需服务yamlversion: 3.8 services: # OpenClaw Gateway 主服务 gateway: image: ghcr.io/openclaw/openclaw:latest container_name: openclaw-gateway restart: unless-stopped ports: - 127.0.0.1:18789:18789 volumes: - ./config:/home/node/.openclaw - ./data/workspace:/workspace - /var/run/docker.sock:/var/run/docker.sock:ro # 沙箱模式需要 environment: - NODE_ENVproduction - DASHSCOPE_API_KEY${DASHSCOPE_API_KEY} - TAVILY_API_KEY${TAVILY_API_KEY} - WECOM_CORP_ID${WECOM_CORP_ID} - WECOM_AGENT_ID${WECOM_AGENT_ID} - WECOM_SECRET${WECOM_SECRET} - GITHUB_TOKEN${GITHUB_TOKEN} - OPENCLAW_GATEWAY_TOKEN${OPENCLAW_GATEWAY_TOKEN} networks: - openclaw-net logging: driver: json-file options: max-size: 10m max-file: 3 # Redis 会话存储 redis: image: redis:7.2-alpine container_name: openclaw-redis restart: unless-stopped command: redis-server --appendonly yes volumes: - ./data/redis:/data networks: - openclaw-net # PostgreSQL 会话历史 postgres: image: postgres:16-alpine container_name: openclaw-postgres restart: unless-stopped environment: POSTGRES_USER: openclaw POSTGRES_PASSWORD: openclaw123 POSTGRES_DB: openclaw volumes: - ./data/postgres:/var/lib/postgresql/data networks: - openclaw-net # MinIO 对象存储 (用于文件附件) minio: image: minio/minio:latest container_name: openclaw-minio restart: unless-stopped command: server /data --console-address :9001 environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin123 volumes: - ./data/minio:/data ports: - 127.0.0.1:9000:9000 - 127.0.0.1:9001:9001 networks: - openclaw-net # Prometheus 监控 prometheus: image: prom/prometheus:latest container_name: openclaw-prometheus restart: unless-stopped volumes: - ./config/prometheus.yml:/etc/prometheus/prometheus.yml - ./data/prometheus:/prometheus command: - --config.file/etc/prometheus/prometheus.yml - --storage.tsdb.path/prometheus networks: - openclaw-net ports: - 127.0.0.1:9090:9090 # Grafana 可视化 grafana: image: grafana/grafana:latest container_name: openclaw-grafana restart: unless-stopped environment: GF_SECURITY_ADMIN_PASSWORD: admin123 volumes: - ./data/grafana:/var/lib/grafana networks: - openclaw-net ports: - 127.0.0.1:3000:3000 networks: openclaw-net: driver: bridge创建 Prometheus 配置文件/opt/openclaw/config/prometheus.ymlyamlglobal: scrape_interval: 15s scrape_configs: - job_name: openclaw-gateway static_configs: - targets: [gateway:18789]2.5 初始化 OpenClaw 配置启动容器首次会拉取镜像bashdocker compose up -d等待约 2 分钟然后进入 Gateway 容器执行初始化bashdocker compose exec gateway bash openclaw onboard --install-daemon按照交互式向导完成以下配置模型供应商选择阿里云百炼输入 API Key搜索提供商选择 Tavily输入 API Key渠道配置暂不配置后续手动配置企业微信技能安装安装基础技能skill-vetter、tavily-search、summarize、find-skills、gog安全设置使用 Token 认证退出容器后重启 Gatewaybashdocker compose restart gateway2.6 配置企业微信渠道在企业微信管理后台登录企业微信管理后台创建自建应用命名为“ClawBot”记录CorpId、AgentId、Secret设置应用可信 IP 为你的服务器公网 IP配置接收消息服务器 URLhttps://你的域名/wecom/callback后续配置 Nginx 时再设置在应用详情页开启“机器人”能力在 OpenClaw 中配置编辑/opt/openclaw/config/openclaw.json添加企业微信渠道配置json{ channels: { wecom: { enabled: true, corpId: ${WECOM_CORP_ID}, agentId: ${WECOM_AGENT_ID}, secret: ${WECOM_SECRET}, mode: api, dmPolicy: allowlist, allowFrom: [userid1, userid2], groups: { *: { requireMention: true } } } } }重启 Gatewaybashdocker compose restart gateway2.7 配置 Nginx 反向代理 (HTTPS)安装 Nginx 并配置 HTTPSbashapt install nginx certbot python3-certbot-nginx -y创建 Nginx 配置文件/etc/nginx/sites-available/openclawnginxserver { listen 80; server_name clawbot.yourdomain.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name clawbot.yourdomain.com; ssl_certificate /etc/letsencrypt/live/clawbot.yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/clawbot.yourdomain.com/privkey.pem; 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_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; } location /wecom/callback { proxy_pass http://127.0.0.1:18789/wecom/callback; proxy_set_header Host $host; } }启用站点并获取 SSL 证书bashln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/ nginx -t certbot --nginx -d clawbot.yourdomain.com systemctl reload nginx回到企业微信后台将接收消息服务器 URL 设置为https://clawbot.yourdomain.com/wecom/callback保存。企业微信会发送验证请求OpenClaw 会自动响应。2.8 安全加固与沙箱配置修改/opt/openclaw/config/openclaw.json加入安全配置json{ tools: { allow: [group:fs, group:web, message, github], deny: [exec, browser] }, agents: { defaults: { sandbox: { mode: non-main, scope: session } } }, exec: { approvals: { security: deny, ask: on-miss } }, gateway: { auth: { mode: token, token: ${OPENCLAW_GATEWAY_TOKEN} }, controlui: { allowedOrigins: [https://clawbot.yourdomain.com] } } }重启 Gateway 使配置生效。至此基础设施搭建完成OpenClaw 已经可以通过企业微信访问了。接下来我们将为它配置具体的技能和工作流。三、配置核心技能与工作流3.1 安装必备技能通过openclaw skill命令安装以下技能进入容器执行bashdocker compose exec gateway bash # 安装安全审计技能 (必须) openclaw skill install https://clawhub.com/skills/skill-vetter # 安装联网搜索技能 openclaw skill install https://clawhub.com/skills/tavily-search # 安装新闻摘要技能 openclaw skill install https://clawhub.com/skills/summarize # 安装 GitHub 协作技能 openclaw skill install https://clawhub.com/skills/github # 安装浏览器自动化技能 openclaw skill install https://clawhub.com/skills/gog # 安装主动通知技能 openclaw skill install https://clawhub.com/skills/proactive-agent # 安装技能发现助手 openclaw skill install https://clawhub.com/skills/find-skills验证技能已安装bashopenclaw skill list3.2 配置定时任务每日新闻摘要第一步创建新闻摘要专用 Skill在/opt/openclaw/data/workspace/skills/daily_news/SKILL.md中写入markdown--- name: daily_news description: 抓取指定 RSS 源或搜索关键词的新闻生成摘要并发送到企业微信群。 trigger: 每日定时任务 --- # 每日新闻摘要工作流 ## 输入参数 - sources: RSS 源列表或搜索关键词 - webhook_url: 企业微信群机器人 Webhook (可选默认使用配置) ## 执行步骤 1. 对于每个 RSS 源调用 tavily-search 技能获取最新 5 条新闻 2. 对每条新闻调用 summarize 技能生成 100 字以内的摘要 3. 将所有摘要格式化为企业微信 Markdown 消息 markdown # 每日科技新闻 (YYYY-MM-DD) ## 1. [标题](链接) 摘要内容... 4. 调用 wecom 渠道发送消息到指定群聊第二步创建 Cron 任务在 Gateway 容器中执行 bashopenclaw cron add \ --schedule 0 1 * * * \ --command openclaw agent run main --message 执行 daily_news 技能RSS 源https://news.cn/rss/tech, https://feeds.feedburner.com/techcrunch注意Cron 使用 UTC 时间北京时间 9:00 对应 UTC 1:00。3.3 配置心跳任务服务器监控在/opt/openclaw/config/openclaw.json的 Agent 配置中添加 heartbeatjson{ agents: { defaults: { heartbeat: { every: 30m, target: specific, targetUser: your_wecom_userid, targetChannel: wecom, task: openclaw agent run main --message 检查服务器 CPU 和内存使用率如果超过 80% 则发送告警到企业微信 } } } }同时创建一个检查脚本 Skill/opt/openclaw/data/workspace/skills/health_check/SKILL.mdmarkdown--- name: health_check description: 检查系统资源使用情况超过阈值时告警。 --- # 服务器健康检查 1. 使用 exec 工具执行 top -bn1 | grep Cpu(s) 获取 CPU 使用率 2. 使用 exec 工具执行 free -m | awk NR2{printf %.2f, $3*100/$2 } 获取内存使用率 3. 如果 CPU 80% 或 内存 85%调用 wecom 渠道发送告警消息 4. 否则静默结束注意为了安全需要在tools.allow中临时加入exec并配置审批策略。或者改为通过节点工具收集指标更安全。3.4 配置长期记忆记住用户偏好编辑/opt/openclaw/data/workspace/MEMORY.md加入团队技术偏好markdown# 技术栈偏好 - 后端: Python 3.10, FastAPI, PostgreSQL - 前端: React 18, TypeScript, TailwindCSS - 部署: Docker, 阿里云 ECS - 代码仓库: GitHub, 主分支保护要求 PR 审查 # 常用命令 - 重启 Gateway: docker compose restart gateway - 查看日志: docker compose logs -f gateway - 备份: /opt/openclaw/scripts/backup.sh # 团队成员角色 - 张三 (userid_zhang): 后端负责人偏好简洁注释 - 李四 (userid_li): 前端负责人偏好函数式组件这样当团队成员询问技术问题时Agent 会自动参考这些偏好给出符合团队规范的答案。3.5 配置多 Agent 分工可选如果需要将不同领域的任务分配给不同的 Agent可以创建第二个 Agent。例如创建一个专门处理运维任务的ops-agent与主 Agent 共享部分记忆但使用更严格的工具权限。在openclaw.json中添加json{ agents: { main: { ... }, ops-agent: { workspace: /workspace/ops, model: { primary: bailian/qwen-plus }, tools: { allow: [exec, process, cron] }, heartbeat: { every: 10m, target: last } } }, routing: { prefixes: { /ops: ops-agent, /monitor: ops-agent } } }用户在企业微信中输入/ops 检查磁盘空间就会路由到运维 Agent执行高权限操作。四、监控与告警配置4.1 集成 Prometheus 指标OpenClaw Gateway 默认暴露/metrics端点需要开启配置。在openclaw.json中启用json{ diagnostics: { prometheus: { enabled: true, path: /metrics } } }重启后Prometheus 会自动抓取指标。访问http://服务器IP:9090查看。4.2 导入 Grafana 仪表板访问http://服务器IP:3000默认用户名admin密码admin123添加 Prometheus 数据源URL:http://prometheus:9090导入社区提供的 OpenClaw 仪表板Dashboard ID: 可搜索openclaw或自行创建关键监控面板包括请求 QPS 与延迟分布工具调用成功率模型 Token 消耗趋势各渠道消息量4.3 配置告警规则在 Prometheus 配置中添加告警规则文件/opt/openclaw/config/alert.rules.ymlyamlgroups: - name: openclaw_alerts interval: 30s rules: - alert: GatewayDown expr: up{jobopenclaw-gateway} 0 for: 1m annotations: summary: OpenClaw Gateway 不可用 - alert: HighErrorRate expr: rate(gateway_errors_total[5m]) 0.05 for: 2m annotations: summary: 错误率超过 5% - alert: HighTokenConsumption expr: sum(increase(model_token_usage_total[1h])) 500000 annotations: summary: 过去一小时 Token 消耗超过 50 万配置 Alertmanager 发送告警到企业微信或邮件。五、备份与灾难恢复5.1 创建自动化备份脚本编写/opt/openclaw/scripts/backup.shbash#!/bin/bash set -e BACKUP_DIR/opt/openclaw/backup/$(date %Y%m%d_%H%M%S) mkdir -p $BACKUP_DIR # 1. 停止 Gateway 确保数据一致性 docker compose stop gateway # 2. 备份配置文件 cp -r /opt/openclaw/config $BACKUP_DIR/ # 3. 备份 workspace (记忆、技能、工作文件) cp -r /opt/openclaw/data/workspace $BACKUP_DIR/ # 4. 导出 PostgreSQL 数据库 docker compose exec -T postgres pg_dump -U openclaw openclaw $BACKUP_DIR/postgres.sql # 5. 备份 Redis 快照 cp /opt/openclaw/data/redis/dump.rdb $BACKUP_DIR/redis.rdb # 6. 启动 Gateway docker compose start gateway # 7. 使用 restic 加密备份到 S3 (可选) export RESTIC_REPOSITORY$RESTIC_REPOSITORY export RESTIC_PASSWORD$RESTIC_PASSWORD restic backup $BACKUP_DIR # 8. 清理 7 天前的本地备份 find /opt/openclaw/backup -type d -mtime 7 -exec rm -rf {} \; echo Backup completed: $BACKUP_DIR添加执行权限并设置定时任务crontabbashchmod x /opt/openclaw/scripts/backup.sh echo 0 2 * * * /opt/openclaw/scripts/backup.sh /var/log/openclaw-backup.log 21 | crontab -5.2 恢复流程从备份恢复的简要步骤bash# 1. 停止所有服务 docker compose down # 2. 恢复配置文件 cp -r /path/to/backup/config/* /opt/openclaw/config/ # 3. 恢复 workspace cp -r /path/to/backup/workspace/* /opt/openclaw/data/workspace/ # 4. 恢复 PostgreSQL docker compose up -d postgres docker compose exec -T postgres psql -U openclaw openclaw /path/to/backup/postgres.sql # 5. 恢复 Redis cp /path/to/backup/redis.rdb /opt/openclaw/data/redis/dump.rdb # 6. 启动所有服务 docker compose up -d建议每季度演练一次恢复流程确保备份可用。六、测试与验收6.1 功能测试清单企业微信私聊发送“你好”机器人正常回复企业微信群聊机器人 发送“今天天气”返回天气信息新闻摘要定时任务等待第二天 9:00检查群聊是否收到日报服务器监控手动触发心跳任务检查告警是否正常长期记忆询问“我们的技术栈是什么”应返回 MEMORY.md 中的内容技能调用发送“总结这篇文章 https://example.com/article”返回摘要多 Agent 路由发送“/ops 查看磁盘使用情况”应切换到运维 Agent 并返回结果安全测试尝试让 Agent 执行rm -rf /tmp/test应触发审批流程或被拒绝6.2 性能测试使用ab或wrk对 Gateway 的/healthz端点进行简单压测bashab -n 1000 -c 10 http://127.0.0.1:18789/healthz预期在 2 核 4GB 配置下QPS 应 500P99 延迟 50ms。如果并发用户超过 50建议增加 Gateway 副本。6.3 安全测试运行openclaw doctor --deep检查安全配置漏洞。确保没有任何危险配置如dmPolicy: open、tools.allow包含exec且无审批。七、日常运维与持续优化7.1 每日巡检bash# 1. 检查服务状态 docker compose ps curl -s http://127.0.0.1:18789/healthz # 2. 查看最近错误日志 docker compose logs --tail50 gateway | grep ERROR # 3. 检查磁盘空间 df -h # 4. 检查备份是否成功 ls -l /opt/openclaw/backup/ | tail -57.2 每周任务运行openclaw doctor --repair修复小问题审查openclaw pairing list清理过期配对请求检查 Token 消耗趋势优化模型选择7.3 每月任务更新 OpenClaw 到最新版本docker compose pull gateway docker compose up -d轮换 API Key 和 Gateway Token清理旧会话和日志文件执行一次完整的恢复演练7.4 持续优化方向引入本地模型在服务器上安装 Ollama将部分简单查询路由到本地模型降低成本增加更多渠道接入飞书、Telegram 等让团队成员用自己喜欢的工具交互开发专属技能根据团队需求开发定制 Skill如自动部署、数据库查询等提升可观测性接入阿里云 SLS实现更精细的日志分析和告警八、总结与展望恭喜你已经成功搭建了一个企业级的 7×24 小时 AI 数字员工。回顾整个旅程我们完成了✅ 云服务器环境搭建与 Docker Compose 部署✅ 多渠道接入企业微信✅ 核心技能安装与定制 Skill 开发✅ 定时任务日报与心跳监控✅ 长期记忆配置✅ 多 Agent 分工与路由✅ 监控告警系统Prometheus Grafana✅ 自动化备份与恢复机制✅ 安全加固与权限最小化这个数字员工将作为团队的智能助手自动处理信息检索、日报生成、服务器监控等重复性工作让团队成员专注于更有创造性的任务。OpenClaw 的能力远不止于此。随着社区的不断发展和你的深入探索你可以继续扩展接入更多数据源内部知识库、Jira、Confluence 等实现复杂决策流程结合外部工作流引擎Temporal处理跨部门审批训练专属模型基于团队历史对话微调模型提升回答准确性AI 数字员工不是替代人类的工具而是增强人类能力的伙伴。希望本系列教程能帮助你更好地驾驭 OpenClaw让 AI 真正成为你工作和生活中的得力助手。感谢你一路跟随本系列走到终点。如果你有任何问题或建议欢迎在评论区留言。祝你的“龙虾”茁壮成长助你事半功倍索引标签#OpenClaw #综合实战 #数字员工 #企业微信 #定时任务 #监控告警 #备份恢复 #生产环境