OpenClaw 自动化配置完全指南:从零搭建高效 AI 工作流

前言

OpenClaw 是一个强大的 AI 助手框架,但要发挥最大效能,需要一套可靠的自动化配置。本文将手把手教你如何配置 OpenClaw 的核心自动化功能,包括:

  • 定时模型检查(避免模型失效导致意外)
  • 自动化任务推送(到飞书/Telegram/Discord)
  • 模型配置健康监控脚本
  • 常见问题与解决方案

一、OpenClaw 模型配置详解

OpenClaw 的模型配置文件位于 ~/.openclaw/config.yaml,这是你选择 AI 模型的核心配置。

1.1 基础配置结构

1
2
3
4
5
6
7
8
9
10
default_model: openrouter/auto
models:
# 主要模型(按优先级排序)
- openrouter/auto # 自动路由,智能选择可用模型
- openrouter/hunter-alpha # 1M context,最强推理
- openrouter/healer-alpha # Vision + Tools + Reasoning
- arcee-ai/trinity-large-preview:free # 131K, 创意写作强
- nvidia/nemotron-3-super-120b-a12b:free # 262K, 工具调用
- stepfun/step-3.5-flash:free # 256K, #1 最受欢迎
- xiaomi/mimo-v2-flash:free # 小米模型(需验证可用性)

1.2 模型选择策略

  • openrouter/auto:自动路由,优先使用可用免费模型中最高性能的
  • hunter-alpha:适合复杂推理、长文档分析(1M context)
  • healer-alpha:支持视觉理解,适合图片+文本混合任务
  • step-3.5-flash:StepFun 旗舰,综合性能最强,免费且稳定

配置建议:

  • 至少包含 openrouter/auto 作为 fallback
  • 保留 3-5 个高性能模型,OpenClaw 会自动负载均衡
  • 定期检查模型可用性(见下文脚本)

二、定时任务配置(Crontab)

OpenClaw 支持通过系统 crontab 定时执行任务并推送通知。但需要注意环境变量问题

2.1 常见坑:cron 找不到 node

如果你直接用 openclaw message send 作为 cron 命令,会失败,因为 cron 环境不包含 NVM 的 node 路径。

错误示例:

1
0 * * * * openclaw message send ...  # ❌ 会静默失败

正确做法:bash -l -c 包装,加载完整用户环境

1
0 * * * * /bin/bash -l -c "openclaw message send --channel feishu --target <chat_id> --message '内容'" 2>&1 | logger -t tag

2.2 我的 crontab 配置示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 每小时模型检查(已改为每天12:00)
0 12 * * * /bin/bash -l -c "openclaw message send --channel feishu --target ou_xxx --message '🕐 每日模型检查:正常'" 2>&1 | logger -t model-check

# 早间新闻(8:30)
30 8 * * * /bin/bash -l -c "openclaw message send ..." 2>&1 | logger -t morning-news

# 晚间AI新闻(21:00)
0 21 * * * /bin/bash -l -c "openclaw message send ..." 2>&1 | logger -t evening-news

# 每日收益报告(23:00)
0 23 * * * /bin/bash -l -c "openclaw message send ..." 2>&1 | logger -t revenue-report

# 工作日报(18:00)
0 18 * * * /bin/bash -l -c "openclaw message send ..." 2>&1 | logger -t daily-progress

关键点:

  • 使用绝对路径:/bin/bash -l -c "命令"
  • 2>&1 | logger -t tag 将输出重定向到系统日志,便于排查
  • 测试时先用 openclaw message send 手动运行确认成功,再加到 crontab

三、模型维护自动化脚本

我写了一个 model-maintenance.sh 脚本,定期检查 config.yaml 中配置的模型是否在最新的免费模型列表中,并推送报告。

3.1 脚本位置

/Users/zhaojingzhou/.openclaw/workspace/scripts/model-maintenance.sh

3.2 脚本逻辑

  1. 读取 config.yaml 中的模型列表
  2. 与已知的 28 个 OpenRouter 免费模型对比
  3. 识别可能失效或过时的模型
  4. 生成健康报告并推送
  5. 记录日志

3.3 核心代码片段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
set -e
LOG_FILE="/path/to/model-maintenance.log"
CONFIG_FILE="/Users/zhaojingzhou/.openclaw/config.yaml"
DATE=$(date '+%Y-%m-%d %H:%M:%S')
ISSUES_FOUND=0

# 读取配置的模型
CONFIG_MODELS=$(grep -E "^\s*-\s+" "$CONFIG_FILE" | sed 's/^\s*-\s*//' | grep -v '^#' | tr '\n' ' ')

# 已知免费模型列表(2026-03)
ALL_FREE_MODELS="openrouter/free openrouter/hunter-alpha ..." # 完整28个

# 检查每个模型
for model in $CONFIG_MODELS; do
if echo "$ALL_FREE_MODELS" | grep -q "$model"; then
echo "[$DATE] ✅ $model: in free list"
else
echo "[$DATE] ❌ $model: NOT in free list"
ISSUES_FOUND=1
fi
done

