OpenClaw 进阶实战:打造你的24小时AI自动化工作流

一、深入理解 OpenClaw 架构
上期我们提到了 5 个核心概念,现在深入理解它们如何协同工作。
Gateway(网关)- 统一入口
|
关键配置(~/.openclaw/config.yaml):
|
gateway:port:18789 # Web 控制台端口host:“0.0.0.0” # 允许远程访问(谨慎)auth:enabled:true # 启用认证password:“your_password” |
Channels(消息渠道)- 多平台接入
|
# 查看已配置的渠道openclaw channels list# 添加新渠道(飞书/企业微信/Telegram…)openclaw channels add# 测试渠道连通性openclaw channels test feishu |
多渠道协同:
|
Memory(记忆系统)- 让 AI 记住你
|
# 查看当前记忆 |
记忆类型:
|
|
|
|
|---|---|---|
| 用户偏好 |
|
|
| 项目上下文 |
|
|
| 历史决策 |
|
|
二、多 Agent 协作实战
单个 Agent 能处理大部分任务,但复杂项目需要多个 Agent 分工协作。
场景:自动化竞品分析系统
需求:每天自动监控竞品动态(阿里、腾讯、字节),生成分析报告。
架构设计
|
实现步骤
第1步:创建 Agent 团队
|
# 创建团队配置文件 ~/.openclaw/teams/competitor-analysis.yaml cat > ~/.openclaw/teams/competitor-analysis.yaml << ‘EOF’ team_name: “competitor-analysis” agents: – name: “coordinator” role: “主控” model: “claude-3-5-sonnet” system_prompt: “你是竞品分析项目的主控Agent,负责分配任务和汇总结果。” – name: “researcher-alibaba” role: “研究员-阿里” model: “deepseek-chat” system_prompt: “专注研究阿里巴巴的AI产品动态、技术博客、开源项目。” – name: “researcher-tencent” role: “研究员-腾讯” model: “deepseek-chat” system_prompt: “专注研究腾讯的AI产品动态、技术博客、开源项目。” – name: “researcher-bytedance” role: “研究员-字节” model: “deepseek-chat” system_prompt: “专注研究字节跳动的AI产品动态、技术博客、开源项目。” – name: “analyst” role: “分析师” model: “claude-3-5-sonnet” system_prompt: “汇总各研究员的分析结果,生成对比报告和趋势预测。” EOF |
第2步:启动团队
在 OpenClaw Web 控制台中:
|
第3步:查看执行日志
|
# 查看团队执行状态 |
输出示例:
|
三、自定义 Skill 开发
OpenClaw 的精华在于 Skills。上期我们装了现成的,今天教你从0到1开发一个自定义 Skill。
场景:开发一个”股票监控” Skill
需求:每天监控自选股的股价,跌幅超过5%自动通知你。
第1步:创建 Skill 目录结构
# Skill 目录:~/.openclaw/skills/
|
第2步:编写 SKILL.md(关键!)
# Skill: stock-monitor
|
你:帮我监控比亚迪(002594)的股价,跌破300元通知我 Agent:✓ 已添加监控:比亚迪(002594) 触发条件:股价 < 300元 检查频率:每30分钟 通知方式:飞书消息
|
你:我的股票监控列表 Agent:当前监控(3只): 1. 比亚迪(002594)- 当前价格:315.50元 2. 茅台(600519)- 当前价格:1680.00元 3. 腾讯(00700.HK)- 当前价格:420.00港币
|
你:取消监控比亚迪 Agent:✓ 已移除监控:比亚迪(002594)
index.js(核心逻辑)
|
const axios = require(‘axios’); // 获取股价 async functiongetStockPrice(stockCode) { const url = `https://hq.sinajs.cn/list=${stockCode}`; const response = await axios.get(url); // 解析新浪财经返回的数据 const data = response.data.split(‘,’); return { name: data[0], price: parseFloat(data[3]), // 当前价 change: parseFloat(data[2]), // 涨跌幅 // … }; } // 检查监控条件 async functioncheckAlerts() { const config = require(‘./config.yaml’); for (const stock of config.stocks) { const price = await getStockPrice(stock.code); if (price.price < stock.threshold) { // 触发通知 await sendNotification(stock, price); } } } // 发送通知(飞书) async functionsendNotification(stock, price) { // 调用飞书 Webhook // … } |
安装方法
# 在 OpenClaw 中安装此 Skill
|
第4步:安装和测试
|
|
四、5个高阶自动化案例
案例1:自动抓取竞品官网更新
需求:每天自动抓取竞品官网(阿里云、腾讯云、华为云),检测产品更新,生成对比报告。
实现:
|
# 1. 安装浏览器自动化 Skill |
案例2:GitHub 仓库监控 + 自动 PR 审查
需求:监控团队 GitHub 仓库,有新 PR 时自动审查代码质量。
实现:
|
# 1. 安装 GitHub Skill |
案例3:自动生成周报并发送到钉钉
需求:每周五下午5点,自动汇总本周工作,生成周报发送到钉钉群。
实现:
|
# ~/.openclaw/cron_jobs/weekly-report.yaml |
案例4:智能客服机器人(多平台统一)
需求:统一管理微信、飞书、官网在线客服的消息,AI 自动回复常见问题。
实现:
|
# 架构: |
案例5:个人健康数据监控(智能手表 + OpenClaw)
需求:同步智能手表的健康数据(睡眠、心率、步数),异常时通知你。
实现:
|
# 1. 安装健康数据同步 Skill(假设有) openclaw skills install @openclaw/health-sync # 2. 配置数据来源 # 华为手表:需要华为健康 API # 苹果手表:需要 HealthKit API # 小米手环:需要小米运动 API # 3. 设置监控规则 健康监控规则: – 睡眠质量 < 7小时 → 通知 – 静息心率 > 100次/分 → 告警 – 连续3天步数 < 3000 → 提醒运动 – 血氧 < 95% → 立即通知 # 4. 创建定时任务(每天早上8点汇总) { “name”: “每日健康报告”, “schedule”: “0 8 * * *”, “prompt”: “读取昨天的健康数据,生成报告:睡眠时长、深睡占比、静息心率、步数、血氧。异常项标红。” } |
五、完整实战:从0到1搭建自动化工作流
理论讲完了,现在用一个完整实战案例把所有知识点串起来。
实战项目:电商订单自动处理系统
需求背景: 你是电商公司的运营,每天要处理大量订单:
-
新订单需要自动审核(金额 > 1000 元需要人工审核) -
退款申请需要自动处理(< 100 元自动退款) -
每天生成销售报表发送到管理层飞书群 -
库存低于阈值自动通知采购
传统方式:手动处理,每天 2 小时。
OpenClaw 自动化方式:全自动,0 人工干预(特殊情况才通知)。
第1步:架构设计
先设计整体架构,再动手写代码。好的架构能让系统易扩展、易维护。
架构说明:
-
主控 Agent(Coordinator):接收定时任务触发,按顺序调度3个子Agent,汇总结果后触发报表生成。
-
订单审核 Agent:调用
order-reviewSkill,获取新订单并按规则审核,超过阈值的转人工。 -
退款处理 Agent:调用
refund-processorSkill,自动处理小额退款,大额转人工。 -
库存监控 Agent:调用
stock-monitorSkill,每小时检查库存,低于阈值发告警到飞书。 -
报表生成 Agent:每天早上9点被主控 Agent 触发,汇总昨日数据生成 Excel + 图表,发送到管理层飞书群。
设计原则:
-
单一职责:每个 Agent 只做一件事 -
松耦合:Agent 之间通过任务列表通信,不直接调用 -
可扩展:新增功能只需加 Agent,不改现有代码 -
故障隔离:某个 Agent 失败不影响其他 Agent
第2步:创建 Skills
我们需要 3 个自定义 Skills:
Skill 1:订单审核(order-review)
|
// ~/.openclaw/skills/order-review/index.js const axios = require(‘axios’); class OrderReview { constructor(config) { this.apiUrl = config.shop_api_url; this.apiKey = config.shop_api_key; } // 获取新订单 async getNewOrders() { const response = await axios.get(`${this.apiUrl}/orders/new`, { headers: { ‘Authorization’: `Bearer ${this.apiKey}` } }); return response.data.orders; } // 审核订单 async reviewOrder(order) { const issues = []; // 规则1:金额 > 1000 需要人工审核 if (order.amount > 1000) { return { approved: false, reason: ‘金额超过1000元,需人工审核’, order }; } // 规则2:收货地址异常(国外地址) if (order.shipping_address.country !== ‘CN’) { issues.push(‘国外订单,需确认运费’); } // 规则3:同一用户短时间多笔订单(可能是刷单) const recentOrders = await this.getUserRecentOrders(order.user_id); if (recentOrders.length >= 3) { return { approved: false, reason: ‘疑似刷单,需人工审核’, order }; } // 审核通过 return { approved: true, order }; } // 执行审核(主函数) async run() { const orders = await this.getNewOrders(); const results = { approved: [], rejected: [] }; for (const order of orders) { const result = await this.reviewOrder(order); if (result.approved) { await this.approveOrder(order.id); results.approved.push(order); } else { await this.notifyManualReview(order, result.reason); results.rejected.push(order); } } return results; } } module.exports = OrderReview; |
Skill 2:退款处理(refund-processor)
|
// ~/.openclaw/skills/refund-processor/index.js class RefundProcessor { constructor(config) { this.apiUrl = config.shop_api_url; this.apiKey = config.shop_api_key; } // 获取待处理退款 async getPendingRefunds() { const response = await axios.get(`${this.apiUrl}/refunds/pending`); return response.data.refunds; } // 处理退款 async processRefund(refund) { // 规则1:金额 < 100 元自动退款 if (refund.amount < 100) { await this.autoRefund(refund); return { processed: true, method: ‘auto’, refund }; } // 规则2:金额 100-500 元,检查退货物流 if (refund.amount >= 100 && refund.amount < 500) { const hasTracking = await this.checkReturnTracking(refund.order_id); if (hasTracking) { await this.approveRefund(refund); return { processed: true, method: ‘auto_approve’, refund }; } else { return { processed: false, reason: ‘等待退货物流信息’, refund }; } } // 规则3:金额 >= 500 元,需要人工审核 return { processed: false, reason: ‘金额>=500元,需人工审核’, refund }; } // 执行处理(主函数) async run() { const refunds = await this.getPendingRefunds(); const results = { auto_processed: [], pending_manual: [] }; for (const refund of refunds) { const result = await this.processRefund(refund); if (result.processed) { results.auto_processed.push(refund); } else { await this.notifyManualReview(refund, result.reason); results.pending_manual.push(refund); } } return results; } } module.exports = RefundProcessor; |
Skill 3:库存监控(stock-monitor)
|
// ~/.openclaw/skills/stock-monitor/index.js class StockMonitor { constructor(config) { this.apiUrl = config.shop_api_url; this.threshold = config.low_stock_threshold || 50; // 默认阈值 50 this.purchaseTeamFeishuWebhook = config.purchase_team_webhook; } // 获取所有商品库存 async getAllStock() { const response = await axios.get(`${this.apiUrl}/products/stock`); return response.data.products; } // 监控库存 async monitor() { const products = await this.getAllStock(); const alerts = []; for (const product of products) { if (product.stock <= this.threshold) { alerts.push({ product_id: product.id, product_name: product.name, current_stock: product.stock, threshold: this.threshold, severity: product.stock <= 10 ? ‘critical’ : ‘warning’, }); } } // 发送告警 if (alerts.length > 0) { await this.sendAlerts(alerts); } return alerts; } // 发送告警到采购团队飞书群 async sendAlerts(alerts) { const message = { msg_type: ‘post’, content: { post: { zh_cn: { title: ‘⚠️ 库存告警’, content: alerts.map(alert => [ { tag: ‘text’, text: `商品:${alert.product_name}\n` }, { tag: ‘text’, text: `当前库存:${alert.current_stock}\n` }, { tag: ‘text’, text: `阈值:${alert.threshold}\n` }, { tag: ‘text’, text: `紧急程度:${alert.severity}\n\n` }, ]), }, }, }, }; await axios.post(this.purchaseTeamFeishuWebhook, message); } } module.exports = StockMonitor; |
第3步:配置定时任务
编辑 ~/.openclaw/cron_jobs.yaml:
|
# 订单审核(每10分钟执行一次) – name: “订单自动审核” schedule: “*/10 * * * *” prompt: | 执行订单审核任务: 1. 调用 order-review Skill 2. 获取新订单 3. 按规则审核(>1000元需人工审核) 4. 审核通过的订单自动确认 5. 需要人工审核的通知到飞书群 # 退款处理(每30分钟执行一次) – name: “退款自动处理” schedule: “*/30 * * * *” prompt: | 执行退款处理任务: 1. 调用 refund-processor Skill 2. 获取待处理退款 3. 按规则处理(<100元自动退款) 4. 需要人工审核的通知到飞书群 # 库存监控(每小时执行一次) – name: “库存监控” schedule: “0 * * * *” prompt: | 执行库存监控任务: 1. 调用 stock-monitor Skill 2. 获取所有商品库存 3. 库存 <= 50 的发送告警到采购团队飞书群 4. 库存 <= 10 的标记为紧急(critical) # 每日销售报表(每天早上9点) – name: “每日销售报表” schedule: “0 9 * * *” prompt: | 生成昨日销售报表: 1. 统计订单量、销售额、退款额 2. 按商品分类统计 3. 对比前日数据(增长率) 4. 生成图表(柱状图) 5. 发送到管理层飞书群 |
第4步:测试和上线
|
# 1. 测试订单审核 Skill openclaw skills test order-review # 2. 测试退款处理 Skill openclaw skills test refund-processor # 3. 测试库存监控 Skill openclaw skills test stock-monitor # 4. 手动触发一次定时任务(测试) openclaw cron run “订单自动审核” # 5. 查看执行日志 openclaw logs –tail 100 –skill order-review # 6. 如果一切正常,启用定时任务 openclaw cron enable “订单自动审核” openclaw cron enable “退款自动处理” openclaw cron enable “库存监控” openclaw cron enable “每日销售报表” |
第5步:监控和维护
|
# 查看定时任务执行状态 openclaw cron status # 查看某个任务的执行历史 openclaw cron history “订单自动审核” —limit 10 # 如果发现异常,查看详细日志 openclaw logs –skill order-review –level error # 必要时手动触发一次 openclaw cron run “库存监控” |
实战效果
传统方式 vs OpenClaw 自动化:
|
|
|
|
|
|---|---|---|---|
|
|
|
|
100% |
|
|
|
|
100% |
|
|
|
|
实时性↑ |
|
|
|
|
100% |
|
|
|
|
100% |
每天节省时间:3.5 小时每年节省时间:1277.5 小时(≈ 160 个工作日)
六、总结
本期核心要点
推荐阅读:
推荐这本 《零基础玩转 OpenClaw 让龙虾 AI 替你 24 小时持续创造收益》,零基础友好,全是可直接照做的实操案例,帮你快速打通 “部署→自动化→变现” 完整链路。
🔔下期预告:《OpenClaw + WorkBuddy 双剑合璧:AI 全栈自动化实战》
夜雨聆风