前言 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 - openrouter/healer-alpha - arcee-ai/trinity-large-preview:free - nvidia/nemotron-3-super-120b-a12b:free - stepfun/step-3.5-flash:free - 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 0 12 * * * /bin/bash -l -c "openclaw message send --channel feishu --target ou_xxx --message '🕐 每日模型检查:正常'" 2>&1 | logger -t model-check 30 8 * * * /bin/bash -l -c "openclaw message send ..." 2>&1 | logger -t morning-news 0 21 * * * /bin/bash -l -c "openclaw message send ..." 2>&1 | logger -t evening-news 0 23 * * * /bin/bash -l -c "openclaw message send ..." 2>&1 | logger -t revenue-report 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 脚本逻辑
读取 config.yaml 中的模型列表
与已知的 28 个 OpenRouter 免费模型对比
识别可能失效或过时的模型
生成健康报告并推送
记录日志
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 -eLOG_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' ' ' ) ALL_FREE_MODELS="openrouter/free openrouter/hunter-alpha ..." 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 0 12 * * * /bin/bash -l -c "/Users/xxx/workspace/scripts/model-maintenance.sh"
四、实际排查案例:cron 任务不执行 问题现象
crontab 有配置,但从未收到推送消息
手动执行命令正常
排查过程
检查 crontab 列表:
确认任务存在且时间正确。
检查系统日志:
1 sudo log show --predicate 'eventMessage contains "model-check"' --last 1h
查看 logger 是否有输出。
核心发现: cron 运行时没有 NVM 环境,openclaw 依赖的 node 不在 PATH 中。
解决方案: 将命令改为:
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 记录关键变更 │ └─────────────────────────────────────────────┘
六、最佳实践与提醒
永远用 bash -l -c 包装 openclaw 命令
测试顺序:
手动执行成功 → 加入 crontab → 观察日志 → 验证推送
日志管理:
任务输出重定向到 logger
脚本内部用 tee -a 记录本地日志
推送内容:
简洁、具体、可操作
避免空洞的”进展:进行中”
包含量化指标和下一步计划
配置管理:
修改 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
本文基于真实部署经验整理,转载请注明出处。