在 OpenClaw 中Skill 本身不“自动”更新数据库而是通过定时任务或外部事件触发来执行写入/更新操作从而实现数据的“准实时”同步。本质上这是一个由 OpenClaw 编排的自动化工作流Skill 负责定义“做什么”而定时或事件机制负责“何时做”。⚙️ 方案一定时任务 (Cron Job)这是实现周期性数据同步最常用的方式适用于定期从 API 拉取数据写入数据库或定时汇总报表等场景。1. 编写用于数据更新的 Skill创建一个 Skill其核心逻辑是连接数据库并执行写入/更新操作。建议使用 Python 或 Shell 脚本封装此逻辑而不是直接在SKILL.md中编写。目录结构示例textskills/└── sync-order-data/├── SKILL.md└── scripts/└── sync.pySKILL.md 示例yamlname: sync-order-datadescription: 从订单 API 获取数据并写入 MySQL 数据库metadata:openclaw:emoji: requires:bins: [python3]订单数据同步使用方法在对话中向 OpenClaw 发送指令执行订单数据同步执行步骤调用脚本scripts/sync.py该脚本会请求订单 API解析数据并写入 MySQL 数据库。scripts/sync.py 脚本示例pythonimport osimport mysql.connector从环境变量获取数据库连接信息DB_CONFIG {host: os.getenv(DB_HOST),user: os.getenv(DB_USER),password: os.getenv(DB_PASSWORD),database: os.getenv(DB_NAME)}def main():# 1. 从 API 获取最新数据 (此处为伪代码)# latest_data fetch_from_api()# 2. 连接数据库并更新conn mysql.connector.connect(**DB_CONFIG)cursor conn.cursor()# sql INSERT INTO orders (...) VALUES (...) ON DUPLICATE KEY UPDATE ...# cursor.execute(sql, data)conn.commit()print(数据更新成功)ifname main:main()安全提示务必将数据库密码等敏感信息通过环境变量注入而非硬编码在脚本中。2. 配置定时触发器 (Cron)使用 OpenClaw 的cron命令让 AI 在特定时间自动执行该 Skill。bash示例每天凌晨 2 点自动执行数据同步openclaw cron add \--name daily-sync-order \--cron 0 2 * * * \--tz Asia/Shanghai \--message 执行订单数据同步 \--session isolated \--wake--cron 0 2 * * *Cron 表达式定义执行频率。--message发送给 OpenClaw 的指令它会匹配并执行对应的 Skill。--wake确保即使系统在休眠状态也能被唤醒执行。 方案二外部事件触发 (Webhook)此方案适用于需要立即响应的场景例如当业务系统产生新订单时实时同步到分析库。1. 在 Skill 中提供 HTTP 接口你可以使用express(Node.js) 或flask(Python) 在 Skill 中启动一个简单的 HTTP 服务监听特定端口。2. 配置外部系统发送请求在外部业务系统如订单系统中配置 Webhook。当有新事件发生时向 OpenClaw 暴露的 HTTP 接口发送 POST 请求。3. AI 处理并写入数据库Skill 收到 HTTP 请求后解析请求体中的数据然后调用脚本将数据写入 MySQL 数据库。这样数据更新的延迟可以控制在秒级。 进阶方案基于数据库日志的实时同步 (CDC)对于极高要求的实时同步场景可以不依赖 Skill 轮询而是采用更专业的数据同步技术。使用 CDC 工具部署如 Debezium、Canal 等工具直接监听 MySQL 的 binlog。消息队列传递CDC 工具将数据库的变更事件发送到 Kafka 等消息队列。Skill 消费更新编写一个 OpenClaw Skill作为消费者订阅 Kafka 中的变更事件。触发下游动作当 Skill 收到变更消息后执行相应逻辑如更新缓存、发送通知等。这种方式将“数据捕获”与“AI 动作”解耦实现了真正意义上的实时响应。