/usr/local/opt/python@3.9/bin/python3.9/usr/local/opt/python@3.9/bin/python3.9 -m pip install Pillow~/workspace/english_learning.json(440场景)~/Library/Application Support/QClaw/openclaw/config/skills/ima/get-token.shbash
/usr/local/opt/python@3.9/bin/python3.9 ~/workspace/scripts/push_english_daily.py
脚本输出 JSON 到 stdout,提取 image_path 字段。
正常输出示例:
json
{
"image_path": "~/workspace/cards/card_2026-04-27.png",
"style": "lake",
"title_zh": "餐厅点餐",
"progress": "12/440",
"is_weekend": false,
"tencent_doc_url": ""
}
失败处理:
python3.9: command not found → 改用 python3 重试,并报告路径错误python3.9,不是系统 python3从 Step 1 输出中提取 image_path,使用 message 工具:
openclaw-weixino9cq800qdEr8F9W0A_BulcOhDiCk@im.wechate7aef5bc05d2-im-bot~ 为真实路径)⚠️ 不要附加文字消息,只发图片。如果发了文字,微信会将图片压缩。
失败处理:
ls ~/workspace/cards/ 确认文件是否存在图片发送成功后,输出简短确认:
text
✅ 今日英语卡片已送达
📖 场景:餐厅点餐(进度 12/440)
🎨 风格:清冷湖海
时间行为工作日学习新场景, current_index + 1周末按遗忘曲线找复习场景,不推进进度遗忘曲线间隔[1, 2, 4, 7, 15] 天
风景风格(4种): forest 雾境森林 | sunrise 山野晨昏 | lake 清冷湖海 | twilight 荒原暮色
色卡风格(7种): periwinkle 梦幻薰衣 | blush 蜜桃绒纱 | candy 糖果彩虹 | nautical 海军蓝调 | lavender 薰衣草梦 | ocean 深海幽蓝 | warmth 暖阳绒毯
风格按日期轮换(11天一轮),同一天风格固定。
~/workspace/english_learning.json(440场景,44主题×10变体)~/workspace/cards/card_YYYY-MM-DD.png~/workspace/scripts/learning_manager.py问题解决方案python3.9 找不到改用 python3,并报告需修复路径PIL 报错确认用的是 Homebrew python@3.9,不是系统 Python脚本输出非 JSON直接报告脚本错误,不继续图片路径含 ~ 无法发送用 os.path.expanduser() 展开为绝对路径IMA 上传失败卡片仍推送,报告"IMA 存档失败(可忽略)"微信发送失败报告"发送失败,请手动检查",不阻塞同名文件已存在push_english_daily.py 会覆盖,无需处理
问题原因解决推送了错误的卡片风格cron payload 中 python 路径写错用了系统 python3确认 cron payload 中用的是 python3.9进度不前进脚本出错但 agent 没有检查看脚本输出 JSON 是否有 image_pathIMA 存档空白COS 上传权限问题检查 get-token.sh 是否有效图片在微信中显示异常中文图片触发 OCR 违规(腾讯文档已弃用,改用 IMA)确认用的是 IMA 而非腾讯文档
bash
# 1. 生成卡片(检查输出)
/usr/local/opt/python@3.9/bin/python3.9 ~/workspace/scripts/push_english_daily.py
# 2. 确认图片存在
ls ~/workspace/cards/card_$(date +%Y-%m-%d).png
# 3. 手动发送
openclaw cron run <YOUR_CRON_JOB_ID>
json
{
"schedule": { "kind": "cron", "expr": "30 8 * * *", "tz": "Asia/Shanghai" },
"sessionTarget": "isolated",
"delivery": {
"mode": "announce",
"channel": "openclaw-weixin",
"to": "o9cq800qdEr8F9W0A_BulcOhDiCk@im.wechat",
"accountId": "e7aef5bc05d2-im-bot"
},
"wakeMode": "now"
}
text
~/.qclaw/skills/daily-english-card/
├── SKILL.md # 本文件
└── README.md # 详细文档(含脚本逻辑、重建指南)
~/workspace/scripts/
├── push_english_daily.py # 主推送脚本(生成卡片 + IMA上传)
├── generate_english_card.py # 卡片图片生成器
└── learning_manager.py # 遗忘曲线进度管理
~/workspace/
├── english_learning.json # 440场景数据