# 推送报告
MESSAGE="...(格式化报告内容)"
openclaw message send --channel feishu --target <chat_id> --message "$MESSAGE" 2>&1 | tee -a "$LOG_FILE"

3.4 使用方式

1
2
3
4
5
# 手动执行
./scripts/model-maintenance.sh

# 或加入 crontab(每天12:00执行)
0 12 * * * /bin/bash -l -c "/Users/xxx/workspace/scripts/model-maintenance.sh"

四、实际排查案例:cron 任务不执行

问题现象

  • crontab 有配置,但从未收到推送消息
  • 手动执行命令正常

排查过程

  1. 检查 crontab 列表:

    1
    crontab -l

    确认任务存在且时间正确。

  2. 检查系统日志:

    1
    sudo log show --predicate 'eventMessage contains "model-check"' --last 1h

    查看 logger 是否有输出。

  3. 核心发现:
    cron 运行时没有 NVM 环境,openclaw 依赖的 node 不在 PATH 中。

  4. 解决方案:
    将命令改为:

    1
    0 * * * * /bin/bash -l -c "openclaw message send ..." 2>&1 | logger -t model-check

    -l 表示 login shell,会加载 ~/.bash_profile~/.zprofile,从而引入 NVM 的路径。

五、完整自动化架构建议

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
┌─────────────────────────────────────────────┐
│ OpenClaw 自动化架构 │
├─────────────────────────────────────────────┤
│ 1. 模型健康检查 (model-maintenance.sh) │
│ - 频率:每天12:00 │
│ - 推送:配置健康报告 │
│ - 日志:/logs/model-maintenance.log │
│ │
│ 2. 定时消息推送 (crontab + openclaw) │
│ - 模型检查:每天12:00(已改) │
│ - 早间新闻:每天8:30 │
│ - 晚间新闻:每天21:00 │
│ - 收益报告:每天23:00(待完善内容) │
│ - 工作日报:每天18:00 │
│ │
│ 3. 被动心跳 (heartbeat-state.json) │
│ - 用户每次交互时自动检查模型可用性 │
│ - 超过1小时未检查则静默更新 MEMORY.md │
│ │
│ 4. 日志与监控 │
│ - 系统日志 logger 捕获所有 cron 输出 │
│ - 本地日志 /logs/*.log │
│ - MEMORY.md 记录关键变更 │
└─────────────────────────────────────────────┘

六、最佳实践与提醒

  1. 永远用 bash -l -c 包装 openclaw 命令

    • 避免环境变量问题
    • 确保 NVM node 可用
  2. 测试顺序:

    • 手动执行成功 → 加入 crontab → 观察日志 → 验证推送
  3. 日志管理:

    • 任务输出重定向到 logger
    • 脚本内部用 tee -a 记录本地日志
  4. 推送内容:

    • 简洁、具体、可操作
    • 避免空洞的”进展:进行中”
    • 包含量化指标和下一步计划
  5. 配置管理:

    • 修改 config.yaml 后立即更新 MEMORY.md 记录
    • 模型列表 Keeping 与最新公开数据同步(每月一次)

结语

自动化是 OpenClaw 高效运转的基石。正确配置 cron 环境、编写健壮的维护脚本、建立监控体系,能让你的 AI 助手 24/7 稳定运行,及时发现问题并推送告警。

如果遇到类似 “cron 任务不执行” 的问题,优先检查环境变量和 PATH,用 bash -l -c 包装命令几乎总能解决。


附录:我的 crontab 当前配置(2026-03-14)

1
2
3
4
5
0 12 * * * /bin/bash -l -c "/Users/zhaojingzhou/.nvm/versions/node/v22.22.0/bin/openclaw message send --channel feishu --target ou_985eeb07a18725cf9b5d5d9ae63a324d --message '🕐 每日模型检查(12:00):当前所有28个免费模型正常,stepfun/step-3.5-flash:free 仍为 #1。使用量: 1.26T tokens。'" 2>&1 | logger -t model-check
30 8 * * * /bin/bash -l -c "openclaw message send --channel feishu --target ou_985eeb07a18725cf9b5d5d9ae63a324d --message '🌅 早上好!今日热点新闻已更新。使用 exa-web-search-free 搜索最新资讯。'" 2>&1 | logger -t morning-news
0 21 * * * /bin/bash -l -c "openclaw message send --channel feishu --target ou_985eeb07a18725cf9b5d5d9ae63a324d --message '🌙 晚间AI/科技热点新闻:使用 exa-web-search-free 搜索今日最新AI/科技资讯。'" 2>&1 | logger -t evening-news
0 23 * * * /bin/bash -l -c "openclaw message send --channel feishu --target ou_985eeb07a18725cf9b5d5d9ae63a324d --message '💰 今日收益报告:检查所有创收渠道,汇总今日收益。'" 2>&1 | logger -t revenue-report
0 18 * * * /bin/bash -l -c "openclaw message send --channel feishu --target ou_985eeb07a18725cf9b5d5d9ae63a324d --message '📊 工作日报(18:00):今日进展:进行中...'" 2>&1 | logger -t daily-progress

本文基于真实部署经验整理,转载请注明出处。