Cron自动化管理技能 cron

此技能用于通过命令行工具管理Codex应用的自动化调度任务,包括创建、更新、启用/禁用定时任务,支持无头执行和LaunchAgent调度,适用于DevOps工作流程,关键词:自动化、调度、Codex、SQLite、DevOps、定时任务、无头运行、LaunchAgent

DevOps 0 次安装 0 次浏览 更新于 3/8/2026

名称: cron 描述: 创建和管理存储在本地 SQLite 数据库(~/.codex/sqlite/codex-dev.db)中的 Codex 应用自动化。当需要添加、列出、更新、启用/禁用、删除或立即运行自动化时使用;编辑自动化名称、提示、RRULE 计划或 cwd 范围;或在故障排除应用自动化行为时检查自动化记录。

Cron

概述

使用此技能通过编辑本地 SQLite 数据库和同步的文件系统自动化配置来管理 Codex 自动化。通过捆绑的 scripts/cron.py 操作,并保持更改最小化和明确。

快速开始

  • 列出自动化: uv run python scripts/cron.py list
  • 创建自动化: uv run python scripts/cron.py create --name "每周发布说明" --prompt-file /路径/到/prompt.md --rrule "RRULE:FREQ=WEEKLY;BYDAY=FR;BYHOUR=9;BYMINUTE=0"
  • 更新自动化: uv run python scripts/cron.py update --id <id> --rrule "RRULE:FREQ=DAILY;BYHOUR=9;BYMINUTE=0"
  • 启用或禁用: uv run python scripts/cron.py enable --id <id>uv run python scripts/cron.py disable --id <id>
  • 立即运行: uv run python scripts/cron.py run-now --id <id>
  • 删除: uv run python scripts/cron.py delete --id <id>
  • 一次运行到期的自动化(无头): scripts/automation_runner.py --once
  • 安装并启动用户 LaunchAgent 调度器: scripts/install_launch_agent.sh
  • 停止并移除调度器: scripts/uninstall_launch_agent.sh

工作流程

  1. 选择工作目录(cwds)。如果未指定,默认使用当前仓库。
  2. 编写自动化提示。使用 --prompt-file 处理多行提示。
  3. 提供 RFC5545 RRULE 字符串(见下方计划指导)。
  4. 使用 scripts/cron.py 创建或更新自动化。
  5. 如果您希望无需桌面应用进行无干预执行,请使用 scripts/install_launch_agent.sh 安装 LaunchAgent。

无头运行器

  • scripts/automation_runner.py 通过调用 codex exec 执行到期的自动化并更新:
    • automations.last_run_at
    • automations.next_run_at
    • 每次执行的 automation_runs
  • 运行器使用 python-dateutil 通过 uv 执行,不需要持久化虚拟环境。
  • --codex-bin 接受绝对路径或可执行文件名;默认解析 $CODEX_BINPATH 中的 codex
  • scripts/launchd_wrapper.sh 使用 lockf 防止重叠运行。
  • scripts/install_launch_agent.sh 是幂等的,默认安装 ~/Library/LaunchAgents/com.openai.codex.automation-runner.plist,间隔 60 秒。
    • 可选覆盖:
      • --label <反向DNS标签>(或环境变量 CRON_LAUNCHD_LABEL
      • --interval-seconds <n>(或环境变量 CRON_LAUNCHD_INTERVAL_SECONDS
      • --path <PATH>(或环境变量 CRON_LAUNCHD_PATH
  • scripts/uninstall_launch_agent.sh 是幂等的,接受可选 --label
  • 日志: ~/Library/Logs/codex-automation-runner/out.log~/Library/Logs/codex-automation-runner/err.log
  • 服务状态:
    • launchctl print gui/$(id -u)/com.openai.codex.automation-runner

当模糊时澄清

仅在请求模糊或用户明确要求指导时提问。否则不要阻止。

需要确认或推断的基本元素:

  1. 自动化名称。
  2. 提示内容(单行或文件路径)。
  3. 计划作为 RFC5545 RRULE 字符串(包含 RRULE: 前缀)。
  4. 工作目录(cwds),如果未指定,默认使用当前仓库。
  5. 如果明确请求状态;否则默认为 ACTIVE

当模糊时,询问缺失的细节。示例:

  • 如果用户说“每天”或“每周”但没有时间,询问时间和相关星期几。
  • 如果用户说“为此仓库运行”但没有指定路径,确认仓库根目录为唯一 cwd
  • 如果用户要求“像应用一样设置”但没有计划,询问 RRULE 或提供具体示例以确认。

计划(RRULE)

  • 仅接受 RFC5545 RRULE 字符串。不支持 Cron 表达式。
  • 应用存储带 RRULE: 前缀的字符串;包括前缀以匹配现有记录。两种形式都接受。
  • 为稳定计划,建议使用显式 BYHOUR/BYMINUTE

示例规则:

  • 每天 09:00: RRULE:FREQ=DAILY;BYHOUR=9;BYMINUTE=0
  • 每周五 09:00: RRULE:FREQ=WEEKLY;BYDAY=FR;BYHOUR=9;BYMINUTE=0
  • 每 24 小时: RRULE:FREQ=HOURLY;INTERVAL=24;BYMINUTE=0

任务示例

每日站会摘要

名称: 总结昨天的 Git 活动 提示: 为站会总结昨天的 Git 活动。包括重要提交、涉及的文件以及任何风险或跟进事项。 计划: RRULE:FREQ=DAILY;BYHOUR=9;BYMINUTE=0

每周发布说明

名称: 草拟每周发布说明 提示: 根据合并的 PR 草拟每周发布说明。包括可用链接并按区域分组。 计划: RRULE:FREQ=WEEKLY;BYDAY=FR;BYHOUR=9;BYMINUTE=0

CI 故障分类

名称: 总结 CI 故障 提示: 总结最近 CI 窗口的 CI 故障和 flaky 测试,按根本原因分组,并建议最小化修复。 计划: RRULE:FREQ=DAILY;BYHOUR=8;BYMINUTE=30

数据模型参考

参见 references/db.md 获取数据库模式和字段说明。