第 6 章:自动化命令与脚本集成
难度: ⭐⭐ 基础 | 预计阅读: 20 分钟 | 前置章节: 第 1-2 章
本章讲解如何利用 OpenClaw 的自动化能力,包括命令行工具、脚本集成、钩子系统和定时任务,实现无人值守的自动化工作流。你将学会用 CLI 管理 OpenClaw 实例、配置 Hook 扩展事件处理、设置 Cron 定时任务,以及将外部脚本和工具集成到 Agent 工作流中。
6.1 OpenClaw 命令行工具
OpenClaw 提供完整的 CLI 工具集,覆盖服务管理、配置读写、会话操作和诊断排错等场景。CLI 是除 Web Dashboard 之外与 OpenClaw 交互的主要方式,也是脚本自动化的基础。
命令分类总览
下表列出 OpenClaw CLI 的主要命令类别及其用途:
核心命令
以下是日常使用最频繁的命令,建议反复练习直至熟记:
配置管理
OpenClaw 的运行时配置存储在 ~/.openclaw/openclaw.json 中,可通过 CLI 读写:
修改端口等网络配置后需要重启 Gateway 才能生效。可用 openclaw gateway stop && openclaw gateway start 快速重启。
会话管理
会话(Session)是 Agent 执行任务的上下文环境。每个会话拥有独立的对话历史和工作目录:
6.2 Hook 钩子系统
Hook 是 OpenClaw 的事件驱动扩展机制,在特定生命周期节点自动执行预定义逻辑。通过 Hook,你可以在会话启动时加载上下文、在命令执行后记录日志、在会话结束时持久化记忆,实现无需手动干预的智能化流程。
内置 Hook
OpenClaw 默认提供以下 Hook,开箱即用:
Hook 执行流程
Hook 的执行遵循以下生命周期顺序:
配置 Hook
在 ~/.openclaw/openclaw.json 中配置 Hook 的启用状态和条目列表:
如需临时禁用某个 Hook,只需将其从 entries 数组中移除即可。完全禁用 Hook 系统则将 enabled 设为 false。
验证 Hook 状态
启动一次新会话后,通过日志确认 Hook 是否正常触发:
6.3 Cron 定时任务
OpenClaw 支持 Cron 定时任务,可在隔离 Session 中自动执行预设操作。Cron 任务非常适合需要周期性运行的场景,如每日归档、每周总结、定期巡检等。
查看已配置的定时任务
定时任务配置位于 ~/.openclaw/cron/jobs.json,可直接查看:
配置示例
以下是一个包含每日归档和每周总结的典型 Cron 配置:
Cron 表达式说明
Cron 表达式由 5 个字段组成,分别表示分钟、小时、日期、月份和星期:
常用 Cron 表达式速查
任务隔离与执行记录
每个 Cron 任务在独立 Session 中运行,不影响主会话。执行结果以 JSONL 格式保存在 ~/.openclaw/cron/runs/ 目录下,文件名为任务的 UUID:
6.4 脚本与工具集成
OpenClaw Agent 可以调用系统命令、运行本地脚本、使用内置工具和通过 MCP 协议连接外部服务。这种开放式集成机制让 Agent 具备几乎无限的能力扩展空间。
集成方式对比
执行本地脚本
Agent 可以直接运行系统命令和各种语言的脚本。确保脚本位于可访问的路径下:
最佳实践:将 Agent 常用的脚本统一放在
~/.openclaw/workspace/skills/<skill-name>/scripts/目录下,便于 Skill 打包和分发。
web_fetch 工具
web_fetch 是 OpenClaw 内置的网页抓取工具,支持提取文本、Markdown 和 HTML 内容:
McPorter MCP 工具
McPorter 是 OpenClaw 的 MCP(Model Context Protocol)网关,可连接多个外部工具服务器:
6.5 实战:搭建自动化巡检
结合 Skills + Cron + 脚本,搭建一套完整的自动化巡检流程。以下示例展示如何创建巡检脚本、注册定时任务,并通过消息通道发送报告。
场景:每日项目健康检查
创建巡检脚本 ~/.openclaw/workspace/scripts/daily-check.sh:
赋予执行权限并测试
配置定时执行
将上述脚本注册为 Cron 任务,在 ~/.openclaw/cron/jobs.json 中添加:
配合消息通道发送报告
巡检完成后,可通过 openclaw message send 将报告推送到飞书等渠道:
6.6 Shell 补全配置
OpenClaw CLI 支持主流 Shell 的命令补全,提升日常操作效率:
配置完成后重新加载 Shell,即可使用 Tab 键自动补全 openclaw 命令和子命令。
进阶:脚本架构设计
设计健壮的自动化脚本体系需要理解以下架构要点:
- 命令编排模式:复杂自动化任务建议拆分为多个独立脚本,通过
openclaw run串联执行,每个脚本负责单一职责,便于调试和复用。 - 错误处理链:在脚本中使用
set -euo pipefail确保错误及时中断,结合openclaw hooks配置失败回调通知,实现自动化流程的可观测性。 - 变量注入机制:
openclaw run支持通过--env KEY=VALUE注入运行时变量,脚本内通过环境变量读取,避免硬编码敏感信息。 - 幂等性设计:自动化脚本应保证多次执行结果一致,使用状态检查(如
openclaw status)在执行前判断是否需要操作。 - Cron 集成:定时任务配置在
cron/jobs.json中,支持 cron 表达式,通过openclaw cron list查看和管理所有定时脚本。
注意事项与常见错误
编写自动化脚本时常见的错误和需要注意的问题:
⚠️ 注意:Cron 任务的执行环境与交互式 Shell 不同,PATH 和环境变量可能缺失,建议在脚本头部显式设置所需环境变量。
进阶:脚本架构与自动化原理
设计复杂自动化脚本时,理解 OpenClaw 的命令执行架构至关重要:
注意事项与常见错误
编写自动化脚本时的常见错误:
进阶:脚本架构与自动化原理
设计复杂自动化脚本时的架构选型:
注意事项与常见错误
编写自动化脚本的常见错误:
实操练习
以下练习帮助你巩固本章所学的自动化技能,请按步骤依次完成。
练习 1:CLI 基础操作
- 运行
openclaw doctor检查当前环境,查看输出中是否有 ❌ 标记的异常项 - 使用
openclaw config get gateway.port查看当前端口配置 - 运行
openclaw session list查看现有会话列表 - 执行
openclaw logs --follow,观察实时日志输出(按 Ctrl+C 退出)
预期结果:doctor 输出各项检查结果;config get 返回端口号(默认 18789);session list 显示活跃会话;logs 实时滚动输出。
练习 2:配置并验证 Hook
- 打开配置文件
~/.openclaw/openclaw.json,确认hooks.internal.enabled值为true - 检查
entries数组中包含boot-md和command-logger - 创建一个新会话
openclaw session new,触发boot-mdHook - 查看审计日志,确认
command-logger是否记录了命令
预期结果:配置显示 Hook 已启用;新会话创建后日志中出现 boot-md 执行记录。
练习 3:创建自定义 Cron 任务
- 编辑
~/.openclaw/cron/jobs.json,添加一个测试任务(5 分钟后执行) - 等待任务触发,检查
~/.openclaw/cron/runs/下是否生成新的执行记录 - 查看执行记录内容,确认任务成功运行
预期结果:能看到现有的定时任务配置和历史执行记录;理解 JSONL 格式的任务日志结构。
练习 4(挑战):编写完整巡检脚本
- 参考 6.5 节示例,创建
~/.openclaw/workspace/scripts/my-check.sh - 在脚本中至少包含 3 项检查(Gateway 状态、Skills 列表、磁盘空间)
- 手动运行脚本并验证输出
- (可选)将脚本注册为 Cron 任务
常见问题 (FAQ)
Q1: Cron 任务配置后不执行,怎么排查?
A: 按以下步骤排查:
- 确认 Gateway 正在运行:
openclaw daemon status - 检查
jobs.json格式是否正确:python3 -m json.tool ~/.openclaw/cron/jobs.json - 确认
schedule字段的 Cron 表达式格式正确 - 查看 Gateway 日志中是否有错误信息:
openclaw logs --follow - 检查
timezone是否与系统时区一致
Q2: Hook 配置正确但没有触发,如何解决?
A: 常见原因和解决方法:
enabled为false:修改~/.openclaw/openclaw.json将hooks.internal.enabled设为true- Hook 名称拼写错误:核对
entries数组中的名称,必须与内置 Hook 名称完全一致 - Gateway 未重启:修改配置后运行
openclaw gateway stop && openclaw gateway start - 查看错误日志:
tail -50 ~/.openclaw/logs/config-audit.jsonl检查是否有报错
Q3: 脚本执行时报 "Permission denied" 错误?
A: 这是因为脚本缺少执行权限。有两种解决方式:
Q4: 如何查看某个 Cron 任务的历史执行记录?
A: Cron 执行记录保存在 ~/.openclaw/cron/runs/ 目录下,每次执行生成一个 JSONL 文件:
Q5: web_fetch 抓取网页内容为空或报错?
A: 可能原因包括:目标网站拒绝非浏览器访问、网络连接问题、或 URL 格式错误。建议先用 curl 测试网络连通性:
参考链接
本章小结
本章系统介绍了 OpenClaw 的自动化命令与脚本集成能力:
- OpenClaw CLI 工具集:掌握了服务管理、配置读写、会话操作、诊断排错等核心命令
- Hook 钩子系统:理解了事件驱动机制,学会配置和验证
boot-md、command-logger等内置 Hook - Cron 定时任务:学会编写 Cron 表达式、配置周期性任务、查看执行记录
- 脚本与工具集成:掌握了本地脚本、
web_fetch、McPorter MCP 等多种集成方式 - 实战巡检流程:完成了从脚本编写、定时调度到消息推送的完整自动化链路
- Shell 补全:配置了命令行自动补全,提升日常操作效率
- 遇到问题时,善用
openclaw doctor进行一键诊断,并查阅 FAQ 获取解决方案
下一章:飞书集成与消息自动化

